我正在寻找一种语言或库,使我能够在最大可能的水平上模拟击键,而无需实际按下按键。
(我对击键级别的具体衡量标准是,当我的计算机已经运行按键侦听器(例如鼠标键和粘滞键)时,它是否会产生与物理按键相同的输出)。
我尝试过很多击键模拟的方法;
java AWT 库、Java win32api、python win32com sendKeys、python ctypes Key press 以及更多用于 python 和 Java 的库,但它们都没有在足够接近实际硬件的水平上模拟击键。
(当 Windows 鼠标键处于活动状态时,发送冒号、分号或小键盘 ADD 键的击键只会产生这些字符,而物理按下则执行鼠标键单击)
我相信这样的方法必须涉及将笔划直接发送到应用程序,而不是仅将它们传递到操作系统。
我的想法是,这些高级(操作系统代码之上)语言的库都无法产生足够的东西。我担心我可能不得不屈从于某种 BIOS 编程。
有人对此事有任何有用的信息吗?
我将如何用较低级别的语言模拟按键?
我是否应该寻找特定于我的硬件的解决方案(某种富士通硬件 API)?
我几乎觉得对机器人进行编程,只需坐在硬件旁边按下按键会更容易。
谢谢!
第二种解决方案,超级复杂,大量虚拟化,恶魔般的,完全未经测试,但理论上应该可行,除非 datasnip 程序实际上并不写入键盘缓冲区,而是像您一直在尝试的那样模拟击键。那会很糟糕,而且我会发现他们产品的描述非常具有误导性。
你需要:
- http://www.priority1design.com.au/datasnip.html http://www.priority1design.com.au/datasnip.html
- http://sourceforge.net/projects/com0com/ http://sourceforge.net/projects/com0com/
还有一些写入 com 端口的知识...看起来这里有一个很好的 python 模块:http://pyserial.sourceforge.net/ http://pyserial.sourceforge.net/
首先,编写一个小程序,根据需要将字符、十六进制代码等发送到您选择的 COM 端口。其次,使用 com0com 创建虚拟 COM 端口对。此时,将程序连接到创建的 COM 端口之一,并将 datasnip 连接到另一个端口,确保通信双方使用相同的波特率、奇偶校验和停止位以及数据长度参数。
此时,据操作系统所知,您应该拥有一个与硬件键盘相同的键盘。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)