Einzelnen Beitrag anzeigen

dde

Registriert seit: 7. Mai 2003
132 Beiträge
 
#7

Re: fensterloses Programm: Existiert ein Handle?

  Alt 16. Dez 2004, 23:15
Mit "ohne Fensterregistrierung" meinte ich einfach "ohne alles". z.B.:

Code:
program Project1;

uses Windows,Messages;

function WndProc(...);
begin
case msg of
 ....
end;
end;

var msg:TMsg;
begin
 while true do
  begin
   if not GetMessage(Msg,0,0,0,0) then Break;
   TranslateMessage(Msg);
   DispatchMessage(Msg);
  end;
end.
Wie erreichen nun die Messages dieses Programm, das keine Windows etc. hat. Man kann mit SendMessage und PostMessage die sogennanten Messages verschicken wie wir wissen. Hierzu muss man ein Handle angeben. Ruft man es programm-intern auf, dann kann das Handle auch null sein. Wie sieht es nun aber aus, wenn eine Unit, die eingebettet ist, eine Message an dieses Programm schicken will? Geht es hier auch mit handle=0 oder wird DAS Handle benötigt? (Sofern eins existiert). Und wie sieht es aus, wenn ein externes Programm eine Message an dieses Programm richten will?

[edit]dde: Beim obigen Code ist WndProc keinem Window zugeordnet. Folgich kann die Funktion nicht per DispatchMessage(Msg) aufgerufen werden. Ein weiteres Problem, wieso es ohne Handle nicht zu funktionieren scheint...[/edit]
  Mit Zitat antworten Zitat