SendMessage to TrayIcon application ?
-
hallo leute
weiss jemand wie ich ein SendMessage aufruf zu eine Programm schicken kann, was sich im Tray-Icon-Modus befindet ?
thx 4 help
pepe
-
Was verstehst du unter Tray-Icon-Modus?
Ist das Normale Fenster mit ShowWindow() ausgeblendet? nehm mal an, ja.
Dann kannst du ganz normal mit SendMessage() Nachrichten schicken, sollte ohne Probleme funken
-
also mein progi ist mit "SW_HIDE" versteckt. und über ein tray-icon erreichbar. zusätzlich habe ich noch ein keyhook eingebaut. der bei einer bestimmten tastenkompi eine message an mein progi schicken soll.
leider geht das nicht. die message wird nur verarbeitet, wenn ich zum beispiel das popupmenue vom tryicon meines programmes aufrufe/benutze.pepe
EDIT:
so sieht meine Messageverarbeitung auswhile (true) { if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } // GetMessage Sleep(50); }komisch ist auch, dass nicht mal dieser aufruf funktioniert (wird vom hook gesendet)
ShowWindow(g_hWnd,SW_SHOW);[ Dieser Beitrag wurde am 22.05.2003 um 12:50 Uhr von pepe editiert. ]
-
hat keiner ein plan ???
-
1. Warum verwendest du nicht GetMessage() anstelle von PeekMessage()?
2. Schau dir das mal mit dem Debuger an...
-
Immer, wenn ich
while (true) { ... }in einer Windows-Nachrichtenschleife sehe, wird mir ganz anders....
-
@Hepi
ich hoffe dir wurde RICHTIG aber so RICHTIG anders du ...

@Der_Knob
dies habe ich schon lange versuchthabe aber ein viel besser lösung gefunden
pepe
-
wie ne besseres lösung?
warum jetzt nicht GetMessage(), ist ja kein Spiel oder??
-
@Der_Knob
ne ist kein game, war auch nur ein versuch. aber egal, habe denn "fehler" gefunden.pepe
hier ist die lösung, wer es wissen will (aber nur dann lesen sonst fatal-error)

- übergebe meiner Hookfunktion mein hwnd von der applikation, die auch das hook per dll lädt und startet
- benutzen von PostMessage(g_hwnd,....) in der KBHOOKPROC funktionierte nur, wenn meine applikation active war bzw. mein applikation hat drauf reagiert
- der kbhook läuf super,da ich paar keys "geändert" hatte (zur funktionsüberwachung)"lösung"
- wenn ich aber in der hookproc erst "FindWindow" und dann zum gefundenen fenster die message poste, funktioniert es !!!
(ist ja auch logisch)ABER eigendlich müsste das übergebende handel meiner applikation an die hookdll gleich dem händer von "FindWindow" sein oder ?
-
schon mal was von shared Memory in einer dll gehört.

-
kann mir das noch einmal wer erklären - bin mit der systemprogrammierung noch nicht so vertraut.
ich bin vom beispiel in der faq (http://www.c-plusplus.net/forum/viewtopic.php?t=39145) ausgegangen und hab den code von dort 1:1 übernommen. funktioniert auch soweit, aber nur wenn ich das programm NICHT minimiere bzw. nicht in den systray verbanne.
könnte das an dieser zeile liegen:
HWND ghAppWnd = FindWindow(0, "KeyMeter");um das kurz nochmal zusammenzufassen: ich möchte wissen, was ich ändern muss um die tastenanschläge an mein programm im minimierten zustand zu schicken. ich verwende dabei TTrayIcon vom bcb6.
ratz