그래서 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);
}
반복적으로 코드를 실행하려면 루프 또는 타이머가 필요합니다. 확실히 타이머는 인간의 손가락에 의해 시작되고 중지되어야 할 때 루프가 반복 될 수있는 빈도를 감안할 때 찾고있는 것입니다. mousedown에서 타이머를 시작하고 마우스 업 알림에서 중지하십시오. 타이머는 일반적으로 ~ 16 밀리 초까지 정확합니다. –