python 模拟键盘输入:以钢琴模拟器脚本与模拟中文输入为例
用到的库:keyboard,threading,time
代码:
# 导入模块
import threading
import time
import keyboard
先写两个主要的函数出来:
# 这个是用来将txt中的内容输出到输入框的函数,可以是多种语言
def write(txt):for i in txt:keyboard.write(i)time.sleep(0.1)# 判断是否要停止with open("1.txt", "r") as f:if f.read()=="False":break
#这个是模拟键盘输入的函数,这里用于钢琴模拟器的脚本
def base(x):keyboard.send(x)# 同:# keyboard.press(x)# keyboard.release(x)#这个是每个按键之间的间隔时间,可以自己调整time.sleep(0.1)
考虑到可以要中途停止,所以在定义一个用来停止代码的函数:
def stop():with open("1.txt","w") as f:f.write("True")#这里我设置的是“F8”,因为这个按键不算常用keyboard.wait("f8")with open("1.txt","w") as f:f.write("False")print("stop")
# 用多线程把stop()挂起来,这样没有收到命令的时候不会影响到主程序运行
t1=threading.Thread(target=stop)
t1.start()#设置空格为开始按钮
print("按下空格开始")
keyboard.wait(" ")
time.sleep(0.1)
然后用base()函数为基础,加上文件读取和循环的功能就可以得到一个模拟钢琴的脚本代码了:
(刚开始是想要在原神里弹琴用的,但是怕被封号就没有实践,另外说一下如果要在一些游戏中使用需要以管理员身份启动这段代码(要是被封了我不负责))
def piano(file):#从文件中读取乐谱with open(file, "r", encoding="UTF-8") as f:yp = f.read()for i in yp:print(i)#这里的按键可以按需求自己增加,我这里只写了多来米发梭拉西if i == "1":i = "T"elif i == "2":i = "Y"elif i == "3":i = "U"elif i == "4":i = "I"elif i == "5":i = "O"elif i == "6":i = "P"elif i == "7":i = "A"else:i = " "base(i)with open("1.txt", "r") as f:if f.read() == "False":break
乐谱的话只要写成这样就可以了,数字是简谱,分隔、停顿可以用其他任何字符来表示
![](/assets/blank.gif)
效果:
![](/assets/blank.gif)
在文本中开始:
![](/assets/blank.gif)
暂停:
![](/assets/blank.gif)
在模拟钢琴中开始:
![](/assets/blank.gif)
复读机:
#最后,这是一个简单的复读机,可以用来call你那个不回消息的朋友
def write2(txt,num):i = 1while i <= int(num):for a in txt:write(a)base(" ")for b in str(i):base(f"{b}")base("Enter")i += 1with open("1.txt", "r") as f:if f.read() == "False":break
![](/assets/blank.gif)
![](/assets/blank.gif)
以此为基础,可以制作一些简单的游戏脚本,或者接入一些数据库来实现简单的qq群机器人什么的
python 模拟键盘输入:以钢琴模拟器脚本与模拟中文输入为例相关推荐
- 关于Android 模拟器复制粘贴及中文输入的问题
问题 平时开发时候用的Android Studio自带的模拟器调试 ,但应用输入框输入时存在以下两个问题 不支持ctrl+c ctrl+v 方式复制粘贴 默认模式下,不支持中文输入 解决方案 左键长按 ...
- python如何模拟键盘输入_python 模拟键盘输入
python 模拟键盘输入 一.PyUserInput安装 python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中.在python3.5中,直接安装PyUs ...
- python之模拟键盘
对于python来说,模拟键盘的方式据我了解有三种方式,其中有pyuserinput,win32api,以及winio. 其中第一种可以应用普通的程序或者桌面的键盘输入,第二和第三则是比较接近底层的模 ...
- python3模拟键盘输入_python 模拟键盘输入
一.PyUserInput安装 python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中.在python3.5中,直接安装PyUserInput模块即可 Py ...
- java中像scanf一样多个输入_VB模拟键盘输入的N种方法
VB模拟键盘输入的N种方法http://bbs.csdn.net/topics/90509805hd378发表于: 2006-12-24 14:35:39用VB模拟键盘事件的N种方法 键盘是我们使用计 ...
- 用VBS脚本模拟键盘操作
用VBS脚本模拟键盘操作 背景 制作VBS脚本 保存下面的VBS程序代码到Txt文件中 根据自己的实际清空修改下列代码中的内容. 修改txt文件后缀为vbs 在计算机的CMD窗口中运行此脚本 后记,关 ...
- VC+API模拟键盘按键(详解篇)
模拟键盘按键 ━━━━━━━━━━━━━━━━━━━━━━━━ 以前就想过如何模拟键盘按键向其他程序发送控制命令,但总是无功而返,这次也不例外. 模拟按键的方法很多,如PostMessage(不能用S ...
- linux模拟键盘按键方案(收藏)
linux模拟键盘按键方案(收藏) 在这以前,我一直以为,除非搞X Window级别的开发,否则根本没法在Linux下模拟键盘消息,或者说键盘事件.像QT,GTK这些High Level的GUI li ...
- 模拟键盘按键---很经典,总结很全面
http://www.cnblogs.com/Jnshushi99/archive/2011/09/03/2164617.html 模拟键盘按键 ━━━━━━━━━━━━━━━━━━━━━━━━ 以前 ...
最新文章
- 比特币区块链上最小的单位“聪” Satoshi STA 简介
- 基于android的智能风扇,新锡德尔对基于Android的静电式智能空气净化器系统设计...
- SQLServer数据库文件相关知识笔记
- Java核心类库篇3——util
- 推特上马斯克BTC赠送骗局已获利10枚BTC,价值超55万美元
- Keras学习---MLP和CNN模型建立篇
- .net pdf转图片_pdf转图片怎么转?看了就知道啦!
- OSI七层参考模型与5G协议
- 用DialogBox生成的对话框一开始就隐藏起来
- 久其报表节点汇总_久其通用数据管理平台常见公式
- 2022数学建模思路 - 案例
- Nmap库ICMP主机探测
- Android图片颜色混合算法
- python批量发送邮件_EDM营销算法:python自动批量发邮件
- mysql查询IP地址
- surface pro win10 重装系统并解决屏幕亮度闪烁和降频的问题
- 服务器mdf ldf文件,sqlserver2008如何导入mdf,ldf文件
- 【号外】联手腾讯故宫试水“互联网+”
- 相约3.8 罗姆EEPROM在线研讨会
- 关键链项目管理方法的缓冲区管理
热门文章
- P1506 拯救oibh总部——区域染色问题(DFSBFS双解)
- Xampp/MySQL Mysql的启动失败问题(端口号被占用):Xampp port 3306 in use by“ Unable to open process“
- 抖音商城小程序搭建的注意事项
- No cached version available for offline mode解决办法
- 转换 FLAC、APE 无损音乐格式为 iTunes 支持导入的 M4A 格式
- nodeJS读书笔记
- 《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第四章课后习题参考答案
- 51单片机实验软件proteus出现错误集锦
- 博士论文查重率标准是多少?
- Vue中 使用 calc 计算长度并传参