jjzjj

KeyBoard

全部标签

windows - 在 Windows 上读取 hid 鼠标/键盘 (hidapi)

我在Linux上有一个应用程序,它使用hidapi读取复杂设备的数据(由Qt5.3创建)。该设备有多个接口(interface)HID,一种是“鼠标”,一种是“键盘”。在Linux上,我可以毫无问题地获取所有数据。我还需要在Windows上部署我的应用程序。我可以显示所有几个设备和接口(interface),但我无法打开接口(interface)类型为“鼠标”或“键盘”的连接。(hid_open_path返回null)。我看到Windows不允许打开与鼠标和键盘的连接(因为此设备已被Windows使用)。我怎样才能绕过这个禁令?我怎样才能阻止Windows使用特定的键盘或鼠标打开句柄?

c# - 插入windows键盘缓冲区

我们需要从一个硬件(RFID扫描仪)读取数据并将其注入(inject)Windows键盘缓冲区。这样RFID扫描仪就可以用于捕获字符串并注入(inject)光标当前所在的位置,例如,如果Windows应用程序中的文本框具有焦点,那么字符串就会出现在该位置。如果通过网络浏览器呈现的网络应用程序中的文本框具有焦点,则输入需要出现在那里。请注意:问题不在于从RFID设备读取数据-我们可以做到这一点,而是将我们读取的字符串放入Windows键盘缓冲区,这样无论哪个应用程序获得焦点,输入都会出现在光标。开发环境为C#.NET非常感谢托尼 最佳答案

windows - VK_PRINT 的目的是什么?

在处理键时,我假设虚拟键VK_PRINT(0x2A)是我键盘上的打印键。但这个假设是错误的。我需要使用VK_SNAPSHOT(0x2C),即VK_PRINT+2。但是VK_PRINT有什么用呢?看着MSDN,我觉得我们都应该忘记这个键码......VK_PRINT怎么了? 最佳答案 我相信VK_PRINT键码来自83/84键键盘时代(想想IBMXT和IBMAT机器)。此键盘上的“打印”键与数字小键盘的“*”键共享(而不是今天常用的PrtSc/SysRq键)。参见http://www.quadibloc.com/comp/scan.h

c# - 为 Windows 7 桌面开发我自己的虚拟键盘

我想为我的Windows7平板电脑构建我自己的虚拟键盘。我不是从零开始编程;我只是不知道从哪里开始制作像虚拟键盘这样的系统级设备。有好的文章或SDK吗? 最佳答案 您需要编写驱动程序才能真正获得虚拟键盘。不能用C#编写键盘驱动程序。驱动程序是用C(甚至不是C++;只是C)编写的,并且它们使用WindowsDriverKit为了发展。没有足够的文件,期间(你越早承认这一点越好)。如果您还没有以下书籍,请挑选一本:WindowsInternals,AdvancedWindowsDebugging,奥尼的ProgrammingtheWin

windows - 如何在 Delphi 中处理自定义组件中的箭头键?

我正在使用delphiXE。我正在开发一个来自TPanel的组件。TApGUITab=class(Tpanel)我通过处理WMKeyDown消息来处理按下事件,但是当我按下箭头键时它没有被调用,它将焦点设置到另一个控件而不是调用事件。我现在该怎么办? 最佳答案 这很简单。只需响应WM_GETDLGCODE消息并返回Message.Result:=Message.ResultorDLGC_WANTCHARSorDLGC_WANTARROWSorDLGC_WANTTABorDLGC_WANTALLKEYS;

Windows 键盘 Hook 挂起调试器

我有一个从主应用程序中的辅助(非GUI)线程启动的插件DLL。DLL必须从应用程序的主窗口中获取键盘事件。我正在使用SetWindowsHookEx(),效果很好。但是,如果我在Hook处于事件状态时在VisualStudio中遇到断点,然后按下一个键,VisualStudio和我的应用程序将完全锁定。这是一个问题,因为我通常使用F键逐步执行代码。如果我使用鼠标并从VisualStudio的“调试”菜单向前迈进,它工作正常。但是使用F10等。就是这样的习惯,我经常忘记用鼠标。我能做些什么来恢复我的键盘快捷键吗?或者用不同的方法来听键盘? 最佳答案

windows - 在 emacs 中写 é 时遇到问题

我在Windows7(x64)上使用emacs(以下版本)。我在emacs中写一个é有问题。我想按“´”和“e”来获取字符“è”。我使用emacs已经超过20年了,我不记得以前有没有遇到过麻烦。它以前工作过,我几乎可以肯定......显示'é'没有问题,我可以从其他程序/缓冲区剪切和粘贴。问题是打字。任何解决方案将不胜感激。BR/托马斯(MARVIN上的GNUEmacs23.4.1(i386-mingw-nt6.1.7601)2012-02-04) 最佳答案 尝试C-x8'e。键入C-x8C-h将显示所有Latin-1字符的输入表。

c++ - 从 WM_CHAR 消息中获取扫描码

如何将通过WndProc中的WM_CHAR捕获的任何语言的字符转换为键盘扫描码?就像按下的按钮是x它会返回0x2d等等。 最佳答案 根据WM_CHAR,扫描码在lParam参数的第16-23位中文档,所以只需移位和掩码:intscanCode=(lParam>>16)&0xff;如果你有一个角色,你可以调用OemKeyScan,将扫描码放在低字节:charc='X';intscanCode=OemKeyScan(c)&0x0ff; 关于c++-从WM_CHAR消息中获取扫描码,我们在St

windows - 从 Windows 禁用打印屏幕键盘选项

有没有什么办法可以关闭打印屏幕键盘上的按钮(当然不会破坏它的关键)。我正在使用Windows7。我需要它,因为它增加了我的数据库的安全性,该数据库很少被员工使用。 最佳答案 如果您操纵扫描码映射注册表项,则可以禁用任何项。可以找到一个带有设置说明的小教程here(更详细的扫描码图解释here)。特别是对于打印屏幕键,您可以创建一个新的文本文件,其中包含:WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboa

windows - 如何确定某个键是否被按下,只知道它在美式键盘上的位置?

考虑一下,对于Windows视频游戏,我需要确定是否按下了在美式英语键盘布局上生成`和~字符的键(通常位于Escape键下方,左键为1)。这听起来像是一个微不足道的问题,但对我来说却不是。当Windows发送键盘消息时,它会指定虚拟键码和OEM扫描码。我们不能依赖OEM扫描码,因为“值取决于OEM”——我们也不能依赖虚拟键码,因为它取决于当前事件的键盘布局。我们目前的“解决方案”是使用LoadKeyboardLayout和MapVirtualKeyEx找到在美式英语键盘布局上生成`字符的键的OEM扫描码,然后只听那个OEM扫描代码。问题是如果用户没有安装美国英语布局,这将不起作用。在W