Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.168 Beiträge
 
Delphi 12 Athens
 
#7

Re: Eine Message senden an Programm ohne Fenster. Wie?

  Alt 12. Jun 2008, 14:27
per SetWindowLong deine Prozedur beim Fenster angegeben hast, dann wird diese nun aufgerufen.

Delphi-Quellcode:
Var Msg: TMsg;
  isUnicode: Boolean;

Begin
  While PeekMessage(Msg, 0, 0, 0, PM_NOREMOVE) do Begin
    isUnicode := (Msg.hWnd <> 0) and IsWindowUnicode(Msg.hWnd);
    If isUnicode Then Begin
              If not PeekMessageW(Msg, 0, 0, 0, PM_REMOVE) Then Continue;
    End Else If not PeekMessageA(Msg, 0, 0, 0, PM_REMOVE) Then Continue;
    TranslateMessage(Msg);
    If isUnicode Then DispatchMessageW(Msg) Else DispatchMessageA(Msg);
  End;
End;
und die Kurzfassungen:
Delphi-Quellcode:
Var Msg: TMsg;

Begin
  While PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do Begin
    TranslateMessage(Msg);
    DispatchMessage(Msg);
  End;
End;

// oder

Var Msg: TMsg;

Begin
  While GetMessage(Msg, 0, 0, 0) do Begin
    TranslateMessage(Msg);
    DispatchMessage(Msg);
  End;
End;

alternativ könnte man auch innerhalb dieser Schleife seine Messages abfragen (dabei besse noch das Fenster prüfen ... muß ja nicht alles in dieser Schleife für/von deinem Fesnter sein)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat