python 鼠标键盘监听

pyHook手册: http://pyhook.sourceforge.net/doc_1.5.0/
可以检测全局键盘输入,但是鼠标只能在当前窗口,一旦鼠标移出当前窗口程序就停止运行
from ctypes import *
import pyHook
import pywin32_postinstall
import pythoncom
import threading
import time
import sys
import win32api
import pyautogui as pag
global x_ #存储按键操作

global result 全局变量result

def onMouseEvent(event):
x_f = open(“X坐标.txt”, ‘a’, encoding=”utf-8”)
y_f = open(“Y坐标.txt”, ‘a’, encoding=”utf-8”)
#print(“MessageName:”,event.MessageName) #检测鼠标是否移动
#print (“Message:”,event.Message) # 打印512不知道是什么东西
#print (“Time:”,event.Time) #1307132不知道什么东西
#print (“Window:”,event.Window) #66592不知道什么东西
#print (“WindowName:”,event.WindowName) #不知道什么东西

#kprint("WindowName:%s\n",event.WindowName)
x_y=event.Position
print(x_y)
#print ("Position:",event.Position)          #当前X轴 Y轴
#print ("Wheel:",event.Wheel)
#print ("Injected:",event.Injected)
print(x_y[0],x_y[1])
x_f.write(repr(x_y[0])+"\n")
y_f.write(repr(x_y[1])+"\n")
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)
x_=event.Key #键盘输入的值
print(“按键:”,x_)
if x_==’Numpad1’:
win32api.PostQuitMessage(0) # 结束监听
return True
# 创建一个“钩子”管理对象
hm = pyHook.HookManager()

# 监听所有的键盘事件
hm.KeyDown = onKeyboardEvent
# 设置键盘”钩子“
hm.HookKeyboard()

#检测到鼠标按下
hm.MouseAllButtonsDown = onMouseEvent
#检测到鼠标弹起
hm.MouseAllButtonsUp = onMouseEvent
# 监听所有鼠标事件(移动的所有坐标打印输出)
# hm.MouseAll = onMouseEvent
#设置鼠标钩子
hm.HookMouse()
# 进入循环,如不手动关闭,程序将一直处于监听状态
# 12:每个循环时间
pythoncom.PumpMessages(12)

鼠标移动,点击参考:https://www.cnblogs.com/eatPython/p/5958850.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值