Hướng dẫn control keyboard with python - điều khiển bàn phím bằng python

Bạn có thể sử dụng thư viện pyautogui & nbsp; để điều khiển bàn phím bằng Python.

Để bắt đầu, đây là lệnh (dưới Windows) để cài đặt thư viện Pyautogui:

pip install pyautogui

Trong hướng dẫn này, bạn sẽ thấy 4 kịch bản mô tả cách làm:

  1. Nhập các ký tự bằng hàm write ()write() function
  2. Nhấn phím nóng bằng hàm hotkey ()hotkey() function
  3. Nhấn các phím bàn phím bằng hàm nhấn ()press() function
  4. Mở tệp văn bản và sau đó nhập văn bản

Kịch bản 1: Nhập các ký tự bằng hàm write ()

Bạn có thể sử dụng hàm write () để nhập các ký tự.write() function to type characters.

Ví dụ: cú pháp dưới đây có thể được sử dụng để nhập ‘Xin chào ở đó:

import pyautogui

pyautogui.write('Hello There')

Chạy mã trong Python và bạn sẽ nhận được cụm từ sau:

Xin chào

Bạn có thể đưa mọi thứ đi xa hơn bằng cách thêm độ trễ sau khi gõ từng ký tự.

Chẳng hạn, hãy để thêm độ trễ 0,5 giây (bằng cách thêm khoảng = 0,5) sau khi nhập từng ký tự:interval = 0.5) after typing each character:

import pyautogui

pyautogui.write('Hello There', interval = 0.5)

Khi bạn chạy mã, bạn sẽ nhận thấy độ trễ 0,5 giây sau mỗi ký tự.

Kịch bản 2: Nhấn phím nóng sử dụng hàm hotkey ()

Bạn có thể sử dụng hàm HotKey () cho phím nóng hoặc phím tắt.hotkey() function for hotkeys or keyboard shortcuts.

Chẳng hạn, nếu bạn sử dụng Windows, bạn có thể sử dụng CTRL + ESC để mở menu Windows Start:ctrl + esc to open the Windows Start Menu:

import pyautogui

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

Khi bạn chạy mã, bạn sẽ nhận được menu Windows Start.

Bạn có thể kiểm tra tài liệu PYAUTOGUI cho bàn phím_key mà bạn có thể sử dụng.

Kịch bản 3: Nhấn phím bàn phím bằng hàm nhấn ()

Đối với kịch bản này, bạn sẽ thấy cách sử dụng hàm in () để nhấn phím ‘Pagedown 3 lần.press() function in order to press the ‘pagedown’ key 3 times.

Khi bạn chạy mã, nhấp vào trình duyệt web của bạn và bạn sẽ thấy cách trang web cuộn xuống.

Độ trễ thời gian là 3 giây đã được thêm vào để cho phép bạn đủ thời gian để nhấp vào trình duyệt web của bạn.

Đây là mã hoàn chỉnh:

import pyautogui
import time

time.sleep(3)
pyautogui.press('pagedown')
pyautogui.press('pagedown')
pyautogui.press('pagedown')

Sau khi bạn chạy mã trong Python, và sau đó nhấp ngay vào trang web của bạn, bạn sẽ nhận thấy rằng trang web sẽ di chuyển xuống.

Ngoài ra, bạn có thể đạt được kết quả tương tự (nhấn phím ‘Pagedown 3 lần) bằng cách đặt máy nhấn = 3:presses = 3:

import pyautogui
import time

time.sleep(3)
pyautogui.press('pagedown', presses = 3)

Hoặc bằng cách sử dụng mã sau:

import pyautogui
import time

time.sleep(3)
pyautogui.press(['pagedown', 'pagedown','pagedown'])

Như trước đây, bạn có thể kiểm tra tài liệu PYAUTOGUI cho bàn phím_key mà bạn có thể sử dụng.

Kịch bản 4: Mở tệp văn bản và sau đó nhập văn bản

Đối với kịch bản cuối cùng, bạn sẽ thấy cách áp dụng kết hợp tất cả các chức năng trước đó được xem xét.

Để bắt đầu, bạn sẽ cần tạo một tệp văn bản trống.

Chẳng hạn, hãy để tạo một tệp văn bản (được gọi là example_file) trong đường dẫn sau:example_file) under the following path:

C: \ Users \ Ron \ Desktop \ Assign_File.txt

Sau đó, áp dụng mã bên dưới để mở tệp văn bản và nhập ‘Xin chào cụm từ bên trong tệp văn bản (lưu ý rằng bạn sẽ cần sửa đổi đường dẫn để phản ánh vị trí lưu trữ tệp văn bản trên máy tính của bạn):

import os
import pyautogui
import time

os.startfile(r'C:\Users\Ron\Desktop\example_file.txt')
time.sleep(3)
pyautogui.write('Hello There')

Đây là kết quả mà bạn sẽ nhận được:

Xin chào

Bạn có thể đưa mọi thứ đi xa hơn bằng cách thêm độ trễ sau khi gõ từng ký tự.

  • Chẳng hạn, hãy để thêm độ trễ 0,5 giây (bằng cách thêm khoảng = 0,5) sau khi nhập từng ký tự:
  • Khi bạn chạy mã, bạn sẽ nhận thấy độ trễ 0,5 giây sau mỗi ký tự.
  • Kịch bản 2: Nhấn phím nóng sử dụng hàm hotkey ()
  • Bạn có thể sử dụng hàm HotKey () cho phím nóng hoặc phím tắt.
  • Chẳng hạn, nếu bạn sử dụng Windows, bạn có thể sử dụng CTRL + ESC để mở menu Windows Start:
  • Khi bạn chạy mã, bạn sẽ nhận được menu Windows Start.
  • Bạn có thể kiểm tra tài liệu PYAUTOGUI cho bàn phím_key mà bạn có thể sử dụng.

