M
Stimmt, hast recht das habe ich übersehen.
Man das ganze hat mich sowieso verwirrt ("Fenstersüchtigichbin").
Meine Frage war ja was passiert ohne Window?
Wie geeky schon schrieb das es wiedersprüchlich sei, gut, in der Doku steht das man eine Messageloop erstellen kann:
You create a message loop by using the GetMessage and DispatchMessage functions
Das machen wir ja sonst auch, nur ruft Windows unsere WndProc auf die hier nicht vorhanden ist.
Was steht in message.hwnd ? Die hInstance oder NULL, ok kann man testen, aber ich finde das seltsam.
Windows sagt: ... mußt haben Fenster zum starten der Message loop...
sagt aber auch: ...sendet an die Applikation....erstelle Message Loop mit GetMessage...
Dem nach sind einige SDK aussagen falsch, zu einem sagt es das die Message an das Fenster gesendet wird, und zum anderen das die message an den Thread gesendet wird. Demnach erhält immer meine Applikation die Message beim aufruf von GetMessage() und erst mit DispatchMessage() sende ich es dem Fenster, bzw. der WndProc.
in dem Beispiel wird die Message auch mit DispatchMessage weiter gegeben, aber wohin? also ist das doch da unötig, oder?
Genau so ist es auch, keine WndProc vorhanden, also warum die Message ins leere schicken, so lassen wir es weg.
Fazit, egal was ich habe ob Konsolenanwendung oder sonst was, mit GetMessage kann und werde ich Nachrichten erhalten, aber welche?
::: Da das Forum mal wieder ausgefallen war beim schreiben, habe ich mal getestet:::
message.hwnd ist NULL.
Auf der Art kann ich mir eine HotKey Palette erstellen, z.B. mit ALT+I den IE starten, mit Strg+E windows runter fahren etc.
Das Prog lege ich im Autostart und gut ist. Also warum Fenster verstecken, wenn man keins brauch?
Wäre die Doku da schlüssiger, hätten sicherlich einige ihre Progs so aufgelegt ohne Fenster verstecken.
Und wenn man jetzt noch nen Hook setzt und den Prozess versteckt, hat man nen guten Spion!
The MSG structure contains message information from a thread's message queue.
Da steht Thread und nicht Window!
Because Windows directs messages to individual windows in an application, a thread must create at least one window before starting its message loop.
Hier steht wieder muß Window, bevor die Schleife beginnt!
muß, muß gar nichts wie man sieht.
Vor ewigkeiten hatte ich in einem Buch von nem "Profi" gelesen:
"Um Windows Nachrichten bearbeiten zu können, benötigen wir ein Fenster..."
Der wußte es auch nicht anders.
Ich finde das Irreführend.