Запустить единую форму в приложении в трее с ярлыка на рабочем столе - PullRequest
0 голосов
/ 28 мая 2020

Я новичок в VB и программировании в целом, и я мог бы воспользоваться небольшим руководством. Мне удалось создать свое приложение так, как я хочу, но мне просто нужна еще одна деталь ... Действие ярлыка на рабочем столе.

Есть ли способ запустить определенную форму в моем проекте с ярлыка на рабочем столе? В приложении в трее есть 5 форм, и я хотел бы иметь возможность запускать одну, в частности, с ярлыка на рабочем столе. Я не смог найти ничего, связанного с этим; возможно, из-за неправильной формулировки, и я предполагаю, что мне нужно использовать аргументы командной строки, но я не уверен, как реализовать это в моем проекте.

Вот код модуля, который у меня есть на данный момент.

Imports Microsoft.Win32

Module Module1
    Private MyNotifyIcon As NotifyIcon          'ICON IN SYSTEM TRAY COMPONENT
    Private MyContextMenu As ContextMenu        'CONTEXT MENU WHEN ITEM IS CLICKED ON
    Private WithEvents Tray As NotifyIcon

    Public Sub Main()

        Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", Application.ProductName, Application.ExecutablePath, RegistryValueKind.String)


        'CREATE INSTANCES OF OBJECTS WE NEED
        MyNotifyIcon = New NotifyIcon
        MyContextMenu = New ContextMenu

        MyNotifyIcon.Icon = My.Resources.co         'SET AN ICON (ICON IS A RESOURCE IN THE PROJECT)
        MyNotifyIcon.Visible = True                 'SET VISIBLE

        'ADD CAPTIONS AND EVENT HANDLERS FOR ITEMS IN CONTEXT MENU
        MyContextMenu.MenuItems.Add("Support Ticket", AddressOf Ticket)
        MyContextMenu.MenuItems.Add("Quick Self-Help", AddressOf SelfHelp)
        MyContextMenu.MenuItems.Add("Instant Support", AddressOf Support)
        MyContextMenu.MenuItems.Add("System Information", AddressOf SysInfo)
        MyContextMenu.MenuItems.Add("-")
        MyContextMenu.MenuItems.Add("About", AddressOf About)
        'MyContextMenu.MenuItems.Add("-")
        'MyContextMenu.MenuItems.Add("Exit", AddressOf ExitApplication)
        If (Control.ModifierKeys = Keys.Shift) Then
            MyContextMenu.MenuItems.Add("Tools", AddressOf Tools)
        End If

        MyNotifyIcon.ContextMenu = MyContextMenu        'ASSIGN CONTEXT MENU TO ICON

        Application.Run()

    End Sub

    'DELEGATE SUB TO EXIT APPLICATION
    Private Sub ExitApplication(ByVal sender As Object, ByVal e As EventArgs)
        'CLEAN UP YOUR OBJECTS
        MyContextMenu.Dispose()
        MyNotifyIcon.Dispose()

        'EXIT APPLICATION LOOP
        Application.Exit()
    End Sub

    'SysInfo form
    Private Sub SysInfo(ByVal sender As Object, ByVal e As EventArgs)
        Dim SysInfo As New formSysInfo
        SysInfo.Show()
    End Sub

    'Self Help form
    Private Sub SelfHelp(ByVal sender As Object, ByVal e As EventArgs)
        Dim Tools As New formTools
        formTools.Show()
    End Sub

    'Support form
    Private Sub Support(ByVal sender As Object, ByVal e As EventArgs)
        Process.Start("https://weblink.com")
    End Sub

    'Ticket form
    Private Sub Ticket(ByVal sender As Object, ByVal e As EventArgs)
        Dim Ticket As New formTicket
        formTicket.Show()
    End Sub

    'Double Click Action - Planned

    'About form
    Private Sub About(ByVal sender As Object, ByVal e As EventArgs)
        Dim About As New formAbout
        formAbout.Show()
    End Sub

End Module

...