WinIo python 驱动级别模拟键盘

本文探讨了如何在Python中利用WinIo库进行驱动级别的键盘模拟操作,特别讲解了按下DELETE键的实现方法。通过提供的代码示例,读者可以了解具体的实现过程。
部署运行你感兴趣的模型镜像

看本文章之前默认已经知道了winio的实现原理,这边文章主要讲winio在python中的运用。

按下“A”键,使用winio的时,伪代码:   SetByte($64,$D2); SetByte($60,$1E);

python的代码实现:

# 键盘和 winio中的编码的对应关系
vk = {'A': 0x1E,'B': 0x30, 'S': 0x1F,'W': 0x11,'DELETE':0x53}
KBC_KEY_CMD = 0x64
KBC_KEY_DATA = 0x60
# 按下按键代码
def key_down(scancode):
    keyCode = vk[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, keyCode)
# 松开按键代码
def key_up(scancode):
    keyCode = vk[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, keyCode | 0x80)
# 按下按键再松开
def key_press(scancode, press_time = 0.2):
    key_down( scancode )
    time.sleep( press_time )
    key_up( scancode )
if __name__ == '__main__':
    key_press('A')

如果是按下 DELETE 按键, 公共方法还重新写过。

DELETE E0,53 E0,D3

直接上代码:

def key_downE0(scancode):
    keyCode = vk[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, 0xE0)
    wait_for_buffer_empty();
    winio.set_port_byte(KBC_KEY_CMD, 0xd2);
    wait_for_buffer_empty();
    winio.set_port_byte(KBC_KEY_DATA, keyCode)

def key_upE0(scancode):
    keyCode = vk[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, 0xE0)
    wait_for_buffer_empty();
    winio.set_port_byte(KBC_KEY_CMD, 0xd2);
    wait_for_buffer_empty();
    winio.set_port_byte( KBC_KEY_DATA, keyCode | 0x80);
def key_pressE0(scancode, press_time = 0.2):
    key_downE0( scancode )
    time.sleep( press_time )
    key_upE0( scancode )


if __name__ == '__main__':
    key_press('A')
    key_pressE0('DELETE')

感谢大家看我的文章有问题随时沟通

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值