对于python来说,模拟键盘的方式据我了解有三种方式,其中有pyuserinput,win32api,以及winio。

其中第一种可以应用普通的程序或者桌面的键盘输入,第二和第三则是比较接近底层的模拟键盘,如果想做游戏的脚本便可以用第二和第三种,顺便一提第三种只使用圆孔的ps/2的键盘,第二种win32api亲测可以用于制作模拟dnf键盘移动的脚本。

Pyuserinput

要使用Pysuerinput之前需要一些准备,安装好相关的库,先安装pywin32,以及pyHook,然后再安装pyuserinputimport pymouse,pykeyboard,os,sys

from pymouse import *

from pykeyboard import PyKeyboard

m = PyMouse()

k = PyKeyboard()

#鼠标操作:

m.click(x,y,button,n) #鼠标点击

#x,y –是坐标位置

#buttong – 1表示左键,2表示点击右键

#n – 点击次数,默认是1次,2表示双击

m.move(x,y) #–鼠标移动到坐标(x,y)

x_dim, y_dim = m.screen_size() #–获得屏幕尺寸

#键盘操作:

k.type_string(‘Hello, Python!’)# –模拟键盘输入字符串

k.press_key(‘A’) #–模拟键盘按A键

k.release_key(‘A’)# –模拟键盘松开A键

k.tap_key(“B”) #–模拟点击B键

k.tap_key(‘H’,n=2,interval=5)#–模拟点击H键,2次,每次间隔5秒

k.tap_key(k.function_keys[5]) #–点击功能键F5

k.tap_key(k.numpad_keys[5],3) #–点击小键盘5,3次

#联合按键模拟

#例如同时按alt+tab键盘

k.press_key(k.alt_key)# –按住alt键

k.tap_key(k.tab_key) #–点击tab键

k.release_key(k.alt_key)# –松开alt键

以上便是有关Pysuerinput的相关操作,并不是很难理解,一些方法也相当方便我们使用。

win32api:

准备:安装好pywin32,pip insatall pywin32

然后使用时

import win32api

import win32con #导入这两个模块

import time #导入时间模块要有中断时间

import ctypes

以下是我自己的模拟按键按下抬起的方法:def keydownup(num):

MapVirtualKey = ctypes.windll.user32.MapVirtualKeyA

time.sleep(0.4)

win32api.keybd_event(num, MapVirtualKey(num, 0), 0, 0)

time.sleep(0.2)

win32api.keybd_event(num, MapVirtualKey(num, 0), win32con.KEYEVENTF_KEYUP, 0)

其中MapVirtualkey是扫描码,一般不使用这个,如果要制作控制游戏人物的脚本时一定要填入扫描码才能在游戏中实现硬件级键盘模拟。

方法很简单

win32api.keybd_event(虚拟码,扫描码,0,0)

第一个参数是虚拟码有一些是不太一样的,需要自己根据自己的电脑测出相关的虚拟码,其中一些虚拟码,left_arrow = 0x61

up_arrow = 0x65

right_arrow = 0x63

down_arrow = 0x62

a = 0x41

d = 0x44

x = 0x58

第二个参数是扫描码,如果一个一个去寻找扫描码会很麻烦,可以像我那样,在方法开始处或者程序起始处添加这么一句MapVirtualKey = ctypes.windll.user32.MapVirtualKeyA

然后就可以传入虚拟码来寻找相应的扫描码

第三个是参数是作为判断按下与抬起的标识,按下时为0即可,因为键盘的全过程是按下与抬起,所有两个keybd_event才是一个完整的过程,其中一定要给其中添加一个时间暂停的,不然还是无法使用,即使在操作台或者pycharm上可以输入,在游戏中便没有效果了,时间自己可以传参数进去,也可以规定一个固定的值,这个时间便是你按住的时间

第四个参数直接为0即可

最重要的一点,如果要在游戏中使用,一定要以管理员的权限运行脚本,这样才可以使用。

winio:

这是一个调用第三方的库来模拟硬件级模拟键盘,由于我使用win32api已经做到了相关的要求,所有没有详细去了解。由于现在的键盘都是usb口,所有winio的不是很方便,有点受限硬件。

---------------人生苦短,我用python

