估计大家在家都快疯了。我现在的状态是这样的:但是我不想这么郁闷。我想做一些优雅的事情。看到朋友圈有人在手机上玩《菊花台》,好听。于是我也开始四处走动,飞快地下载了app,开始弹奏乐谱。等等,我怎么感觉手速跟不上脑子,怕邻居说我讨厌,算了,我还是放弃吧,毕竟我不有这个艺术天赋。突然灵机一动,我们也是在玩Keyboard(打字键盘和乐器键是同一个字),不行就用python来操作吧!一开始觉得很简单,下载一个钢琴软件(我用的是FreePiano),然后用python控制键盘就OK了,但是马上就被打脸了,因为python的pyautogui,pynput和其他控制键盘鼠标的库声音根本打不出来,需要用python控制驱动级键盘才有用!这对我来说真的很难......我开始疯狂搜索,终于找到了解决办法。可以先下载一个虚拟键盘,然后用python控制虚拟键盘,问题就解决了。我找到了一个叫DDVirtualKeyboard的软件,这是一个开源的虚拟键盘,可以通过程序来操作。软件压缩包在官方qq群可以下载,里面有python、Java、c等各种示例程序。打开压缩包,里面有如下文件,记住压缩包的位置,后面会有用。下面开始介绍如何使用python控制DD虚拟键盘:1.调用dll文件#改成自己的路径dddd_dll=windll.LoadLibrary('DD94396官方公开版\DD94687.64.dll')只有'DD64。dll',一开始运行一直报错,折腾了好久才发现是路径不对。这里也可以使用绝对路径。2、虚拟键盘控制键盘的虚拟码对应关系为按键函数:DD_key(参数1,参数2)其中参数1为DD键码,参数2其中1表示按下,2表示松开例子:模拟TAB键,直接写DD_key(15,1)DD_key(15,2)如果需要模拟特殊符号或大写字母键,只需要先按住shift,再按相应的键即可,例如,模拟按@键的代码为:dd_dll.DD_key(500,1)dd_dll.DD_key(201,1)dd_dll.DD_key(201,2)dd_dll.DD_key(500,2)其中,500为模拟代码shift键的,201是数字2的模拟码。3.准备《菊花台》键盘乐谱在网上找了一个乐谱,大概是这样的:这是一个简化版,主要由字母和空格组成.播放的音乐更好。下面是根据自己的喜好设置的时间间隔:lists=list(lists)foriinlists:ifi=='\n':time.sleep(0.5)elifi=='':time.sleep(0.5)else:single(i)#按下按钮time.sleep(0.5)4.效果显示用python播放一首歌曲《菊花台》https://www.zhihu.com/video/1213105190532308992节奏有点慢不是,主要是我音盲,抓不住节奏。请不要怪我。如果大家有兴趣,可以在此基础上做进一步的调整。本文所用代码、乐谱、软件均已打包上传:链接:https://pan.baidu.com/s/1Un1XVSwtlchyTMxJH3r4hw密码:yunr------作者:郭头欢迎搜索关注:Crossin的编程教室这里还有更多内容。一起学习,走的更远!
