用到的库: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
乐谱的话只要写成这样就可以了,数字是简谱,分隔、停顿可以用其他任何字符来表示

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/120448.html