python3模拟键盘输入_python之模拟键盘相关推荐

  1. python检测键盘输入_python实时检测键盘输入函数的示例

    在嵌入式.尤其是机器人的python编程中,经常需要实时检测用户的键盘输入来随时控制机器人,这段代码可以帮助我们提取用户输入的字符,并在按下键盘的时候作出反应. import sys import t ...

  2. python获取键盘输入_python如何获取键盘输入

    python2中:raw_input函数 raw_input() 函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符):str = raw_input("Enter your in ...

  3. python监控键盘输入_Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】...

    本文实例讲述了Python实现监控键盘鼠标操作.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import pythoncom import pyHook impo ...

  4. c语言键盘输入坐标,c语言键盘操作.docx

    第一章??? 编程技术实现 ??? 本章内容简介:本章主要介绍如何实现键盘和鼠标的输入,图形图像技术,动画技术,发声技术,汉字显示技术,精确的时间控制技术.是编写大型程序的基本功.虽然每个技术所涉及的 ...

  5. python3模拟键盘输入_python 模拟键盘输入

    一.PyUserInput安装 python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中.在python3.5中,直接安装PyUserInput模块即可 Py ...

  6. python3模拟键盘输入_Python模拟键盘输入

    使用pynput库达到模拟键盘输入的目的(也可以进行鼠标模拟). 1.安装pynput库 pip install pynput 2.引入键盘所需类 from pynput.keyboard impor ...

  7. python如何模拟键盘输入_python 模拟键盘输入

    python 模拟键盘输入 一.PyUserInput安装 python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中.在python3.5中,直接安装PyUs ...

  8. python如何模拟键盘输入_Python模拟键盘输入和鼠标操作

    一.Python键盘输入模拟: import win32api import win32con win32api.keybd_event(17,0,0,0) #ctrl键位码是17 win32api. ...

  9. python如何模拟键盘输入_python实现键盘输入的实操方法

    python中有指定的代码进行输入操作,所以今天就由小编来为大家介绍python怎么实现键盘输入. 第一首先打开电脑的python编辑工具. 再创建python项目. 第二然后应用sys函数. 命令为 ...

  10. c#语言模拟键盘输入,C#如何模拟真实的键盘输入

    匿名用户 1级 2018-05-27 回答 //直接给你贴一个我自己写的类,模拟键盘输入字符 using System.Runtime.InteropServices; namespace lison ...

最新文章

  1. 简明python教程购买-简明python教程哪版(python看什么书)
  2. 聊聊Servlet、Struts1、Struts2以及SpringMvc中的线程安全
  3. Oracle安装步骤及PL/SQL Developer连接数据库
  4. Pytorch学习- 小型知识点汇总 unsqueeze()/squeeze() 和 .max() 等等
  5. 区块链BaaS云服务(20)百度可信跨链BCP
  6. VTK:Rendering之Cone4
  7. 揭秘传智播客毕业班的超级薪水7k内幕系列II----Offer工资表5.7k,为什么不能让老师就业就业...
  8. 币安Binance.client can‘t find the module client 解决办法
  9. 大师之路-GoLive 视频教程
  10. mysql增数据语句_Mysql 数据增删改查语句
  11. 设计模式之适配器模式(Adapter Pattern)
  12. 作为一个程序员,CPU的这些硬核知识你必须会!
  13. vue element table switch开关组件
  14. Windows 10 环境VS报表rdlc 中文乱码解决方案
  15. python-snap7安装各种报错
  16. win7共享计算机的用户名和密码,win7文件共享访问需要输入用户名和密码如何解决...
  17. [Python从零到壹] 一.为什么我们要学Python及基础语法详解
  18. 3Dmax场景小房子—打造完整还原游戏场景
  19. [Linux RK Debian 10] chrome浏览器开启GPU硬件加速|CSDN创作打卡
  20. 前嗅ForeSpider教程:网站登录配置 1

热门文章

  1. 无人机get新技能,惹黑熊心跳加速
  2. elementUI中table的表头设置提示tooltips
  3. s7 modbus测试软件,S7-1200 Modbus-Tcp通讯测试
  4. 新华DCS系统MODBUS通讯仿真测试方法介绍
  5. 网吧里电脑提示计算机内存不足,网吧电脑显示虚拟内存不足该怎么办呢
  6. 微信小程序之模板的使用
  7. FreeMarker生成word文档
  8. 数据库时间慢了14个小时,Mybatis说,这个锅我不背~
  9. 记录下selenium登陆126邮箱
  10. MATLAB利用最速梯度下降法求解f(x)函数极小点