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 smtplib模块发送SSL/TLS安全邮件实例
Apr 08 Python
简单谈谈Python中的闭包
Nov 30 Python
python交互式图形编程实例(二)
Nov 17 Python
Python命令行解析模块详解
Feb 01 Python
基于scrapy的redis安装和配置方法
Jun 13 Python
python中将zip压缩包转为gz.tar的方法
Oct 18 Python
利用python提取wav文件的mfcc方法
Jan 09 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
Jul 23 Python
Python内存泄漏和内存溢出的解决方案
Sep 26 Python
如何使用scrapy中的ItemLoader提取数据
Sep 30 Python
python 简单的调用有道翻译
Nov 25 Python
Python Django框架介绍之模板标签及模板的继承
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
phpMyAdmin2.11.6安装配置方法
2008/08/24 PHP
php设计模式 Interpreter(解释器模式)
2011/06/26 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
JavaScript中String.prototype用法实例
2015/05/20 Javascript
jQuery实现监控页面所有ajax请求的方法
2015/12/10 Javascript
JavaScript数值千分位格式化的两种简单实现方法
2016/08/01 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
在Vue中使用HOC模式的实现
2020/08/23 Javascript
python使用socket远程连接错误处理方法
2015/04/29 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
Python+matplotlib绘制不同大小和颜色散点图实例
2018/01/19 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
python中partial()基础用法说明
2018/12/30 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
英国电信商店:BT Shop
2019/12/17 全球购物
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
销售工作人员的自我评价分享
2013/11/10 职场文书
物业保安员岗位职责制度
2014/01/30 职场文书
总经理助理职责
2014/02/04 职场文书
安踏广告词改编版
2014/03/21 职场文书
《春笋》教学反思
2014/04/15 职场文书
开学典礼校长致辞
2015/07/29 职场文书
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL