win32键盘输入python_windows下python捕捉键盘鼠标事件 pywin32 | 学步园

最近学习python中, 需要调用gui的wincom组件,网上搜罗了很多相关资料。但是大部分资料都有问题。也许跟python的开源和版本问题有关。

下面我就把网上罗列出来最多的捕捉键盘鼠标事件的代码做一下小小修改,可能对个别和我遇到相同问题的人有帮助。

先说明下我的python环境:   版本python2.7,win32扩展库 为2.7下的216版本,还有一个pyhook的扩展库。

引用的源代码:

# -*- coding: utf-8 -*-

#

# by oldj

# http://oldj.net/

#

import pythoncom

import win32gui

import pyHook

def onMouseEvent(event):

# 监听鼠标事件

print "MessageName:", event.MessageName

print "Message:", event.Message

print "Time:", event.Time

print "Window:", event.Window

print "WindowName:", event.WindowName

print "Position:", event.Position

print "Wheel:", event.Wheel

print "Injected:", event.Injected

print "---"

# 返回 True 以便将事件传给其它处理程序

# 注意,这儿如果返回 False ,则鼠标事件将被全部拦截

# 也就是说你的鼠标看起来会僵在那儿,似乎失去响应了

return True

def onKeyboardEvent(event):

# 监听键盘事件

print "MessageName:", event.MessageName

print "Message:", event.Message

print "Time:", event.Time

print "Window:", event.Window

print "WindowName:", event.WindowName

print "Ascii:", event.Ascii, chr(event.Ascii)

print "Key:", event.Key

print "KeyID:", event.KeyID

print "ScanCode:", event.ScanCode

print "Extended:", event.Extended

print "Injected:", event.Injected

print "Alt", event.Alt

print "Transition", event.Transition

print "---"

# 同鼠标事件监听函数的返回值

return True

def main():

# 创建一个“钩子”管理对象

hm = pyHook.HookManager()

# 监听所有键盘事件

hm.KeyDown = onKeyboardEvent

# 设置键盘“钩子”

hm.HookKeyboard()

# 监听所有鼠标事件

hm.MouseAll = onMouseEvent

# 设置鼠标“钩子”

hm.HookMouse()

# 进入循环,如不手动关闭,程序将一直处于监听状态

pythoncom.PumpMessages()

win32gui.PumpMessages()if __name__ == "__main__":

main()

各位看官, 通过颜色区别可以看到问题了吧,没错,之前的代码是用pythoncom来调用pumpMessages()函数。

但是会报找不到的错误,通过win32自带的api我发现可以用win32gui去调用这个函数,作用是一样的。

多了不解释,大家自己试吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值