Mouse Hook

Hallo,

habe ein kleines Problem mit meiner Mouse Hook DLL.
Wenn ich die DLL lade anschließen ein paar Mouse-Events
auslöse (MouseMove, Clicks, etc) läuft die DLL stabil.
Der Fehler kommt immer wenn ich ein Programm über
den Beenden-Butten beende, dann geht wird die DLL
sofort durch das Event DLL_PROCESS_DETACH beendet.

Kennt einer dieses Problem und deren Lösung?

Hier noch der dazugehörige Code.

Code:
LRESULT CALLBACK MouseProc (int nCode,		// hook code 
							WPARAM wParam,	// virtual-key code 
							LPARAM lParam ) {	// keystroke-message information 
	try {
		pMouseHook=(MOUSEHOOKSTRUCT FAR *) lParam;

		// nicht alles, was kommt ist ein Tastendruck (s. MSDN)
		if (nCode == HC_ACTION) {
	              ....
		} // END: if (nCode == HC_ACTION)

		// MouseKey weiterleiten (ev. an andere Programme)
		return (CallNextHookEx (HookHandle, nCode, wParam, lParam));

	} catch (...) {
		MessageBox(NULL, "Fehler", "ACHTUNG", MB_OK|MB_ICONWARNING);
		return (CallNextHookEx (HookHandle, nCode, wParam, lParam));
	}
	
}

Danke.
 
Danke für deinen Tip. Nur leider Hilft er mir nicht
wirklich weiter. Der "Absturz" passiert immer nur
beim MausClick auf den Beenden-Button.
Alles andere Funktioniert tadellos.
Habe es versucht, weil der Fehler mir bekannt ist,
im DLL_PROCESS_DETACH entsprechende
änderungen vorgenommen um diesen Fehler
einigermaßen auszumerzen. Jedoch kommen
dardurch andere Fehler zustande. Deshalb nicht
tragbar. Somit muß ich die tatsächlichen Fehler
herausbekommen.

Hat jemand noch eine Idee wie ich herausbekomme
warum er mir bei der oben beschriebenen Situation
aussteigt

Danke.
 
Wo ist denn eigentlich das Problem?
Die DLL mit dem Hook drin wird für jeden betroffenen Prozess einzeln geladen (muss ja im selben Adressraum liegen). Dementsprechend wird die entsprechende DLL mit dem Prozess auch wieder rausgeschmissen (du solltest auch mehrere DLL attaches bekommen).

Falls ich komplett daneben liege, bitte diesen Post ignorieren und weitergehen.
 
Also heißt das wenn ich das Programm beende kann ich die letzte Aktion
(Klick auf Beenden-Button) nicht mehr über die Hook Funktion abfangen
Was wäre die beste Methode auch diese letzten Events zu fassen.

Danke für dein Antwort.
 
Zurück