微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

推荐的方法是检测Control + some-key被按下了什么?

假设我想要抓住Control-A组合。

这是我的代码到目前为止,在一个Windows钩子函数

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] 举报,一经查实,本站将立刻删除。

相关推荐