Hallo zusammen,
ich möchte beim starten von Programm A prüfen ob Programm B nicht läuft oder Programm B sein "ok" für das starten von Programm A gibt.
Mein Ansatz ist die Funktion
SendMessageTimeout.
Das Timeout habe ich gewählt da Programm B zeitweise mit komplexen "
SQL-Statements" beschäftigt ist und eventuell erst nach längerer Zeit reagiert. In dem Fall soll sicherheitshalber Programm A nicht gestartet werden.
Der Plan sieht so aus:
1) mit FindWindow prüfen ob Programm B da ist
2) mit RegisterWindowMessage eine MessageId holen
3) an Programm B eine Nachricht schicken ob A starten darf
Meine Problem ist wie ich die Antwort von B setze.
Der letzte Parameter von SendMessageTimeout scheint ja ein Ergebnis zurückzugeben.
Delphi-Quellcode:
LRESULT SendMessageTimeout(
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam,
UINT fuFlags,
UINT uTimeout,
PDWORD_PTR lpdwResult
);
PSDK:
lpdwResult: Receives the result of the message processing. This value depends on the message sent.
Nun ist aber die Frage wie ich in Programm B diesen Parameter setzen kann.
Oder habt ihr einen anderen/besseren Ansatz?
Alternativ könnte ja Programm B wieder eine Message an Programm A senden. Falls das aber mit dem Result aus MessageSendTimeout funktioniert würde mir das ehe zusagen
Vielen Dank!