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