【Python】win32apiを使ってデスクトップ座標の取得
デスクトップ座標をwin32apiを使ってゲットするにはまずc言語での構造体を
python上で定義してあげる必要がある。
今回は構造体用にクラスを作ってそのインスタンスを使う。
# 構造体を定義 class _pointer(ctypes.Structure): _fields_ = [ ('x', ctypes.c_long), ('y', ctypes.c_long), ] pointer = _pointer() #←構造体を初期化
ポインタがある位置の座標を返すwin32apiは"user32.GetCursorPos"
これに先ほど作った構造体を引数で渡す。
# 構造体のポインタを引数で渡す(参照渡し)
ctypes.windll.user32.GetCursorPos(ctypes.byref(point_topleft))
すると構造体に座標が入るので必要に応じて取り出す
取り出し方は
print pointer.x print pointer.y
取得できる座標はデスクトップ左上を(0, 0)とした座標系,
マルチディスプレイの時はxがマイナスの値になっていた。