J'ai donc créé une touche de raccourci globale en utilisant SetWindowsHookEx()
. Ce que je veux faire c'est que pendant que j'appuie sur le bouton droit de la souris, il devrait exécuter du code encore et encore. Le problème est que si j'appuie sur le bouton droit de la souris, il ne l'exécute qu'une seule fois.SetWindowsHookEx, exécutez le code lorsque le bouton de la souris est enfoncé
Ceci est ma fonction de rappel:
private static IntPtr ButtonHookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
if (nCode >= 0)
{
if (wParam == (IntPtr)WM_RBUTTONDOWN)
{
_m.rtbLog.AppendText("Right mouse button was clicked \n");
}
else if (wParam == (IntPtr)WM_LBUTTONDOWN)
{
_m.rtbLog.AppendText("Left mouse button was clicked \n");
}
}
return CallNextHookEx(MainWindow._hookId, nCode, wParam, lParam);
}
L'exécution répétée du code nécessite une boucle ou un temporisateur. Sûrement une minuterie est ce que vous recherchez étant donné la fréquence à laquelle une boucle peut se déclencher quand elle doit être démarrée et arrêtée par un doigt humain. Démarrez le minuteur sur le mousedown, arrêtez-le sur la notification de mouseup. La minuterie est généralement précise à ~ 16 millisecondes. –