Tài liệu

Tài liệu RunMacro

Tạo robot đầu tiên, rồi tiến xa theo nhu cầu.

Hướng dẫn rõ ràng từng bước để tạo, chạy và cải thiện robot cho công việc máy tính lặp lại.

🔍 Hình ảnh

Quét chữ quang học từ màn hình và ảnh (Scan OCR) trong RunMacro

Scan OCR là lệnh quét và nhận diện chữ quang học ngoại tuyến từ màn hình, file ảnh hoặc clipboard trong RunMacro, giúp đọc văn bản từ vùng không thể copy và lưu trực tiếp vào biến.

Điều kiện cần#

  • Khu vực màn hình hoặc file ảnh có chứa văn bản cần đọc rõ ràng.

Chế độ hỗ trợ#

  • Chế độ Desktop — Chụp nhanh vùng màn hình bằng GDI/DPI-aware screenshot rồi chuyển qua engine OCR nội bộ.

Chức năng này làm gì#

Lệnh Scan OCR sử dụng động cơ nhận diện ký tự quang học (OCR) tiên tiến chạy hoàn toàn ngoại tuyến (Offline) tốc độ cao, hỗ trợ tối ưu ngôn ngữ Tiếng Việt có dấu và Tiếng Anh. Lệnh cho phép bạn quét văn bản từ vùng màn hình chỉ định, từ tệp ảnh trên ổ đĩa (PNG, JPG, WEBP, BMP), hoặc từ hình ảnh trong bộ nhớ tạm Clipboard. Văn bản nhận diện được tự động làm sạch và lưu vào biến bộ nhớ, đưa vào Clipboard hoặc ghi nối tiếp vào tệp văn bản.

Hình ảnh & video#

Giao diện cấu hình các trường thông số của lệnh Scan OCR trong RunMacro
Khung cấu hình các trường thông số của lệnh Scan OCR trong RunMacro.

Khi nào nên dùng#

  • Đọc mã xác thực OTP, mã captcha số từ các ứng dụng không cho phép bôi đen copy văn bản.
  • Trích xuất số tiền, số tài khoản, mã đơn hàng từ ảnh biên lai chuyển tiền hoặc ảnh chụp màn hình.
  • Đọc dữ liệu từ cửa sổ máy ảo Remote Desktop (RDP), Citrix, AnyDesk, Đội nhómViewer không hỗ trợ UIA.
  • Tự động chuyển đổi các tài liệu quét (scan), ảnh chứng từ thành văn bản số hóa.

Khi nào không nên dùng#

  • Các ô phần tử Desktop hỗ trợ UIA có sẵn văn bản (nên dùng Smart Get Text sẽ nhanh gấp 10 lần và chính xác 100%).
  • Trang web HTML thông thường (dùng Smart HTML để đọc text từ DOM).

Các bước cấu hình#

  1. Trong RunMacro, chọn nhóm Hình ảnh › Scan OCR.
  2. Chọn Nguồn quét (Source): Vùng màn hình (Screen), Tệp ảnh (File), hoặc Clipboard.
  3. Nếu chọn màn hình, bấm Chọn vùng quét (Pick Region) rồi kéo chuột khoanh vùng văn bản cần đọc.
  4. Chọn Đích lưu kết quả (Output): Biến (variable), Clipboard, Cả hai (both), hoặc Tệp (file).
  5. Đặt tên cho Tên biến kết quả (mặc định ocr_text).
  6. Bấm Lưu. Khi chạy, giá trị chữ đọc được sẽ tự động lưu vào biến {ocr_text}.

Giải thích từng tùy chọn#

Nguồn quét (Source)#

Nguồn ảnh đầu vào: screen (vùng màn hình tương tác), file (đường dẫn tệp ảnh PNG/JPG/WEBP), hoặc clipboard (ảnh đang nằm trong bộ nhớ tạm).

Chọn vùng quét (Pick Region)#

Tọa độ và kích thước vùng màn hình cần nhận diện (X, Y, Chiều rộng, Chiều cao).

Đường dẫn tệp ảnh (Image Path)#

Đường dẫn đến file hình ảnh cần quét khi chọn Source là 'file' (hỗ trợ biến như {path_anh}).

Đích lưu kết quả (Output Target)#

Nơi lưu chuỗi văn bản sau nhận dạng: variable (lưu biến), clipboard, both (cả biến và clipboard), hoặc file (lưu ra file text).

Tên biến kết quả (Result Variable)#

Tên biến bộ nhớ chứa kết quả văn bản (mặc định ocr_text).

Kết quả mong đợi#

Chuỗi văn bản nhận dạng được lưu vào biến chỉ định hoặc clipboard mà không cần phần mềm bên ngoài.

Ví dụ thực tế#

Ví dụ: Quét mã OTP 6 số từ màn hình thông báo#

  1. Thêm lệnh Scan OCR vào sau bước gửi yêu cầu OTP.
  2. Bấm Chọn vùng quét và kéo chọn vị trí khung hiển thị mã OTP.
  3. Đặt Đích lưu kết quả là ma_otp.
  4. Dùng lệnh Trích xuất Regex (Extract Regex) với mẫu \d{6} để lấy đúng 6 chữ số.
  5. Dùng lệnh Gõ văn bản (Smart Type) để điền mã OTP vừa quét vào ô xác thực.

Giới hạn và trường hợp lỗi#

  • Font chữ thư pháp hoặc chữ viết tay cách điệu có thể có độ chính xác thấp hơn.
  • Chữ bị mờ do nén ảnh JPEG chất lượng thấp.

Mẹo & lỗi thường gặp#

Khoanh vùng quét càng sát văn bản cần đọc thì tốc độ xử lý OCR càng nhanh và độ chính xác càng cao.
Nếu chữ quá nhỏ hoặc mờ, hãy chỉnh độ phân giải màn hình hoặc phóng to cửa sổ mục tiêu (Zoom) để OCR đạt kết quả tốt nhất.

Thông tin kiểm chứng#

  • commands/capture.py · xác minh 2026-09-30
Robot biểu tượng của RunMacro

Công việc của robot. Thời gian của bạn.

Tạo robot trong vài phút, không cần lập trình. Chạy ổn định, quản lý từ xa, chi phí rõ ràng — và bạn luôn giữ quyền kiểm soát.