python使用pyhook监控键盘并实现切换歌曲的功能


Posted in Python onJuly 18, 2014

自己在玩dota的时候有时候喜欢边玩游戏边听音乐,但是切换下一曲的时候必须得切出游戏,而切换音乐的热键ctrl+alt+方向键在游戏的时候没有用,好事蛋疼,今天试试使用python来实现键盘监控切换下一曲,下面贴出代码

import pythoncom, pyHook
import win32gui,win32api,win32con
 
Lcontrol_press = False
Lmenu_press = False
Left_press = False
 
def OnKeyboardEvent(event):
  global Lcontrol_press #在函数里面使用全局变量的时候要加上global关键字
  global Lmenu_press #要不然会出错
  global Left_press
  print 'Key:', event.Key
  if (event.Key == "Lcontrol"):
    Lcontrol_press = True
  elif(event.Key == "Lmenu"):
    Lmenu_press = True
  elif(event.Key == "Left"):
    Left_press =True
  handel_key()
  return True
def handel_key() :
  global Lcontrol_press
  global Lmenu_press
  global Left_press  
  if(Lcontrol_press and Lmenu_press and Left_press):
    win32api.keybd_event( 0xB0,win32con.VK_MEDIA_NEXT_TRACK,0,0)
    Lcontrol_press = False
    Lmenu_press = False
    Left_press = False
     
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()

好了,把你的播放器设置为随机播放就可以在游戏的时候按下ctrl+alt+左方向键就可以切换音乐啦(ctrl和alt也是左边的)
顺便说明下,那三个快捷键不是组合键,意思是你要先按下ctrl然后放开,在按下alt,最后按一下做方向键就切换音乐了.这三个键的顺序不能按错.

Python 相关文章推荐
python网络编程学习笔记(五):socket的一些补充
Jun 09 Python
python格式化字符串实例总结
Sep 28 Python
Python使用MySQLdb for Python操作数据库教程
Oct 11 Python
Python简单实现TCP包发送十六进制数据的方法
Apr 16 Python
详解使用 pyenv 管理多个版本 python 环境
Oct 19 Python
Python视频爬虫实现下载头条视频功能示例
May 07 Python
Python数据分析matplotlib设置多个子图的间距方法
Aug 03 Python
对pandas数据判断是否为NaN值的方法详解
Nov 06 Python
Python Image模块基本图像处理操作小结
Apr 13 Python
下载官网python并安装的步骤详解
Oct 12 Python
python dataframe NaN处理方式
Dec 26 Python
python b站视频下载的五种版本
May 27 Python
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
Jul 18 #Python
python采集博客中上传的QQ截图文件
Jul 18 #Python
Python下singleton模式的实现方法
Jul 16 #Python
python的迭代器与生成器实例详解
Jul 16 #Python
Python的内存泄漏及gc模块的使用分析
Jul 16 #Python
Python的垃圾回收机制深入分析
Jul 16 #Python
python中将字典转换成其json字符串
Jul 16 #Python
You might like
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
javascript html5实现表单验证
2016/03/01 Javascript
JavaScript动态生成二维码图片
2016/04/20 Javascript
深入理解jQuery 事件处理
2016/06/14 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
浅谈小程序 setData学问多
2019/02/20 Javascript
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
2020/07/15 Javascript
Python常用内置函数总结
2015/02/08 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
Python的log日志功能及设置方法
2019/07/11 Python
Python如何输出百分比
2020/07/31 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
写好自荐信的要点
2013/11/06 职场文书
售前工程师职业生涯规划
2014/03/02 职场文书
个人先进事迹总结
2015/02/26 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书
团组织关系介绍信
2019/06/24 职场文书
python爬虫selenium模块详解
2021/03/30 Python
如何使用Python对NetCDF数据做空间相关分析
2021/04/21 Python
使用Apache Camel表达REST服务的方法
2022/06/10 Servers