首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python之模拟键盘

python之模拟键盘

作者头像
sjw1998
发布于 2019-09-28 05:12:49
发布于 2019-09-28 05:12:49
5.6K00
代码可运行
举报
文章被收录于专栏:孤独的S孤独的S
运行总次数:0
代码可运行

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

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

Pyuserinput

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import 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

以下是我自己的模拟按键按下抬起的方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
left_arrow = 0x61
up_arrow = 0x65
right_arrow = 0x63
down_arrow = 0x62
a = 0x41
d = 0x44
x = 0x58

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MapVirtualKey = ctypes.windll.user32.MapVirtualKeyA

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

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

第四个参数直接为0即可

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

winio:

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 孤独的S 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用 Python 构建漂亮的 GUI 应用
Tkinter 是最受欢迎的软件包之一,它允许您使用 Python 构建 GUI,Tkinter Designer 软件包通过添加 Figma API 来开发更好看的 GUI 来构建此软件包!
用户8949263
2022/04/08
1.3K0
用 Python 构建漂亮的 GUI 应用
Python 图形界面框架 PyQt5 使用指南!
使用Python开发图形界面的软件其实并不多,相对于GUI界面,可能Web方式的应用更受人欢迎。但对于像我一样对其他编程语言比如C#或WPF并不熟悉的人来说,未必不是一个好的工具。
快学Python
2021/12/13
11.2K0
Python 图形界面框架 PyQt5 使用指南!
python学习——图形界面
但是Python自带的库是支持Tk的Tkinter,使用Tkinter,无需安装任何包,就可以直接使用。本章简单介绍如何使用Tkinter进行GUI编程。
py3study
2020/01/08
3.3K0
python学习——图形界面
Day22psutil&图形界面
psutil 用Python来编写脚本简化日常的运维工作是Python的一个重要用途。 在Python中获取系统信息的一个好办法是使用psutil这个第三方模块。顾名思义,psutil = process and system utilities,它不仅可以通过一两行代码实现系统监控,还可以跨平台使用,支持Linux/UNIX/OSX/Windows等,是系统管理员和运维小伙伴不可或缺的必备模块。 获取CPU信息 >>> import psutil >>> psutil.cpu_count() # CPU
林清猫耳
2018/04/26
1.3K0
Day22psutil&图形界面
如何用 PyQt5 快速构建一个简单的 GUI 应用
Python GUI 常用的 3 种框架是:Tkinter、wxpython、PyQt5
AirPython
2020/05/09
1.6K0
如何用 PyQt5 快速构建一个简单的 GUI 应用
Python实现一个带图形界面的爬虫
企鹅号小编
2018/01/08
2.8K0
Python实现一个带图形界面的爬虫
一个非常简单好用的 Python 图形界面库
前一阵,我在为朋友编写一个源代码监控程序的时候,发现了一个 Python 领域非常简单好用的图形界面库。
somenzz
2020/12/22
3.3K0
一个非常简单好用的 Python 图形界面库
图形化界面的开发(GUI)_Tkinter库的使用-4(Entry+Spinbox+Listbox+Combobox)
本篇文章主要python第三方库Tkinter库的使用,包括输入框(Entry)控件,Spinbox控件,Listbox(列表框)控件和Combobox(复合框)控件它们的常用属性和方法以及具体的示例和相应的效果图。
laity
2025/02/27
6920
图形化界面的开发(GUI)_Tkinter库的使用-4(Entry+Spinbox+Listbox+Combobox)
图形界面入门之tkinter
最上面首先是版本是8.6,点击click me!貌似什么都不会发生,点击QUIT就可以退出。
一只大鸽子
2022/12/06
1.8K0
图形界面入门之tkinter
挑战任务: PyQt5编写GUI界面
前面我们学习的OpenCV内容都是运行在命令行中的,没有界面,所以本次的拓展挑战内容便是:
CodecWang
2021/12/07
2.3K0
挑战任务: PyQt5编写GUI界面
用Python作图形界面GUI,这几个库可以满足你所有要求!【建议收藏】
用Python开发图形界面有两种方式 一种是用Django或Flash等框架开发网页 另一种是开发桌面应用程序,比如下面这个国际象棋游戏 本文主要讨论图形界面库GUI,最后会告诉你如何选择。 6个最常用的Python图形库 Python有非常多的图形界面库: 这里我们只讨论最常用的6个: PyQt5 经常排在第一位Python图形界面库,基于著名的Qt跨平台图形界面库。自带大量空间,有QtGUI和QtDesigner,可以帮你方便的设计界面。 不过这个是要License的,适合企业级用户或者土豪。
用户8949263
2022/04/08
5.8K0
用Python作图形界面GUI,这几个库可以满足你所有要求!【建议收藏】
C++图形界面开发:使用图形库构建用户友好的GUI
在软件开发中,图形用户界面(GUI)是用户与应用程序进行交互的关键部分。一个用户友好的GUI可以帮助提升用户体验,使应用程序更易于使用和理解。在C++开发中,我们可以使用一些强大的图形库来构建出漂亮且用户友好的GUI。
大盘鸡拌面
2023/12/02
2.5K0
用 Python 构建漂亮的 GUI
在 Python 中构建 GUI 是我最喜欢做的事情之一,无论是显示一些文本的基本页面,还是构建公司使用的完整应用程序,Python 都可用于开发这些以及介于两者之间的所有应用程序。
吾非同
2021/07/12
2.1K0
使用 Python+Tkinter 图形化界面知识创建小型 GUI 项目
在本篇博客中,我们将展示如何使用我们在 Python 图形化界面基础课程中学到的知识来设计和实现一个小型 GUI 项目。这个项目是一个简单的待办事项( To-Do )应用程序,允许用户添加、编辑和删除任务。我们将一步步创建这个应用程序,涵盖窗口创建、布局设计、按钮操作、文本框、列表视图和事件处理等关键概念。
小蓝枣
2023/10/17
9970
使用 Python+Tkinter 图形化界面知识创建小型 GUI 项目
使用Python Tkinter创建一个简单的应用程序
使用 Python 的 tkinter 模块,你可以创建一个简单的图形用户界面(GUI)应用程序。tkinter 是 Python 标准库的一部分,适合用来开发基本的桌面应用。
华科云商小徐
2024/08/07
4800
python简单图形界面GUI入门——e
感觉gui做起来成就感比较高,学完基础语言顺便花一个下午看看GUI设计,现在回顾来看这个如果做正式的展示太过简单,easygui只是小演示之用。
py3study
2020/01/03
1.5K0
Python图形界面GUI程序设计
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。 图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以同样的方式来完成,在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。
zeruns
2020/03/23
5.4K0
关于Python制作简单的图形界面GUI
#简单的图形界面GUI(Graphical User Interface) from tkinter import * import tkinter.messagebox as messagebox class Application(Frame): #从Frame派生出Application类,它是所有widget的父容器 def __init__(self,master = None):#master即是窗口管理器,用于管理窗口部件,如按钮标签等,顶级窗口master是None,即自己管理自
py3study
2020/01/06
3.1K0
十个顶级Python 图形界面(GUI)框架供你选择
由于Python越来越受欢迎,并得到广泛采用,它将成为2020年流行起来的编程语言。在牢固掌握Python编程基础之后,初学者面临的下一个挑战是构建用户界面。幸运的是,有很多Python框架专门帮助开发人员构建令人惊叹但高度直观的用户界面,以适应程序应用。
HuangWeiAI
2021/07/07
20.3K0
十个顶级Python 图形界面(GUI)框架供你选择
nicegui:Python 图形界面库,简单好用
在现代计算机应用程序开发中,图形用户界面(GUI)是用户与程序交互的重要组成部分。然而,GUI 开发往往需要大量的代码和复杂的布局,给开发者带来了一定的挑战。在本篇博文中,将介绍 nicegui,它是一个简单易用的图形用户界面库,提供了一种简化 GUI 开发的方式,使开发者能够更快速地构建吸引人的用户界面。
luckpunk
2023/09/10
3.2K1
nicegui:Python 图形界面库,简单好用
推荐阅读
相关推荐
用 Python 构建漂亮的 GUI 应用
更多 >
LV.0
这个人很懒,什么都没有留下~
交个朋友
加入[CODINGDevOps] 官方技术交流站
DevOps全流程实践 CODING工具深度应用
加入云开发企业交流群
企业云开发实战交流 探讨技术架构优化
加入前端工作实战群
前端工程化实践 组件库开发经验分享
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档