J'essaye de configurer le crochet de la souris sur le fil d'arrière-plan.LowLevelMouseProc dans le fil d'arrière-plan
delegate IntPtr LowLevelMouseProc(int nCode, IntPtr wParam, IntPtr lParam);
LowLevelMouseProc _proc = HookCallback;
SetWindowsHookEx(PInvoke.WH_MOUSE_LL, _proc, IntPtr.Zero, 0);
et
IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam){/**/}
Si je mets cela sur le principal tout fil de fenêtre fonctionne jusqu'à ce que la fenêtre doit faire un travail plus complexe qui provoque la souris pour cesser de répondre pendant toute la durée de ce travail (mise à jour plusieurs enfants dans le panneau par exemple).
Si je démarre un nouveau thread et à partir de là mettre en place le crochet, le problème est le thread se termine simplement après la mise en place de la fonction de rappel et de rappel n'est jamais appelé.
Y a-t-il un moyen de garder le fil en vie à cette fin? Ou s'il existe un autre moyen de brancher la souris sans risquer de ne pas réagir?
Je remarqué que lorsque accidentaly thread de travail exécute
GetMessage(out msg, new IntPtr(0), 0, 0);
Aucun message ne jamais recieved mais fil est maintenu en vie dans le but requis. Aussi, j'ai besoin d'une manière élégante de fermer le fil, mais GetMessage ne revient jamais.
Je ne comprends pas tout à fait tous ces messages, je veux simplement pouvoir brancher la souris et la sécuriser contre le gel.
Toute aide est appréciée.