WinIo python 驱动级别模拟键盘
看本文章之前默认已经知道了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 驱动级别模拟键盘相关推荐
- Python win32api.keybd_event模拟键盘输入
Python win32api.keybd_event模拟键盘输入 win32api.keybd_event 该函数原型:keybd_event(bVk, bScan, dwFlags, dwExt ...
- Python——实现网页模拟键盘输入和鼠标点击
Python--实现网页模拟键盘输入和鼠标点击 一.安装selenium库 1.1 win+R打开输入窗口 1.2 输入cmd,点击确定 1.3 输入代码: 二.以谷歌浏览器为例,配置环境 2.1打开 ...
- Python + Selenium + AutoIt 模拟键盘实现另存为、上传、下载操作详解
前言 在web页面中,可以使用selenium的定位方式来识别元素,从而来实现页面中的自动化,但对于页面中弹出的文件选择框,selenium就实现不了了,所以就需引用AutoIt工具来实现. Auto ...
- [139]python selenium之模拟键盘操作
selenium 提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要我们导入from selenium.webdriver.common.keys import Keys即可,然后就可以来模拟键盘 ...
- 【python】win32模拟键盘实现游戏内操作
直接贴代码,游戏以warframe,也就是国服的星际战甲做为例子 warframe已经修掉鱼叉挂机了,故写此代码 import win32api import win32con import rand ...
- 使用WINIO进行驱动层的键盘记录
突然对QQ的安全机制起了兴趣.. 想来利用检测键盘状态来做键盘记录应该很容易.安全软件也不能认为这种需求为非法.那QQ怎么防类似记录呢. 做个实验. 随便写个程序,每帧都去读取键盘状态.行不行? fo ...
- Python+selenium 自动化-模拟键盘输入、点击操作,如何查看所支持的全部键位名称
通过 send_keys() 就能进行输入和键盘操作了. 键盘操作需要引用 Keys 包. from selenium import webdriver from selenium.webdriver ...
- python之模拟键盘
对于python来说,模拟键盘的方式据我了解有三种方式,其中有pyuserinput,win32api,以及winio. 其中第一种可以应用普通的程序或者桌面的键盘输入,第二和第三则是比较接近底层的模 ...
- python 模拟键盘_Python 模拟键盘输入 | 学步园
Python 模拟键盘输入,留着备用. #coding=utf-8 import win32gui,win32api,win32con import time import threading def ...
最新文章
- hikaridatasource 加密后登陆不上_python测试开发django42.auth模块登陆认证
- python之发送HTML内容的邮件
- Vivo FunTouch OS 手机系统内置铃声免费下载
- SM04 在线用户管理(踢人事务)
- slf4j介绍以及实现原理窥探
- 使用element UI 快速制作一个列表页面
- 使用Java 8 CompletableFuture和Rx-Java Observable
- 配置过程中的一些问题
- Atitit.执行cli cmd的原理与调试
- R语言含中文数据导入的方法
- 软件观念革命:交互设计精髓_最全交互设计书单
- wmv怎么转换成视频mp4,详细步骤
- appium : 查看Android手机自带浏览器内核版本(webview版本)
- UFS 3.1协议分析(第一至四章) -- UFS概述
- 云服务器bat文件在哪里,云服务器bat文件在哪里
- Moneybookers支付方式开发
- 【情报百科】一张照片就能精准锁定你的位置
- 如何用MATLAB把一个三维矩阵里的数据中的一页画成三维图并加密网格
- 华为交换机如何查看端口所联设备的MACIP
- 来来来!java程序员个人优势
热门文章
- TUV - TUV NORD - 南德 - 之间关系
- 2021年12月27日|28日|29日|30日|31日|
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java基于数据库的考勤系统设计00p85
- gtx1660super和1660ti有什么区别 gtx1660super和1660ti哪个好
- 你会对老板说这十句傻话吗
- 他用机器学习预测权力游戏结局: 龙妈小恶魔集体领盒饭?
- 奔驰G55改哈曼改G63AMG改Brabus旧款改新款百变男神
- 信号完整性的一些概念(2022年6月14日学习笔记)
- 安卓手机重启日志_最近安卓逆向的踩坑纪念
- 昨天听了CSDN俱乐部潘老师的讲座,感触很深!