Einzelnen Beitrag anzeigen

Viktorii

Registriert seit: 19. Jul 2007
358 Beiträge
 
#1

Windows Messages in einem (TThread-)Thread empfangen

  Alt 3. Jul 2009, 10:24
Meine Applikation muss Windows Messages einer anderen Anwendung empfangen. Nach Recherche habe ich das so realisiert:

Als erstes habe ich in meiner MainForm eine private Methode implementiert:

Delphi-Quellcode:
function TMainFormWCM.AppHookFunc (var Message : TMessage) : Boolean;
begin

   if Message.Msg = WM_MEINE_MSG then
  begin
      case Message.WParam of
        …
        …
  end;
end;

Dann habe ich unter FormCreate die Funktion gehookt:
  Application.HookMainWindow(AppHookFunc); Funktioniert soweit alles super.

Nun möchte ich das Empfangen und Abarbeiten der Messages in einen separaten Thread (mit TThread) auslagern. Wie kann ich eine Methode dort denn entsprechend hooken?

Noch eine Zusatzfrage: Es ist doch so, dass nur der Code in Execute Methode in einem separatem Thread ausgeführt wird, oder? Fügt mal weitere (public-)Methoden zu dem Tthread Objekt hinzu, so werden diese in dem Thread ausgeführt von dem sie aufgerufen worden sind. Hab ich das richtig verstanden?

Vielen Dank
  Mit Zitat antworten Zitat