Thema: Delphi SendMessage wartet nicht

Einzelnen Beitrag anzeigen

Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#1

SendMessage wartet nicht

  Alt 14. Nov 2016, 15:25
Hallo zusammen!

Im MSDN steht:

Zitat:
The SendMessage function calls the window procedure for the specified window and does not return until the window procedure has processed the message.
Nun habe ich ein Problem damit, von einem Prozess aus wird SendMessage benutzt um zu einem anderen Prozess eine Nachricht zu schicken, dort wird ein Fenster per ShowModal angezeigt und das ModalResult als Result der Message zurück geschickt, dabei sollte der Thread mit SendMessage warten bis die Nachricht abgearbeitet wurde. Tut es aber nicht, SendMessage kehrt nach kurzer Zeit mit 0 als Result zurück. GetLastError meint dazu kein Fehler, also auch 0.

Pseudo Code:
Code:
Prozess 1:
Result:=SendMessage(RemoteWnd, WM_IPC_SHOWFORM, 0, 0);
// Hier gehts mit Result=0 kurz drauf weiter, obwohl Form2 noch nicht geschlossen wurde.


Prozess 2:
procedure TForm1.WndProc(var Message:TMessage);
begin
   Case Message.Msg of
      ...
      WM_IPC_SHOWFORM: begin
         Message.Result:=Form2.ShowModal;
         Exit; <- Hier gehts erst weiter sobald Form2 geschlossen wurde
      end;
   end;
   ...
end;
Warum wartet SendMessage nicht? Habs auch mit SendMessageTimeout versucht bei gleichem Ergebnis
Windows: Ja - Microsoft: Nein -> www.ReactOS.org

Geändert von Sunlight7 (14. Nov 2016 um 15:56 Uhr)
  Mit Zitat antworten Zitat