Kịch bản 3: Nhấn phím bàn phím bằng hàm nhấn ()

import os
import pyautogui
import time

os.startfile(r'C:\Users\Ron\Desktop\example_file.txt')
time.sleep(3)
pyautogui.write('Hello There', interval = 0.1)
pyautogui.press('enter')
pyautogui.write('How is the Weather?', interval = 0.1)
pyautogui.hotkey('alt', 'f4')
pyautogui.press('enter')

Đối với kịch bản này, bạn sẽ thấy cách sử dụng hàm in () để nhấn phím ‘Pagedown 3 lần.

Khi bạn chạy mã, nhấp vào trình duyệt web của bạn và bạn sẽ thấy cách trang web cuộn xuống.
How is the Weather?

Độ trễ thời gian là 3 giây đã được thêm vào để cho phép bạn đủ thời gian để nhấp vào trình duyệt web của bạn.

Đã đăng vào thg 12 12, 2019 2:35 SA 3 phút đọc 3 phút đọc

Python là một trong những ngôn ngữ mình thích sử dụng nhất. Lí do là vì python có nhiều thư viện hỗ trợ mạnh, gần như cần gì thì chỉ cần google là ra. Gần đây mình mới tìm được một thư viện khá hay ho của python hỗ trợ chúng ta trong việc điều khiển bàn phím và chuột. Đó là thư viện pynput.

Với pynput chúng ta có thể làm những tool như keylogger, làm cho bàn phím gõ loạn lên,... và nhiều thứ hay ho khác. Trong bài này chúng ta sẽ tìm hiểu về cách sử dụng pynput để điều khiển bàn phím.

1. Cài đặt

Với đa số máy tính thì chỉ cần gõ 1 lệnh thôi:

pip install pynput

Với python3:

import pyautogui

pyautogui.write('Hello There')
0

Trong trường hợp máy tính không cài đặt thư viện thì các bạn có thể sử dụng các IDE xịn như pycharm. Với pycharm, sau khi tạo project các bạn vào file > Setting (Ctrl + Alt + S). Tại cửa sổ setting mở mục project ra, chọn phần Project Interpreter.
Với pycharm, sau khi tạo project các bạn vào file > Setting (Ctrl + Alt + S). Tại cửa sổ setting mở mục project ra, chọn phần Project Interpreter.

Ấn vào dấu + ở trên thanh dọc nằm ở phía bên phải cửa sổ. Tìm kiếm thư viện pynput và click Install Package. Chờ IDE tiến hành download và install xong là bạn có thể import pynput được rồi.

2. Ghi lại phím

Để ghi lại các phím được gõ chúng ta sẽ sử dụng pynput.keyboard.Listener như sau:pynput.keyboard.Listener như sau:

import pyautogui

pyautogui.write('Hello There')
1

Các bạn có thể viết bất cứ gì trong 2 hàm keyPressed(key) và keyReleased(key): in ra phím được gõ, lưu lại phím được gõ,...keyPressed(key)keyReleased(key): in ra phím được gõ, lưu lại phím được gõ,...

Để ngừng việc ghi phím lại có 3 cách:

  • Trả về False trong keyPressed(key) hoặc keyReleased(key).False trong keyPressed(key) hoặc keyReleased(key).
  • Gọi phương thức pynput.keyboard.Listener.stop() ở bất cứ đâu.pynput.keyboard.Listener.stop() ở bất cứ đâu.
  • Gặp ngoại lệ StopException trong khi đang ghi phím.StopException trong khi đang ghi phím.

Các bạn có thể viết bất cứ gì trong keyPressed(key) và keyReleased(key). Ví dụ như ghi lại danh sách các phím đã gõ, cùng với thời gian ghi nhận phím:keyPressed(key)keyReleased(key). Ví dụ như ghi lại danh sách các phím đã gõ, cùng với thời gian ghi nhận phím:

import pyautogui

pyautogui.write('Hello There')
2

3. Gõ phím theo file log

Trong trường hợp chúng ta có một file log phím khoảng vài trăm, vài nghìn dòng, hoặc nhiều hơn thế nữa thì có thể sử dụng pynput để máy tự gõ lại các phím trong file log. Đi uống cốc cà phê, hoặc làm ván cờ tự động rồi sau đó quay lại xem nội dung là gì :3

Để máy tự động gõ lại phím từ file log chúng ta sử dụng pynput.keyboard.Controller như sau:pynput.keyboard.Controller như sau:

import pyautogui

pyautogui.write('Hello There')
3

Còn lại chỉ cần đọc file log là được, đơn giản hơn cả ghi lại phím đúng không.


Vừa rồi chỉ là cách sử dụng pynput để điều khiển phím đơn giản. Nếu muốn tự code tool keylogger hoặc keytroller để cài vào máy bạn bè trên tinh thần "hòa bình hữu nghị" thì còn phải tìm hiểu thêm nhiều cái nữa :vpynput để điều khiển phím đơn giản. Nếu muốn tự code tool keylogger hoặc keytroller để cài vào máy bạn bè trên tinh thần "hòa bình hữu nghị" thì còn phải tìm hiểu thêm nhiều cái nữa :v

All rights reserved