Ciao.
La tua è una questione tanto interessante quanto problematica:
mettere in comunicazione tra di loro 2 processi non deve essere la cosa + semplice del mondo... ammesso che sia possibile.

Forse una soluzione puoi trovarla lavorando sulle Window.
Conosci il subclassing ?

Potresti gestire il tutto come un semplice invio di messaggi alle finestre utilizzando SendMessage.
Ad esempio:


If App.PrevInstance Then
'se vi è già un'istanza mi passa solo i parametri poi termina
MsgBox "APPLICAZIONE GIA AVVIATA"

' verifichi il comando ricevuto,
' se è quello che ti aspetti invii il messaggio
If GetCommandLine = "tuo_comando" Then
SendMessage HWND_BROADCAST, WM_NULL, 32768, -32767
End
End If
End If


La dichiarazione della funzione e la definizione delle costanti sono queste:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_NULL = &H0
Const HWND_BROADCAST = &HFFFF&


Quando usi SendMessage con HWND_BROADCAST invii un messaggio a tutte le finestre aperte in quell'istante...

Se conoscessi l'handle della finestra dell'altra istanza del tuo programma potresti inviare il messaggio solo ad essa,
purtroppo non lo conosci e determinarlo richiede un po' più di lavoro.

Come dicevo, così facendo invii il messaggio a tutte le finestre. Per questo conviene inviare un messaggio WM_NULL
(nullo non corrisponde a nessun evento), così da non "disturbare" gli altri programmi in esecuzione.

Ora: lo scopo è quello di fare in modo che la prima istanza (quella che dovrà mostrare l'icona sulla tray) riceva questo messaggio e faccia quello che deve fare.
VB non gestisce il messaggio WM_NULL come evento
quindi, perchè il tuo programma sia in grado di intercettarlo, devi ricorrere al subclassing.

Il subclassing, te lo spiego in 2 parole poi se vuoi + chiarimenti chiedi pure, consiste nel creare una WindowProcedure personalizzata in grado di intercettare i messaggi inviati dal S.O.
Da questa WindowProcedure puoi gestire qualunque evento
(anche quelli non resi disponibili da VB) prima di VB stesso.

Ecco un esempio di cosa potresti fare:
Nel Form metti il codice che ti ho scritto sopra...
ovviamente puoi cambiarlo, basta che al momento giusto esegua SendMessage come hai visto.

In un Modulo BAS:

Option Explicit

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal ndx As Long, ByVal newValue As Long) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function IsWindow Lib "user32.dll" (ByVal hwnd As Long) As Long

Const WM_NULL = &H0 ' Messaggio NULLO
Const GWL_WNDPROC = -4 ' Per "SetWindowLong"
Private SaveHWnd As Long ' L'Handle della finestra subclassata
Private OldProcAddr As Long ' L'indirizzo della WindowProcedure originale

'
Sub StartSubclassing(ByVal hwnd As Long)

' Avvia il SubClassing
SaveHWnd = hwnd ' Memorizza Hanlde Window della finestra da subclassare per ripristinarlo poi
' Modifica l'indirizzo della Window Procedure predefinita a quello della Function "WndProc"
' e memorizza in "OldProcAddr" quello originale.
OldProcAddr = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WndProc)

End Sub

'
Sub StopSubclassing()

' Termina il SubClassing reimpostando l'indirizzo di Window Procedure predefinita
SetWindowLong SaveHWnd, GWL_WNDPROC, OldProcAddr

End Sub

' Window Procedure personalizzata:
Function WndProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long


' Se riceve un messaggio WM_CUSTOM
If uMsg = WM_NULL Then
' verifica wParam e lParam
If wParam = 32768 And lParam = -32767 Then
' QUI METTI L'ICONA SULLA TRAY
MsgBox "QUI METTI L'ICONA SULLA TRAY !!!"
End If
End If

WndProc = CallWindowProc(OldProcAddr, hwnd, uMsg, wParam, lParam)

End Function


nel Form_Load() aggiungi

StartSubclassing Me.hwnd


mentre, nel Form_QueryUnload scrivi

StopSubclassing


e tutto funzionerà a meraviglia !!!
N.B: Nella WndProc sul modulo BAS, nel punto in cui ho commentato, devi richiamare il codice
per mettere l'icona sulla TRAY.

Sappimi dire se ti piace come soluzione, se vuoi qualcosa di
meglio e, sopratutto, se ti è chiara la questione del subclassing e il codice del modulo.

Ciao ciao
Simo