看本文章之前默认已经知道了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')

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

WinIo python 驱动级别模拟键盘相关推荐

  1. Python win32api.keybd_event模拟键盘输入

    Python  win32api.keybd_event模拟键盘输入 win32api.keybd_event 该函数原型:keybd_event(bVk, bScan, dwFlags, dwExt ...

  2. Python——实现网页模拟键盘输入和鼠标点击

    Python--实现网页模拟键盘输入和鼠标点击 一.安装selenium库 1.1 win+R打开输入窗口 1.2 输入cmd,点击确定 1.3 输入代码: 二.以谷歌浏览器为例,配置环境 2.1打开 ...

  3. Python + Selenium + AutoIt 模拟键盘实现另存为、上传、下载操作详解

    前言 在web页面中,可以使用selenium的定位方式来识别元素,从而来实现页面中的自动化,但对于页面中弹出的文件选择框,selenium就实现不了了,所以就需引用AutoIt工具来实现. Auto ...

  4. [139]python selenium之模拟键盘操作

    selenium 提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要我们导入from selenium.webdriver.common.keys import Keys即可,然后就可以来模拟键盘 ...

  5. 【python】win32模拟键盘实现游戏内操作

    直接贴代码,游戏以warframe,也就是国服的星际战甲做为例子 warframe已经修掉鱼叉挂机了,故写此代码 import win32api import win32con import rand ...

  6. 使用WINIO进行驱动层的键盘记录

    突然对QQ的安全机制起了兴趣.. 想来利用检测键盘状态来做键盘记录应该很容易.安全软件也不能认为这种需求为非法.那QQ怎么防类似记录呢. 做个实验. 随便写个程序,每帧都去读取键盘状态.行不行? fo ...

  7. Python+selenium 自动化-模拟键盘输入、点击操作,如何查看所支持的全部键位名称

    通过 send_keys() 就能进行输入和键盘操作了. 键盘操作需要引用 Keys 包. from selenium import webdriver from selenium.webdriver ...

  8. python之模拟键盘

    对于python来说,模拟键盘的方式据我了解有三种方式,其中有pyuserinput,win32api,以及winio. 其中第一种可以应用普通的程序或者桌面的键盘输入,第二和第三则是比较接近底层的模 ...

  9. python 模拟键盘_Python 模拟键盘输入 | 学步园

    Python 模拟键盘输入,留着备用. #coding=utf-8 import win32gui,win32api,win32con import time import threading def ...

最新文章

  1. hikaridatasource 加密后登陆不上_python测试开发django42.auth模块登陆认证
  2. python之发送HTML内容的邮件
  3. Vivo FunTouch OS 手机系统内置铃声免费下载
  4. SM04 在线用户管理(踢人事务)
  5. slf4j介绍以及实现原理窥探
  6. 使用element UI 快速制作一个列表页面
  7. 使用Java 8 CompletableFuture和Rx-Java Observable
  8. 配置过程中的一些问题
  9. Atitit.执行cli cmd的原理与调试
  10. R语言含中文数据导入的方法
  11. 软件观念革命:交互设计精髓_最全交互设计书单
  12. wmv怎么转换成视频mp4,详细步骤
  13. appium : 查看Android手机自带浏览器内核版本(webview版本)
  14. UFS 3.1协议分析(第一至四章) -- UFS概述
  15. 云服务器bat文件在哪里,云服务器bat文件在哪里
  16. Moneybookers支付方式开发
  17. 【情报百科】一张照片就能精准锁定你的位置
  18. 如何用MATLAB把一个三维矩阵里的数据中的一页画成三维图并加密网格
  19. 华为交换机如何查看端口所联设备的MACIP
  20. 来来来!java程序员个人优势

热门文章

  1. TUV - TUV NORD - 南德 - 之间关系
  2. 2021年12月27日|28日|29日|30日|31日|
  3. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java基于数据库的考勤系统设计00p85
  4. gtx1660super和1660ti有什么区别 gtx1660super和1660ti哪个好
  5. 你会对老板说这十句傻话吗
  6. 他用机器学习预测权力游戏结局: 龙妈小恶魔集体领盒饭?
  7. 奔驰G55改哈曼改G63AMG改Brabus旧款改新款百变男神
  8. 信号完整性的一些概念(2022年6月14日学习笔记)
  9. 安卓手机重启日志_最近安卓逆向的踩坑纪念
  10. 昨天听了CSDN俱乐部潘老师的讲座,感触很深!