我正在制作一个供个人使用的屏幕截图实用程序,并且我想添加边界框屏幕截图。我希望能够在该区域的两个角上按插入,然后抓取屏幕截图。
问题是我无法让键盘和鼠标事件相互配合。我似乎无法获得鼠标位置。
这是我到目前为止所拥有的:
from PIL import ImageGrab
import time
import pythoncom, pyHook
mospos = None
def OnMouseEvent(event):
print 'MessageName:',event.MessageName
print 'Message:',event.Message
print 'Position:',event.Position
print '---'
mospos = event.Position
return True
def OnKeyboardEvent(event):
print 'KeyID:', event.KeyID#Show KeyID of keypress
if(event.KeyID == 44):#Prntscr
print 'Print Screen'
im = ImageGrab.grabclipboard()
im.save('img'+time.strftime("%d-%m-%y_%H-%M-%S")+'.png','PNG')#save with Day-Month-Year_Hour-Minute_Second format
if(event.KeyID == 45):#insert
print mospos
return True# return True to pass the event to other handlers
hm = pyHook.HookManager()# create a hook manager
hm.KeyDown = OnKeyboardEvent# watch for all key events
hm.MouseAll = OnMouseEvent
hm.HookKeyboard()# set the hook
hm.HookMouse()
pythoncom.PumpMessages()# wait forever
即使在我引起鼠标事件之后,mospos 也不会从“无”改变。
如何从键盘事件处理程序中获取鼠标位置?
ps如果这没有意义,我永远很抱歉。