Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi fensterloses Programm: Existiert ein Handle? (https://www.delphipraxis.net/36173-fensterloses-programm-existiert-ein-handle.html)

dde 16. Dez 2004 19:06


fensterloses Programm: Existiert ein Handle?
 
Soviel ich weiß haben sogenannte Windows alle Handle. Jetzt habe ich mich gefragt, ob fensterlose Programme auch ein Handle haben, oder ist es gleich der ID?

Luckie 16. Dez 2004 19:07

Re: fensterloses Programm: Existiert ein Handle?
 
Ganz einfach: kein Fenster, kein Handle.

dde 16. Dez 2004 19:35

Re: fensterloses Programm: Existiert ein Handle?
 
Hmm, wenn das so ist, dann frag ich mich, wie Messages an diese Programme übermittelt werden können?¿¿¿

Sprint 16. Dez 2004 20:45

Re: fensterloses Programm: Existiert ein Handle?
 
Zitat:

Zitat von dde
Jetzt habe ich mich gefragt, ob fensterlose Programme auch ein Handle haben, oder ist es gleich der ID?

Nur weil das Fenster vielleicht nicht sichbar ist, heisst das noch lange nicht, dass das Program keins hat. :wink:

dde 16. Dez 2004 21:28

Re: fensterloses Programm: Existiert ein Handle?
 
Zitat:

Nur weil das Fenster vielleicht nicht sichbar ist, heisst das noch lange nicht, dass das Program keins hat.
Naja, stimmt, aber das meine ich nicht. nonVCL ohne Fensterregistrierung z.B. ...

Luckie 16. Dez 2004 21:52

Re: fensterloses Programm: Existiert ein Handle?
 
Redest du von einem Dialog aus der Ressource?

dde 16. Dez 2004 22:15

Re: fensterloses Programm: Existiert ein Handle?
 
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]

Motzi 16. Dez 2004 22:22

Re: fensterloses Programm: Existiert ein Handle?
 
Schau dir mal MSDN-Library durchsuchenPostThreadMessage an...


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz