2011-02-22 193 views
0

有什么方法可以禁用使用win API的常规windows鼠标点击?我可以通过做ClipCursor来禁用除特定点以外的任何位置的点击,但点击仍会注册。win32api:暂时阻止鼠标点击?

或者我也想禁用有条件的鼠标点击...例如,我想让我无法关闭我不控制的应用程序窗口,所以我想要点击发送到'X'窗户不通过。

+1

有一个很好的理由,这是很难做到的。你根本不应该这样做。无论您想要解决什么问题,都可以尝试更好的解决方案。即使是“防止关闭应用程序”的想法也很糟糕。你只会鼓励通过任务管理器来杀死应用程序。怎么样ALT + F4,或ALT + f,x? – tenfour 2011-02-22 16:44:41

+0

@tenfour:我只想防止用'X'按钮意外关闭窗口。 – Claudiu 2011-02-22 17:08:54

回答

1

你可以,而且非常危险。以下是如何在C++中

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

    return result; 
} 

变化的例子的false上面重新启用键盘工作。

顺便说一句,这个技术也可以和键盘输入一样工作,即使Ctrl + Alt + Del也不会工作。

如果您想允许鼠标移动,但只阻止点击,请添加一些if ((wParam == WM_MOUSEMOVE) || (wParam == WM_NCMOUSEMOVE))代码。

更多的信息在http://msdn.microsoft.com/en-us/library/ms644986(VS.85).aspx