C++禁用windows全局鼠标
禁用全局鼠标的实现方式与禁用键盘类似,也是通过使用Windows API函数来创建钩子来截取鼠标消息,然后在钩子函数中阻止特定鼠标事件的执行。
下面是一个使用C++和Windows API来禁用全局鼠标的示例代码:
#include <iostream>
#include <Windows.h>
// 定义全局的钩子句柄
HHOOK mouseHook;
// 鼠标钩子回调函数
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= 0)
{
// 检查是否为鼠标按键事件
if (wParam == WM_LBUTTONDOWN || wParam == WM_RBUTTONDOWN)
{
// 屏蔽鼠标按键事件,使其不再执行
return 1;
}
}
// 继续下一个钩子
return CallNextHookEx(mouseHook, nCode, wParam, lParam);
}
int main()
{
// 创建鼠标钩子
mouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseProc, NULL, 0);
if (mouseHook == NULL)
{
std::cout << "Failed to set mouse hook." << std::endl;
return -1;
}
// 进入消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
// 释放钩子
UnhookWindowsHookEx(mouseHook);
return 0;
}
在上述代码中,使用SetWindowsHookEx函数创建了一个鼠标钩子,MouseProc函数是钩子的回调函数,在该函数中拦截了鼠标按键事件并返回1来阻止其执行。最后,通过消息循环来处理消息,并在程序退出时释放钩子。
需要注意的是,由于该代码同样使用了系统级的钩子,需要以管理员权限运行才能正常工作。同时,在禁用全局鼠标之后,对系统使用会造成较大的影响,请谨慎使用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术