Windowsでは、Pythonでマウスカーソルをどのように制御しますか、つまり、特定の位置に移動してクリックしますか?
Windowsでは、Pythonでマウスカーソルをどのように制御しますか、つまり、特定の位置に移動してクリックしますか?
回答:
pywin32(私の場合はpywin32-214.win32-py2.6.exe )をインストールした後、WinXP、Python 2.6(3.xもテスト済み)でテストしました。
import win32api, win32con
def click(x,y):
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
click(10,10)
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_MOVE | win32con.MOUSEEVENTF_ABSOLUTE, int(x/SCREEN_WIDTH*65535.0), int(y/SCREEN_HEIGHT*65535.0))
私の経験では、ゲームなどの他のアプリケーションとの統合を改善するために、置き換えることをお勧めします。
python3.x
作品でもテストされていますので、お気軽に回答を編集してください
PyAutoGUIモジュールで試してください。マルチプラットフォームです。
pip install pyautogui
など:
import pyautogui
pyautogui.click(100, 100)
その他の機能もあります。
import pyautogui
pyautogui.moveTo(100, 150)
pyautogui.moveRel(0, 10) # move mouse 10 pixels down
pyautogui.dragTo(100, 150)
pyautogui.dragRel(0, 10) # drag mouse 10 pixels down
これは、すべてのwin32conを実行するよりもはるかに簡単です。
win32api
またはctypes
モジュールを使用して、マウスまたは任意のGUIを制御するためにwin32 APIを使用できます。
以下は、win32apiを使用してマウスを制御する楽しい例です。
import win32api
import time
import math
for i in range(500):
x = int(500+math.sin(math.pi*i/100)*500)
y = int(500+math.cos(i)*100)
win32api.SetCursorPos((x,y))
time.sleep(.01)
ctypesを使用したクリック:
import ctypes
# see http://msdn.microsoft.com/en-us/library/ms646260(VS.85).aspx for details
ctypes.windll.user32.SetCursorPos(100, 20)
ctypes.windll.user32.mouse_event(2, 0, 0, 0,0) # left down
ctypes.windll.user32.mouse_event(4, 0, 0, 0,0) # left up
SetCursorPos
ますか?
別のオプションは、クロスプラットフォームのAutoPyパッケージを使用することですです。このパッケージには、マウスを移動するための2つの異なるオプションがあります。
このコードスニペットは、カーソルを即座に位置(200,200)に移動します。
import autopy
autopy.mouse.move(200,200)
代わりに、カーソルを画面上で特定の場所に移動する場合は、smooth_moveコマンドを使用できます。
import autopy
autopy.mouse.smooth_move(200,200)
クロスプラットフォームのPyMouseをチェックしてください:https : //github.com/pepijndevos/PyMouse/
tap space
とtap screen shot key
使用方法を知っていますか?
PyUserInput
は壊れています。依存関係が壊れているためインストールできないため、うまく機能するかどうかはわかりません。
from Xlib import X, display
d = display.Display()
s = d.screen()
root = s.root
root.warp_pointer(300,300)
d.sync()
Xlib.ext.xtest.fake_input(d, X.ButtonPress, 1); d.sync(); time.sleep(0.001); Xlib.ext.xtest.fake_input(d, X.ButtonRelease, 1); d.sync();
ます。対象のアプリケーションによっては、プレスとリリースの間のsleep()コールが必要な場合と必要でない場合があります。
Pynputは、WindowsとMacの両方で私が見つけた最高のソリューションです。プログラミングが非常に簡単で、非常にうまく機能します。
例えば、
from pynput.mouse import Button, Controller
mouse = Controller()
# Read pointer position
print('The current pointer position is {0}'.format(
mouse.position))
# Set pointer position
mouse.position = (10, 20)
print('Now we have moved it to {0}'.format(
mouse.position))
# Move pointer relative to current position
mouse.move(5, -5)
# Press and release
mouse.press(Button.left)
mouse.release(Button.left)
# Double click; this is different from pressing and releasing
# twice on Mac OSX
mouse.click(Button.left, 2)
# Scroll two steps down
mouse.scroll(0, 2)
ライブラリclicks
を使用してWindows 7でいつでもどこでも左クリックできる迅速で汚れた機能ctypes
。ダウンロードは必要ありません。
import ctypes
SetCursorPos = ctypes.windll.user32.SetCursorPos
mouse_event = ctypes.windll.user32.mouse_event
def left_click(x, y, clicks=1):
SetCursorPos(x, y)
for i in xrange(clicks):
mouse_event(2, 0, 0, 0, 0)
mouse_event(4, 0, 0, 0, 0)
left_click(200, 200) #left clicks at 200, 200 on your screen. Was able to send 10k clicks instantly.
のとして2020年、あなたは使用することができ、マウスを:
import mouse
mouse.move("500", "500")
mouse.left_click()
特徴
マウスを動かしたいなら、これを使ってください:
import pyautogui
pyautogui.moveTo(x,y)
クリックしたい場合は、これを使用します。
import pyautogui
pyautogui.click(x,y)
pyautogui
インストールしていない場合は、PythonをCMDにアタッチする必要があります。CMDに移動して、次のように記述します。pip install pyautogui
これがインストールされます pyautogui
Python 2.x用れます。
Python 3.xの場合、おそらくpip3 install pyautogui
またはを使用する必要がありpython3 -m pip install pyautogui
ます。
pyautogui.moveTo(x, y)
ため、呼び出しをmove()
行います。
moveTo()
絶対位置にmove()
移動し、現在のカーソル位置を基準に移動します。
もう1つの代替案はマウスライブラリです。比較的シンプルでクロスプラットフォームなので、私は個人的に使用しています。
これを使用する方法は次のとおりです。
import mouse
# move 100 right and 100 down with a duration of 0.5 seconds
mouse.move(100, 100, absolute=False, duration=0.5)
# left click
mouse.click('left')
# right click
mouse.click('right')
これがソースです:Pythonでマウスを制御する方法
受け入れられた答えは私にとってはうまくいきましたが、不安定でした(クリックが登録されない場合もある)ので、さらにMOUSEEVENTF_LEFTUPを追加しました。それからそれは確実に働いていました
import win32api, win32con
def click(x,y):
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
click(10,10)
非常に簡単な1-インストールパッケージ:
pip install mouse
2-プロジェクトにライブラリを追加:
import mouse
3-例えばそれを使用してください:
mouse.right_click()
このURLでは、使用できるすべての関数について説明しています。