Computer >> Máy Tính >  >> Lập trình >> Python

Tự động hóa chuột và bàn phím bằng Python?

Trong phần này, chúng tôi sẽ cố gắng tự động hóa các chuyển động của chuột và bàn phím bằng cách sử dụng mô-đun pyautogui trong python.

Pyautogui là một thư viện cho phép bạn điều khiển chuột và bàn phím để làm nhiều việc khác nhau.

Nó là một mô-đun Python tự động hóa GUI đa nền tảng dành cho con người.

Vì nó là thư viện của bên thứ ba, chúng tôi cần cài đặt nó.

pip install pyautogui

Chuột

Dưới đây là chương trình để tự động hóa chuyển động của con chuột của bạn. Khi chạy chương trình của mình, bạn có thể thấy chuyển động của chuột với mọi lệnh. Tôi chạy lệnh dưới đây trên CLI để nắm bắt chuyển động của chuột. Bạn cũng có thể thử với những người khác các giá trị khác nhau.

Ví dụ

>>> import pyautogui
>>> pyautogui.size()
Size(width=1366, height=768)
>>> width, height = pyautogui.size()
>>> width
1366
>>> height
768
>>> pyautogui.position()
Point(x=750, y=293)
>>> pyautogui.position()
Point(x=750, y=293)
>>> pyautogui.position()
Point(x=750, y=293)
>>> pyautogui.moveTo(10, 10)
>>> pyautogui.move(10, 10, duration=1.5)
>>> pyautogui.move(10, 10, duration=1.5)
>>>
>>> pyautogui.move(10, 10, duration=1.5)
>>> pyautogui.move(10, 10, duration=1.5)
>>> pyautogui.move(10, 10, duration=3.0)
>>> pyautogui.moveRel(20, 0)
>>> pyautogui.moveRel(250,0)
>>> pyautogui.moveRel(250, 0, duration=2.5)
>>> pyautogui.moveRel(0, -100)
>>> pyautogui.moveRel(0, -150, duration=1.5)
>>> pyautogui.position()
Point(x=210, y=526)
>>> pyautogui.click(339, 38)
>>> pyautogui.click()

Khi chạy chương trình trên, bạn có thể nhận thấy, khi chúng tôi đặt thời lượng, chuyển động của chuột sẽ tiếp tục trong khoảng thời gian đó. Nhấn phím Escape để lấy lại quyền điều khiển cho lệnh cuối cùng- pyautogui.click ()

Chức năng điều khiển bàn phím

Hàm typewrite ()

Chức năng bàn phím chính là typewrite (). Hàm này sẽ gõ các ký tự trong chuỗi được truyền vào. Để thêm khoảng thời gian trễ giữa các lần nhấn phím ký tự, hãy chuyển một int hoặc float cho đối số từ khóa khoảng.

>>> pyautogui.typewrite('Hello, TutorialsPoint!') #Prints out 'Hello, Tutorialspoint!' instantly
>>> Hello, TutorialsPoint!
>>> pyautogui.typewrite('Hello, TutorialsPoint!', interval=0.25) #Prints out 'Hello, Tutorialspoint!' with a quarter second delay after each character
>>> Hello, TutorialsPoint!

Các chức năng nhấn (), keyDown () và keyUp ()

Để nhấn các phím này, hãy gọi hàm press () và chuyển nó một chuỗi từ pyautogui.KEYBOARD_KEYS cho ví dụ:enter, esc, f1.

>>> pyautogui.press('enter') #press the Enter key
>>>
>>> pyautogui.press('f1') #press the F1 key
>>> p
>>> pyautogui.press('left') #press the left arrow key

Để nhấn nhiều phím tương tự như cách typewrite () thực hiện, hãy chuyển một danh sách các chuỗi để nhấn (), chẳng hạn như−

>>> pyautogui.press(['left','left', 'left'])

Hàm hotkey ()

Để làm cho việc nhấn phím nóng hoặc phím tắt thuận tiện, phím nóng () có thể được chuyển qua một số chuỗi phím sẽ được nhấn xuống theo thứ tự, sau đó thả ra theo thứ tự ngược lại.

>>> pyautogui.hotkey('ctrl', 'shift', 'esc')

Chạy ở trên sẽ mở cửa sổ ‘Trình quản lý tác vụ’ trong máy của tôi (cửa sổ).

Trên đây giống như chạy chương trình bên dưới−

>>> pyautogui.keyDown('ctrl')
>>> pyautogui.keyDown('shift')
>>> pyautogui.keyDown('esc')
>>> pyautogui.keyUp('esc')
>>> pyautogui.keyUp('shift')
>>> pyautogui.keyUp('ctrl')

Dưới đây là chương trình để chứng minh một số khả năng của bàn phím pyautogui−

>>> import pyautogui
>>> pyautogui.click(90, 90)
>>> pyautogui.click(90, 90);pyautogui.typewrite('Hello, World!')
>>> pyautogui.click(150, 150)
>>> pyautogui.click(150, 150);pyautogui.typewrite('Hello, World!')
>>> pyautogui.click(150, 150);pyautogui.typewrite('Hello, World!', interval=0.2)
>>> pyautogui.click(150, 150);pyautogui.typewrite(['A', 'B', 'left', 'left', 'x', 'y'])
>>> pyautogui.click(150, 150);pyautogui.typewrite(['A', 'B', 'left', 'left', 'x', 'y'], interval=1)
>>> pyautogui.KEYBOARD_KEYS
['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace', 'browserback', 'browserfavorites', 'browserforward', 'browserhome', 'browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear', 'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete', 'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20', 'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja', 'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail', 'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack', 'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6', 'num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn', 'pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn', 'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator', 'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab', 'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen', 'command', 'option', 'optionleft', 'optionright']
>>>
>>> pyautogui.click(100,100);
>>> pyautogui.click(100,100); pyautogui.typewrite('Hello world!')
>>> Hello world!
>>> pyautogui.click(100,100); pyautogui.typewrite('Hello world!', interval=0.5)
>>> Hello world!
>>> pyautogui.click(100,100); pyautogui.typewrite(['a', 'b', 'left)', 'left', 'X', 'Y'])
>>> aXYb
>>> pyautogui.click(100,100); pyautogui.typewrite(['a', 'b', 'left', 'left', 'X', 'Y'])
>>> XYab
>>> pyautogui.click(100,100); pyautogui.typewrite(['a', 'b', 'left', 'left', 'X', 'Y'], interval=1)
>>> XYab
>>> pyautogui.press('f1')