파이썬에서 마우스 커서를 어떻게 제어합니까, 즉 Windows에서 특정 위치로 이동하고 클릭합니까?
파이썬에서 마우스 커서를 어떻게 제어합니까, 즉 Windows에서 특정 위치로 이동하고 클릭합니까?
답변:
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 패키지 를 사용하는 것입니다 입니다. 이 패키지에는 마우스 이동을위한 두 가지 옵션이 있습니다.
이 코드 스 니펫은 커서를 (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 () 호출이 필요할 수도 있고 필요하지 않을 수도 있습니다.
피넛 은 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
설치 CMD에 Python이 첨부되어 있어야합니다. CMD로 이동하여 다음을 작성하십시오.pip install pyautogui
이것은 설치됩니다 pyautogui
Python 2.x 용으로 됩니다.
파이썬 3.x를 들어, 당신은 아마 사용해야 할 것 pip3 install pyautogui
나 python3 -m pip install pyautogui
.
pyautogui.moveTo(x, y)
하기 때문에 호출하고 싶을 것 move()
입니다.
moveTo()
하면서 절대 위치로 move()
이동합니다.
또 다른 대안은 마우스 라이브러리입니다. 일 것입니다. 상대적으로 단순하고 크로스 플랫폼이기 때문에 개인적으로 사용합니다.
사용 방법은 다음과 같습니다.
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- 설치 pakage :
pip install mouse
2- 프로젝트에 라이브러리 추가 :
import mouse
3- 예를 들어 사용하십시오 :
mouse.right_click()
이 URL에서 사용할 수있는 모든 기능을 설명하십시오.