2011-02-22 5 views
0

win API를 사용하여 일반적인 마우스 마우스 클릭을 사용 중지하는 방법이 있습니까? ClipCursor을 수행하여 특정 지점 외의 곳에서 클릭을 사용 중지 할 수 있지만 클릭은 계속 등록됩니다.win32api : 마우스 클릭을 일시적으로 차단 하시겠습니까?

또는 조건부로 마우스 클릭을 비활성화하고 싶습니다. 예를 들어, 제어 할 수없는 응용 프로그램의 창을 닫을 수 없도록하고 싶습니다. 따라서 클릭을 'X'로 보내고 싶습니다. 창문이 통과하지 못한다.

+1

에서이 수행하기 어려운 이유가있다. 당신은 전혀 이것을해서는 안됩니다. 해결하고자하는 것이 무엇이든간에 더 나은 해결책을 시도하십시오. "앱 폐쇄를 방지하는"아이디어조차도 그렇게 나쁜 것입니다. 작업 관리자를 통해 앱을 종료하는 것이 좋습니다. ALT + F4 또는 ALT + f, x는 어떻게됩니까? – tenfour

+0

@tenfour : 우연히 'X'버튼으로 우연히 창문이 닫히지 않도록하고 싶습니다. – Claudiu

+0

그런 다음 이벤트 핸들러를 등록하고 확인을 요청하는 대화 상자를 작성하십시오. 실제로 원하지 않으면 사용자가 창을 닫지 못하게하지 마십시오. –

답변

1

매우 위험합니다. 여기서,

LRESULT __stdcall LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam) 
{ 
    if ((nCode < 0) || false) 
    { 
     result = CallNextHookEx(myLowLevelMouseHookHandle, nCode, wParam, lParam); 
    } 

    return result; 
} 

변경 C++의 예제에서 false 위에서 작동하는 키보드를 다시 활성화하는 방법은 다음과 같습니다.

이 기술은 키보드 입력과 마찬가지로 작동하며 Ctrl + Alt + Del도 작동하지 않습니다.

마우스를 움직일 수는 있지만 클릭 만 차단하려면 if ((wParam == WM_MOUSEMOVE) || (wParam == WM_NCMOUSEMOVE)) 코드를 추가하십시오.

더 많은 정보는 http://msdn.microsoft.com/en-us/library/ms644986(VS.85).aspx

+0

나는'sethookex' 또는 뭔가가 OS가 그 기능으로 뭔가를 할 수 있다고 가정한다. – Claudiu

+1

정확 : \t myLowLevelMouseHookHandle = SetWindowsHookEx (WH_MOUSE_LL, & LowLevelMouseProc, myInstance, 0); \t myLowLevelMouseHookInstalled = (myLowLevelMouseHookHandle! = NULL); – servermanfail

+0

sweet, 이제 python에서이 작업을 할 수 있습니다. – Claudiu

관련 문제