Problem mit SetWindowsHookEx()
-
Hallo !
Ich kämpfe nun schon seit mehreren Tagen mit dem Problem, und so wie es aussieht komm ich wohl alleine nicht drauf wo der Fehler liegt.
Ich will einen ganzen simplen globalen CBT Hook setzen.
Dazu hab ich eine DLL erstellt welche die Callback funktion exportiert, eine ganz einfache eig. nichts macht außer Beep() wenn z.B. ein Fenster aktiviert wurde.Eine kleine Schritt für Schritt Anleitung wie ich vorgehe:
1. Ich lade die DLL in mein Programm welches den Hook setzt
2. Den Funktionspointer mit GetProcAddress holen
3. SetWindowsHook aufrufen mit Hanlde zur DLL und FunktionspointerWenn der Hook wieder entfernt werden soll entlade ich die DLL vorher und rufe dann UnhookWindowsEx auf.
Die ersten paar Sekunden funktioniert es eigentlich, aber dann friert die Taskleiste ein und der explorer stürzt ab nachdem eine Fehlermeldung kam das drwatson32.exe beendet werden muss.
Ich hab eigentlich alles so gemacht wie es in der WinAPI steht, aber es will einfach nicht funktionieren.
Ich würde mich freuen wenn jemand Tipps hätte wo es vielleicht "Stolperfallen" gibt auf die ich womöglichen vergessen habe zu achten.Das einzige was ich mir noch denken könnte wo der Fehler liegt ist, dass die DLL in den Prozess geladen wird der SetWindowsHookEx aufruft, aber laut MSDN ist das kein Problem.
lg
-
Hat hier niemand eine Idee ?
Auch wenn ich in der CallBack Funktion nichts mache außer CallNextHookEx() auszufuehren passiert immer das gleiche, wenn ich zuviel herumklicke (weil dann ja die CallBack Funktion ausgeführt wird) stürzt die explorer.exe ab.
Woran kann das liegen ?