草庐IT

keyBoard

全部标签

c# - 编程多个自定义剪贴板,使用 Windows 剪贴板 - 很少有并发症

我正在尝试构建一个C#后台应用程序,该应用程序将Hook键盘击键(例如CAPS+(A/B/C/....))以充当许多不同剪贴板的副本。首先,我寻找了一个类似于CTRL+V的Windows方法:直接粘贴完整的字符串。我也试过SendInputs来“粘贴”,错误的想法是执行时间太长。由于没有找到任何商品,我决定使用Windows剪贴板。场景是(当我做CAPS+A时)缓存剪贴板的内容以便稍后检索模拟CTRL+C获取剪贴板的内容并将其设置为对应于'A'键的变量将剪贴板设置为默认缓存值。这在我使用记事本时效果很好。但是当在另一个应用程序上执行CTRL+C时,我在第3步得到异常CLIPBRD_E_

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