WinIO 的封装库
项目描述
rabird.winio
警告:此库已重命名为 pywinio ,请改用它!
winio 的包装库。
感谢来自 Yariv Kaplan 的优秀 WinIO 库。
WinIO 库二进制分发将从 winiobinary 包访问。
用法
键盘仿真
注意:如果您在 win10 或更高版本上测试,您必须将 ps/2 键盘连接到您的 PC,否则此示例将无法正常工作!
import rabird.winio import time import atexit # KeyBoard Commands # Command port KBC_KEY_CMD = 0x64 # Data port KBC_KEY_DATA = 0x60 __winio = None def __get_winio(): global __winio if __winio is None: __winio = rabird.winio.WinIO() def __clear_winio(): global __winio __winio = None atexit.register(__clear_winio) return __winio def wait_for_buffer_empty(): ''' Wait keyboard buffer empty ''' winio = __get_winio() dwRegVal = 0x02 while (dwRegVal & 0x02): dwRegVal = winio.get_port_byte(KBC_KEY_CMD) def key_down(scancode): winio = __get_winio() wait_for_buffer_empty(); winio.set_port_byte(KBC_KEY_CMD, 0xd2); wait_for_buffer_empty(); winio.set_port_byte(KBC_KEY_DATA, scancode) def key_up(scancode): winio = __get_winio() wait_for_buffer_empty(); winio.set_port_byte( KBC_KEY_CMD, 0xd2); wait_for_buffer_empty(); winio.set_port_byte( KBC_KEY_DATA, scancode | 0x80); def key_press(scancode, press_time = 0.2): key_down( scancode ) time.sleep( press_time ) key_up( scancode ) # Press 'A' key # Scancodes references : https://www.win.tue.nl/~aeb/linux/kbd/scancodes-1.html key_press(0x1E)
特权要求
WinIo 需要管理权限才能正常运行。这可以通过以下方式实现:
从作为 LocalSystem 运行的服务中使用 WinIo(必须显式启用 SE_LOAD_DRIVER_NAME 权限)。
在请求特权提升的应用程序中嵌入清单文件。
要求用户在启动应用程序时选择“以管理员身份运行”选项。
包含的 C# 示例演示了使用嵌入式清单文件来请求权限提升。
64 位系统上的驱动程序签名要求
64 位版本的 Windows 仅加载由公共 CA(如 Verisign、Thawte 等)颁发的代码签名证书签名的设备驱动程序。除非获得和使用代码签名证书,否则不得将 WinIo64.sys 部署在生产机器上签署这个文件。WinIo64.sys 的捆绑副本使用自签名证书进行签名,并且只能在 Windows 以特殊“测试”模式运行的开发/测试机器上使用。为了使用 WinIo64.sys 的捆绑版本,您需要执行以下步骤:
通过右键单击图标并单击“以管理员身份运行”打开提升的命令窗口。
键入以下命令以启用测试签名:
bcdedit.exe /set TESTSIGNING ON
重启机器
有关 Windows 驱动程序签名要求的更多信息,请参阅http://www.microsoft.com/whdc/winlogo/drvsign/kmcs_walkthrough.mspx。
许可证
该库使用了已在 LICENSE.txt 中描述的 MIT 许可证
LICENSE-WINIO.txt 中描述的 WinIO 库的许可证
变化
0.2.6 (2018-07-20)
声称这个库重命名为 pywinio!
0.2.5 (2018-07-20)
删除了对 python 2.x 的支持
0.2.4 (2018-06-01)
支持appveyor自动部署
0.2.0 (2018-01-21)
依赖于 winiobinary 项目,所以我们不需要在 setup.py 期间下载 WinIo 二进制文件
0.1.9 (2015-12-02)
由于缺少 rabird_bootstrap.py,无法从打包的 zip 文件安装
0.1.8 (2015-09-09)
修复了不适用于 64 位操作系统
0.1.0 (2015-08-18)
修复了不适用于 python3
0.0.9 (2015-08-18)
初始发行
项目详情
rabird.winio -0.2.6.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 390f369855929a7bcc1e5523dece0afe7dda60440f5e4f4857a737efc97e3e4a |
|
MD5 | 64f89fadd82c734250c4651586b7a3d7 |
|
布莱克2-256 | 611b4ce39412b782d6c51f58c9fd96e38e8e8b3758d29658bd4f1929c2403657 |