假设我想要抓住Control-A组合。
KBDLLHOOKSTRUCT kbdStruct = *((KBDLLHOOKSTRUCT *)lParam); if (kbdStruct.vkCode == 0x41) { MessageBox(NULL,TEXT("A has been pressed!"),TEXT("key pressed"),MB_ICON@R_875_4045@ION); }
由于用户首先按下控制键(并按下了许多毫秒),我上面的键盘钩应该最初忽略该键,是正确的? 我想我需要在寻找字母“A”,一旦检测到,我应该检查修饰符,控制键的状态?
也许有一些与此面具?
运行python Webserver作为Windows服务
什么是BITS最好的免费提供的C#包装?
什么关键是System.Windows.Input.Key.Clear
什么是创build崩溃报告string的一个好方法反映了崩溃的原因的Win32 C ++?
增加:假设我需要一个Control-B或Control-C或Control-D到Control-Z。 也许我需要的是Alt-A,Alt-B或Alt-C ……一直到Alt-Z
我如何混合2个部分匹配? (字母键加上修饰键)。
什么时候由.NET进程分配的内存被释放回Windows
在Windows x64中运行Cython – 致命错误C1083:无法打开包含文件:'basetsd.h':没有这样的文件或目录
WSR显示数字
成功执行Django python命令的* only *方法是使用“python … PATH … django-admin.py ”。 为什么不能减less?
Windowspath上的“ ?? ”是什么意思?
你去了:
LRESULT __stdcall Process_Ctl_A(int nCode,WParaM wParam,LParaM lParam) { if (nCode >= 0 && wParam == WM_KEYDOWN) { KBDLLHOOKSTRUCT kbdStruct = *((KBDLLHOOKSTRUCT *)lParam); if (kbdStruct.vkCode == 0x41 && GetAsyncKeyState(VK_CONTROL) & 0x8000) { MessageBox(NULL,TEXT("Control-A combination has been pressed!"),MB_ICON@R_875_4045@ION); } } return CallNextHookEx(hook,nCode,wParam,lParam); }
请不要使用键盘钩子DLL,它将代码注入到不用于处理键盘钩子和创建系统不稳定性的进程中。
你是否试图抓住“CTRL + A”,因为你正试图在你的应用程序中实现诸如“全选”之类的东西。 如果是这样,你只需要一个键盘加速器来捕捉这个键盘序列,当你的应用程序有焦点。
但是,如果你需要赶上你应该尝试看看RegisterHotKey API。 我认为,如果你需要一个全球性的钩子,应该满足你的需求。 但要警告 – 我不知道如果你注册CTRL + A会发生什么情况,应用程序正在使用这个组合键来“全部选择”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。