Ich bin auf der Suche nach einer Lösung für dieses Problem:
Mein XBase-Programm wird über einen Link aus z.B. einer Mail mit einem Parameter gestartet.
Das Programm schaut sich den Parameter an und startet daraufhin eine Function / Procedure mit übergebenen Parametern.
Wenn das Programm bereits gestartet ist, wird der User gefragt ob er eine neue Instanz starten will - und dann klappt das wie gewünscht.
Aber wenn keine neue Instanz gestartet wird, beendet sich das Programm wieder und holt die laufende Instanz in den Vordergrund.
Vor dem beenden möchte ich der laufenden Instanz die Parameter durchreichen, damit es die geforderte Aktion ausführt.
Ich dachte, ich könnte es so probieren:
PostMessageA( hTmp, 134217729, "wParamI", "lParamI" ) oder
SendMessageA( hTmp, 134217729, "wParamI", "lParamI" )
Wobei:
(1) hTmp das Handle der laufenden Instanz ist (über das es in den Vordergrund geholt wurde)
(2) 134217729 ein "benutzerdefinierter Ereigniscode" sein soll.
In Appevent.ch steht:
(3) wParamI und lParamI erst mal dummies sind// *****************************************************************************
// Benutzerdefinierte Ereigniscodes müssen > xbeP_User sein.
// *****************************************************************************
#define xbeP_User 134217728
(4) Diese Definitionen sind vorhanden:
DLLFUNCTION SendMessageA( hwnd, Msg, wParam, lParam ) USING STDCALL FROM USER32.DLL
DLLFUNCTION PostMessageA( hwnd, Msg, wParam, lParam ) USING STDCALL FROM USER32.DLL
In der Eventschleife der laufenden Instanz habe wollte ich testen, ob das Ereignis empfangen wird:
Code: Alles auswählen
DO WHILE .T.
nEvent := AppEvent( @mp1, @mp2, @oXbp )
IF nEvent = 134217729
AltD()
ENDIF
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
...aber da passiert nichts.
Bin ich mit der Idee auf dem Holzweg?