pythonメニュー

Windows API(Win32API)の利用


windowsのdllを使用するので、環境はwindowsに限られます。 下記プログラムはマウスクリックの位置を3回検出し、その情報をリストに入れて表示します。
import ctypes # Windows API(Win32API)を使ってPythonプログラム内でクリック操作を検知するのに使います。
import time

class POINT(ctypes.Structure):
    _fields_ = [("x", ctypes.c_int), ("y", ctypes.c_int)]

cursor = POINT()
args=ctypes.byref(cursor)

postion_list = []
print("3回の左クリック操作をしてください")
pushFlag=False
while True:
    tempFlag = False
    if ctypes.windll.user32.GetAsyncKeyState(0x01) == 0x8000:
        tempFlag = True
    time.sleep(0.01)
    if pushFlag and not tempFlag: # 押している状態から押されない状態に変わったか?
        ctypes.windll.user32.GetCursorPos(args) # argsを介してマウス位置をcursorに設定
        postion_list.append([cursor.x,cursor.y])# マウス位置の記憶
        if len(postion_list) == 3: break
    pushFlag = tempFlag

print(postion_list) # 3つのクリック位置を表示