個人用のスクリーンショット ユーティリティを作成しており、バウンディング ボックスのスクリーンショットを追加したいと考えています。領域の 2 つのコーナーで挿入を押して、スクリーンショットを取得できるようにしたい。
問題は、キーボードとマウスのイベントを相互に連携させることができないことです。マウスの位置がわかりません。
これは私がこれまでに持っているものです:
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これが意味をなさない場合、私は永遠に申し訳ありません.