Einzelnen Beitrag anzeigen

VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#1

SendMessageTimeout: Nachrichten zwischen 2 Programmen

  Alt 15. Dez 2005, 14:13
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!
  Mit Zitat antworten Zitat