草庐IT

KeyBoard

全部标签

c++ - Win32 鼠标和键盘组合

我需要在Win32中组合鼠标和键盘事件,例如Click+Shift或Click+Alt+Shift。例如(伪代码):caseWM_LBUTTONDOWN:if(Shift)//click+Shiftif(Shift&&Ctrl)//click+Shift+Ctrlif(Shift&&Alt)//click+Shift+Altbreak;我知道here和here的所有必要参数。但我不知道如何正确组合它们。 最佳答案 假设这是在您的winproc中:if(wParam&MK_SHIFT){if(wParam&MK_CONTROL&&wP

c++ - Qt Widget - 如何只捕获几个键盘键

我知道使用grabKeyboard()我的小部件即使没有获得焦点也能够捕获每个键盘事件,但是如果我只想捕获三个或四个键怎么办?我尝试使用事件过滤器https://doc.qt.io/qt-5/qobject.html#installEventFilter但这没有用(也许是因为我是这样安装的?)classMyWidget:publicQGLWidget{...protected:booleventFilter(QObject*o,QEvent*e);};boolMyWidget::eventFilter(QObject*o,QEvent*e){if(e->type()==QEvent::

c++ - Windows 虚拟键代码

我如何实现像std::stringVirtualKeyCodeToStdString(UCHARkey)这样返回虚拟键描述的函数?示例:输入为VK_CAPITAL,返回值为std::string("CapsLock") 最佳答案 将VK代码转换为key的文本表示的一种简单方法是:使用MapVirtualKey将VK码转换为扫码。进行位移以将该值转换为长整数,其中第16-23位是扫描码使用GetKeyNameText获取key的名称。例如:WCHARname[1024];UINTscanCode=MapVirtualKeyW(VK_C

C++ (Qt) 模拟键盘输入、sendkeys、send kestrokes等的跨平台库

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。有人知道用于模拟键盘输入的真正的跨平台C++库吗?我将通过google和stackoverflow进行研究,但既没有找到基于Qt的库,也没有找到适用于Windows、Linux/X11和MacOSX的通用C++库。只有一些代码片段可用,如下所示:window:有大量示例如何通过keybd_event函数实现这一点。Linux:http://www.doc

c# - 更改另一个应用程序的输入语言

我想更改事件窗口的输入语言。问题是事件窗口不是我的应用程序。我知道InputLanguage.CurrentInputLanguage=lang;但它会更改我的WinForms应用程序的语言,而不是事件应用程序的语言。总结:我的情况是我的程序监听任何键盘事件(即使当它没有聚焦)并在我按下F1时执行代码。我希望按F1将记事本中的语言更改为希伯来语,记事本是我按F1时激活的应用程序。我对低级解决方案或高级解决方案感兴趣。 最佳答案 您应该知道另一个应用程序的hWnd并为其发布消息publicvoidInputLangChangeRequ

c++ - 如何在 C++ 中获得直接键盘输入?

我目前正在Windows中用C++编写游戏。到目前为止一切都很顺利,但我的菜单如下所示:1.向北走2.向南走3.向东走4.向北走5.库存6.退出插入选择-它工作正常,但我已经使用那种东西有一段时间了,我更喜欢一个你可以用向上和向下箭头导航的东西。我该怎么做呢?提前致意 最佳答案 您是否考虑过使用控制台UI库,例如ncurses? 关于c++-如何在C++中获得直接键盘输入?,我们在StackOverflow上找到一个类似的问题: https://stackov

c++ - 如何区分左右键(CTRL 和 ALT)?

我开始使用Win32的原始输入功能来检测键盘上的所有按键。到目前为止,一切都很好!我可以区分顶行的数字和右侧键盘中的数字。我什至可以检测到左右shift键。但是,control和alt键不会返回唯一的扫描代码。control键返回29,alt键返回56。检查这些键的键状态的流行方法是GetAsyncKeyState。我已经使用VK_LCONTROL和VK_RCONTROL测试了该功能,它可以工作,但这只能帮助我捕获按键事件。我真的很想也能够捕获关键事件。很明显,API以某种方式知道按下了哪个键;我如何获得这些信息?我目前正在从RAWKEYBOARD结构的MakeCode字段中提取扫描码

c++ - 原始输入替代键盘 Hook ?

快速提问--我正在阅读有关键盘Hook的文章,有人建议使用原始输入来执行此操作,但我还没有找到任何相关示例。例如我正在使用RAWINPUTDEVICErid[1];rid[0].usUsagePage=0x01;rid[0].usUsage=0x06;rid[0].hwndTarget=hWnd;rid[0].dwFlags=0;RegisterRawInputDevices(rid,1,sizeof(rid[0]));并且在应用程序自己的窗口中捕获WM_INPUT很好,但在应用程序外部则不行。这可能在应用程序之外还是您必须使用WH_KEYBOARD或WH_KEYBOARD_LL?MS

c++ - 键盘 Hook 问题

我正在做一个使用一键通键的语音聊天应用程序。我做了一个钩子(Hook),所以它也会在应用程序外部注册一键通。HHOOKhHook=SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)pushtotalk,0,0);LRESULTCALLBACKpushtotalk(intkey,WPARAMwParam,LPARAMlParam){if(keyvkCode==75&&wParam==WM_KEYDOWN){MessageBox(mainhWnd,"KEYSTART","KEYSTART",0);}elseif(kbdll->vkCode==75&&wPa

c++ - C++ 中的键盘/鼠标输入

我想知道如何使用适用于Windows732位的VisualStudio2010在C++中接受键盘和鼠标输入。--编辑:我忘了提到我需要键盘/鼠标输入而不中断程序的流程。有点像听众。我不想暂停程序并要求输入,然后让用户输入并按下回车键。我正在寻找的更像是:如果用户按下W、S、A、D->会发生一些事情。或者:如果用户按下鼠标左键->会发生一些事情。我不得不说,我对整个编程还是很陌生。我知道基本的OOP编程,但仅此而已。我敢肯定这会涉及到我还不知道的东西,我不介意,我只是要求你彻底解释它,并可能给出一个例子,以便我知道如何使用它。谢谢。 最佳答案