flash钢琴自动弹奏之Python实现

在Linux系统中,利用Python的virtkey库可以实现自动按键功能,从而达到Flash钢琴的自动弹奏。文章介绍了如何在Python中简单实现这一过程,强调了按键长度和延时的并行关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux系统下没有WSH可用,需要自己实现按键sendkey?python已有实现,virtkey拿来用即可。

不过需要注意的是,按键长度与延时是并行关系。

简单实现:

#!/usr/bin/python

import virtkey
import time
import threading
import sys

speed=0.25

def play(s):
	tid=0
	threading.Thread(target=playb,args=(tid,s)).start()

def playb(tid,s):
	v=virtkey.virtkey()
	ssc=list(s)
	print(ssc)
	for c in ssc:
		v.press_unicode(ord(c))
	time.sleep(speed)
	for c in ssc:
		v.release_unicode(ord(c))


def music(m):
	m=m.strip()
	codes=list(m)
	oncekeys=""
	state=""
	for code in codes:
		if code=="(":
			state="once"
			oncekeys=""
			continue
		if code==")":
			state=""
			play(oncekeys)
			time.sleep(speed)
			continue
		if code=="-":
			time.sleep(speed)
			continue
		if code=="" or code==" " or code=="\r" or code=="\n":
			continue
		if state=="once":
			oncekeys+=code
			continue
		else:
			play(code)
			time.sleep(speed)
			

time.sleep(3)
if len(sys.argv)==1:
	music("""
TU(VF)JM(OU)VX(UE)ILNQS(TD)HK(MS)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值