python鼠标移动事件是真的吗_如何在Python中获取鼠标上/下/移动和按键事件

我已经为一个为Linux编写的python2.7项目工作了一段时间,以添加Windows对它的支持。我正试图找出如何让按下键盘和鼠标移动、被按下或被释放的事件。我安装了win32api和pyHook,但是我不知道如何正确地安装它。请注意,我希望它不管在哪里都能得到事件,而不仅仅是在命令提示符下按下它的时候。以下是在linux中执行此操作的方法:def handle_event(self):

""" This function is called when a xlib event is fired """

data = reply.data

while len(data):

event, data = rq.EventField(None).parse_binary_value(data, self._display.display, None, None)

if event.type == X.MotionNotify:

if self._mouse_last_x != None:

mouse_distance=math.sqrt((event.root_x-self._mouse_last_x)**2+(event.root_y-self._mouse_last_y)**2)

self.send_event(('mouse_moved',mouse_distance))

self._mouse_last_x,self._mouse_last_y = event.root_x,event.root_y

if event.type == X.ButtonPress:

print event.sequence_number,event._data,event._fields

self.send_event(('button_down',event._data['detail']))

elif event.type == X.ButtonRelease:

print event.sequence_number,event._data,event._fields

self.send_event(('button_up',event._data['detail']))

elif event.type == X.KeyPress and event.sequence_number == 0:

key = event.detail

self.send_event(('keys_pressed',key,1))

def run(self):

self.disable_keyboard_interrupt()

root = self._display.screen().root

ctx = self._display.record_create_context(

0,

[record.AllClients],

[{

'core_requests': (0, 0),

'core_replies': (0, 0),

'ext_requests': (0, 0, 0, 0),

'ext_replies': (0, 0, 0, 0),

'delivered_events': (0, 0),

'device_events': (X.KeyReleaseMask, X.PointerMotionMask),

'errors': (0, 0),

'client_started': False,

'client_died': False,

}])

self._display.record_enable_context(ctx, self.handle_event)

我只是不知道怎么才能在Windows和任何库中使用它。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值