ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
1617
1617
EMPFEHLEN
-
kann mir mal einer sagen wieso folgendes programm nicht so funktioniert, wie ich es will?
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
#include <stdio.h> #include <windows.h> int main(int argc, char **argv) { MSG msg; HWND hwnd = FindWindow(NULL, "Test"); if(hwnd == NULL) return 1; while(true) { printf("Searching for Messages..."); if(PeekMessage(&msg, hwnd, 0, 0, PM_NOREMOVE)) { printf("\nGetting Message..."); GetMessage(&msg, hwnd, 0, 0); printf("%i (wParam: %i), Time: %i\nWaiting...\n", msg.message, msg.wParam, msg.time); Sleep(5000); } else { printf("No Message.\n"); } } return 0; }
ich hab mit diesem programm vor, die nachrichten eines anderen programmes abzufangen, dummer weisse sagt mir mein programm "No Message", ich weiss nicht warum.. das andere programm, was abgefragt wird, hat immer eine message, weil ein Timer eingeschaltet ist und der jede 100ms aufgerufen wird.... und auch wenn ich auf einen button klicke sagt mir mein programm das keine nachricht vorliegt... hab mich im MSDN auch nicht schlauer gemacht...
-
12.06.03 23:34 #2
- Registriert seit
- Jan 2002
- Ort
- Bayern
- Beiträge
- 1.390
Also soweit ich weiß kann man so ohne weiteres keine Nachrichten eines anderen Programmes "abfangen" wenn dann geht das glaube ich nur mit einem Hook.
Gruss Homerwe would change the world if god gave us the source code...
and remember, science is nothing more than reverse engineering nature...
Current projects:
- LdrawConverter
-
dann ist fraglich wozu das HWND feld in der funktion ist, wenn es nur in dem eigenen programm geht...?!
scheinst aber vieleicht recht zu habn.... mhh...
-
13.06.03 00:00 #4
- Registriert seit
- Jan 2002
- Ort
- Bayern
- Beiträge
- 1.390
Na ein Programm kann ja auch mehrere Fenster haben, und dazu sollte der HWND-Parameter gut sein.
Aber wie gesagt, ich bin mir da nicht ganz sicher.
Gruss Homerwe would change the world if god gave us the source code...
and remember, science is nothing more than reverse engineering nature...
Current projects:
- LdrawConverter
-
Ich versuchs mal zu erklären, wie ich denke warum es nicht funktioniert.
In Windows gibt es eine SystemQueue, welches alle Nachrichten an die Applikationen die Laufen sendet. Innerhalb der Applikation gibt es dann die MessageQueue, die verteilt die Nachrichten an die Fenster!
Deshalb braucht man das Fenster-Handle. Die dann dort aus der MessageQueue entnommen werden.
Du hast zwar das Handle des Fensters, aber Du befindest Dich in einer anderen Applikation. Daher vermute ich, dass es nicht geht.
Für Nachrichten einer anderen Applikation kann man nur mit Hilfe eines Hooks realisieren. Man greift dort sehr tief im System ein.
Es gibt verschiedene Hooks: Maus, Tastatur etc.I'll be back!!
Ähnliche Themen
-
Windows Messages in DOTNet
Von MarioR im Forum .NET Windows FormsAntworten: 0Letzter Beitrag: 29.09.09, 10:32 -
[C] Windows Messages in DLL (JNI)
Von Billie im Forum C/C++Antworten: 0Letzter Beitrag: 21.07.09, 11:21 -
Platz für away messages bei ICQ
Von Hopsa im Forum InternetkommunikationAntworten: 0Letzter Beitrag: 07.06.06, 20:11 -
ICQ Away Messages ändern
Von DaRula im Forum Visual Basic 6.0Antworten: 7Letzter Beitrag: 01.06.04, 14:33 -
Voice-Messages Box
Von nitrobesim im Forum Internet, DSL & FlatrateAntworten: 3Letzter Beitrag: 27.03.04, 12:43





Zitieren
Login






