Управление мышью с Python

Если вы хотите работать с объектами, вы можете использовать Javascript ES6

class Test {
  constructor() {
    this.array = [];
  }
    
  addItem(item) {
    this.array.push(item);
  }
    
  removeItem() {
    this.array.splice(0, 1);
  }
  
  removeItemByIndex(index) {
    this.array.splice(index, 1);
  }
}

const test = new Test();
test.addItem('Some Item');
test.addItem('Some Item 2');
console.log(test.array);

test.removeItem();
console.log(test.array);
[ 115]
189
задан Max 23 December 2012 в 21:19
поделиться

4 ответа

Протестировано на WinXP, Python 2.6 (также проверено 3.x) после установки pywin32 (в моем случае pywin32-214.win32-py2.6.exe):

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)
316
ответ дан 23 November 2019 в 05:37
поделиться

Принятый ответ работал на меня, но это было нестабильно (иногда, щелчки не будут regsiter), таким образом, я добавил еще 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)
0
ответ дан 23 November 2019 в 05:37
поделиться

Вы можете использовать модуль win32api или ctypes , чтобы использовать win32 apis для управления мышью или любым графическим интерфейсом

Вот забавный пример управление мышью с помощью 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
73
ответ дан 23 November 2019 в 05:37
поделиться

Linux

from Xlib import X, display
d = display.Display()
s = d.screen()
root = s.root
root.warp_pointer(300,300)
d.sync()

Источник: Мышь Python перемещается в 5 строках кода (только Linux) .

17
ответ дан 23 November 2019 в 05:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: