天天看點

python32模拟滑鼠和鍵盤操作

前言

Windows pywin32允許你像vc一樣的形式來使用python開發win32應用。代碼風格可以類似win32 sdk,也可以類似MFC,由你選擇。如果你仍不放棄vc一樣的代碼過程在python下,這不錯的選擇。

利用pywin32可以自動化進行電腦操作。包括複制粘貼,滑鼠移動,鍵盤輸入等等。

下載下傳連結

一、pywin32常用函數

(1)擷取滑鼠位置

win32api.GetCursorPos()

1

(2)滑鼠左鍵按下

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)

(3)滑鼠左鍵放開

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

(4)滑鼠右鍵按下

(5)滑鼠右鍵放開

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

(6)設定滑鼠位置

win32api.SetCursorPos((x, y))

(7)鍵盤輸入事件

win32api.keybd_event(VK_CODE[word], 0, 0, 0)

win32api.keybd_event(VK_CODE[word], 0, win32con.KEYEVENTF_KEYUP, 0)

2

二、封裝接口

(1)擷取目前滑鼠位置

def cursor_point(self):

"""

擷取目前滑鼠位置

pos = win32api.GetCursorPos()

return int(pos[0]), int(pos[1])

3

4

5

6

(2)滑鼠左擊事件

def mouse_left_click(self, new_x=None, new_y=None, times=1):

滑鼠左擊事件

:param new_x: 新移動的坐标x軸坐标

:param new_y: 新移動的坐标y軸坐标1506240215

:param times: 點選次數

self.mouse_move(new_x, new_y)

time.sleep(0.05)

while times:

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

times -= 1

7

8

9

10

11

12

13

(3)滑鼠右擊事件

def mouse_right_click(self, new_x=None, new_y=None):

"""

滑鼠右擊事件

:param new_x: 新移動的坐标x軸坐标

:param new_y: 新移動的坐标y軸坐标

self.mouse_move(new_x, new_y)

time.sleep(0.05)

(4)移動滑鼠位置

def mouse_move(self, new_x, new_y):

if new_y is not None and new_x is not None:

point = (new_x, new_y)

win32api.SetCursorPos(point)

self.x = new_x

self.y = new_y

(5)鍵盤輸入文本

def key_input(self, input_words=''):

for word in input_words:

win32api.keybd_event(VK_CODE[word], 0, 0, 0)

win32api.keybd_event(VK_CODE[word], 0, win32con.KEYEVENTF_KEYUP, 0)

time.sleep(0.1)

(6)鍵盤輸入事件

def key_even(self, input_key):

win32api.keybd_event(VK_CODE[input_key], 0, 0, 0)

win32api.keybd_event(VK_CODE[input_key], 0, win32con.KEYEVENTF_KEYUP, 0)

time.sleep(1)