2

たとえば、キーの押下とマウスのクリックを同時に実行できるようにしたいControl+LeftClick

現時点では、Controlを実行してから、次のコードで左クリックすることができます。

import win32com, win32api, win32con
def CopyBox( x, y):
    time.sleep(.2)
    wsh = win32com.client.Dispatch("WScript.Shell")
    wsh.SendKeys("^")
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0)

これは、キーボードのコントロールを押してからクリックすることです。コントロールを長く押し続け、コードの実行を続行するために押したまま戻るには、これが必要です。キーを押してから、コードの後半で、マウスの動作のようにキーを持ち上げるように指示する、より低いレベルの言い方はありますか?

4

1 に答える 1

3

コントロールを押すには:

win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_EXTENDEDKEY, 0)

それを解放するには:

win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_EXTENDEDKEY | win32con.KEYEVENTF_KEYUP, 0)

したがって、コードは次のようになります。

import win32api, win32con
def CopyBox(x, y):
    time.sleep(.2)
    win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_EXTENDEDKEY, 0)
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0)
    win32api.keybd_event(win32con.VK_CONTROL, 0, win32con.KEYEVENTF_KEYUP, 0)
于 2010-04-24T00:03:43.480 に答える