2012-06-27 1 views
7

Я полный новичок в Python, поэтому не понимаю жаргон. Я хочу использовать python для простого нажатия на определенную точку. Я уже успел левой кнопкой мыши с помощью ctypes:Щелкните правой кнопкой мыши на Python, используя ctypes

>>> import ctypes 
>>> ctypes.windll.user32.SetCursorPos(x,y), ctypes.windll.user32.mouse_event(2,0,0,0,0), ctypes.windll.user32.mouse_event(4,0,0,0,0) 

есть способ сделать правой кнопкой мыши таким же образом?

ответ

7

Вот константы, которые вы бы использовали для mouse_event

MOUSE_LEFTDOWN = 0x0002  # left button down 
MOUSE_LEFTUP = 0x0004  # left button up 
MOUSE_RIGHTDOWN = 0x0008 # right button down 
MOUSE_RIGHTUP = 0x0010  # right button up 
MOUSE_MIDDLEDOWN = 0x0020 # middle button down 
MOUSE_MIDDLEUP = 0x0040  # middle button up 

В своем коде вы отправляете два события: MOUSE_LEFTDOWN и MOUSE_LEFTUP. Это имитирует «щелчок».

Теперь для правого клика вы должны отправить MOUSE_RIGHTDOWN и MOUSE_RIGHTUP аналогичным образом.

+0

так для правой вниз я использую (8,0,0,0,0) и (10,0,0,0,0) для правильного? –

+1

'10' и' 0x10' - это две разные вещи. Сначала находится в Base10 и представляет десятичный 10, а второй - в шестнадцатеричном виде и представляет 16. За исключением этого, да, который будет вызывать щелчок правой кнопкой мыши – SuperSaiyan

+0

, я просто вставляю >>> import ctypes >>> user32 = ctypes .windll.user32 >>> user32.SetCursorPos (650,135), user32.mouse_event (8,0,0,0,0), user32.mouse_event (10,0,0,0,0) , и он не щелкнул правой кнопкой мыши ? –