1

個人用のスクリーンショット ユーティリティを作成しており、バウンディング ボックスのスクリーンショットを追加したいと考えています。領域の 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これが意味をなさない場合、私は永遠に申し訳ありません.

4

1 に答える 1