hélicos,gel SetWindowsHookEx WH_MOUSE sur point d'arrêt dans Win7
sur Windows XP mon application a utilisé une mousehook globale sucessfully pour récupérer MousePosition et clics, même si elle n'a pas le focus. le crochet est dans une .dll séparée et est en cours d'initialisation comme celui-ci (en delphi):
SetWindowsHookEx(WH_MOUSE, @MouseHookCB, HInstance , 0);
maintenant Win7 En gros, cela fonctionne aussi pendant l'exécution, mais je ne peux plus déboguer mon application bien (que je peux sous XP). dès que je frappe un point d'arrêt, Win7 se fige complètement. Je ne peux pas passer à un autre processus (même le gestionnaire de tâches ne s'ouvre pas). Si j'ai de la chance, je peux arrêter mon processus dans l'IDE. la plupart du temps si je dois redémarrer/se déconnecter pour retrouver l'accès.
Je sais que le problème est lié au crochet de la souris car il n'est pas présent si je n'utilise pas le crochet. c'est même si mon hookprocedure ne fait rien, mais ce qui suit:
CallNextHookEx(MouseHook, Code, wParam, lParam);
ie. simplement la présence du crochet cause les ennuis. Avoir globalhooks.dll écrire quelque chose dans le EventLog je vois qu'il est toujours actif même pendant que je suis sur un point d'arrêt.
J'ai essayé d'utiliser un hook de lowlevelmouse via WH_MOUSE_LL qui fonctionne fondamentalement mais qui me donne des étranges retards de déplacement de souris lors de l'installation du hook et parfois lors du redimensionnement d'une fenêtre. il y a aussi un gel pendant quelques secondes quand on atteint un point d'arrêt mais au moins le système récupère après ~ 5 secondes ... donc cette option est encore pire car elle affecte aussi le temps d'exécution.
toute idée pourquoi le crochet WH_MOUSE bloque mon application pendant le débogage en premier lieu?