Il mio programma si avvia con windows, io devo passare dei parametri al programma tramite riga di comando, più precisamente devo rendere visibile l’icona sulla traybar.
Però se io scrivo nella console

Miaapp.exe AttivaIcona

Il programma si avvia 2 volte (praticamente si avviano 2 programmi come fossero differenti)

X farlo avviare una volta sola (solo la prima istanza), quindi, ho usato app.prevIstance

codice:
If App.PrevInstance Then 'se vi è già un'istanza mi passa solo i parametri poi termina
MsgBox "APPLICAZIONE GIA AVVIATA"
GetCommandLine
End
End If
Essendoci l’END l’icona me la crea ma essa sparisce subito perché la seconda istanza dell’applicazione termina (e resta la prima che non aveva l’icona).

Io praticamente devo tramite il comando terminare la seconda istanza (e fino a qui va bene l’end) ma devo attivare l’icona della prima istanza (e non l’icona della seconda…). Come faccio?
Per creare l’icona uso shell_NotifyIcon()
codice:
Public Sub CREATEICON()
    TrayI.cbSize = Len(TrayI)
    TrayI.hwnd = pichook.hwnd 'Link the trayicon to this picturebox
    TrayI.uId = 1&
    TrayI.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    
    TrayI.ucallbackMessage = WM_LBUTTONDOWN
    
    'icona da visualizzare
    TrayI.hIcon = imgIcon(2).Picture
   
    'Create the icon
    Shell_NotifyIcon NIM_ADD, TrayI
    Me.Hide
End Sub