0
所以我用SetWindowsHookEx()
做了一个全局热键。我想要它做的是当我按下鼠标右键时,它应该一次又一次地执行一些代码。问题是,如果我按下鼠标右键,它只会执行一次。SetWindowsHookEx,在按下鼠标按钮时执行代码
这是我的回调函数:
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);
}
重复运行代码需要一个循环或一个Timer。当然,计时器就是你正在寻找的东西,因为当一个循环需要被人的手指启动和停止时,循环多久可以循环。在mousedown上启动定时器,在mouseup通知中停止它。计时器通常精确到〜16毫秒。 –