วิธีอ่านข้อความจากหน้าจอเข้าสู่มาโคร
OCR บนหน้าจอในมาโคร Windows: อ่านตัวเลข สถานะ หรือชื่อจากหน้าต่างใดก็ได้ แล้วตัดสินใจว่าจะทำอย่างไรต่อ
อัปเดตเมื่อ 18 กันยายน 2026 · การอ่านข้อความบนหน้าจอเป็นส่วนหนึ่งของแพ็กเกจ Pro ใน Myna Recorder บัญชีใหม่ทุกบัญชีจะทดลองใช้ฟรี 7 วัน
1. read_text ทำอะไร
เครื่องมือมาโครส่วนใหญ่คลิกและพิมพ์ได้ แต่บอกไม่ได้ว่าหน้าจอแสดงอะไร read_text อ่านสี่เหลี่ยมบนหน้าจอเข้าสู่ตัวแปร จากนั้นค่านั้นจะพิมพ์ไปยังที่อื่น เปรียบเทียบ หรือใช้ในข้อความได้:
total = read_text(region=(820, 400, 180, 40), single_line=True)
message_box("The order total was ${total}")
2. เลือกพื้นที่
ต้องส่ง region=(x, y, width, height) เสมอ การอ่านทั้งเดสก์ท็อปจะย่อภาพจนตัวอักษรของอินเทอร์เฟซทั่วไปอ่านไม่ออก พื้นที่ที่มีขนาดเท่ากับช่องที่คุณสนใจจะเร็วและแม่นยำ single_line=True จะรวมผลลัพธ์ทั้งหมดให้เป็นบรรทัดเดียว ซึ่งเหมาะกับตัวเลขหรือชื่อ ตัวเลขแต่ละตัวในพื้นที่อาจเป็นตัวแปรหรือผลรวมก็ได้ ดังนั้นพื้นที่จึงตามการจับคู่ที่พบด้วย wait_for ได้
3. ตัวอ่านสามแบบ
| engine= | คืออะไร | มีค่าใช้จ่ายเป็นเครดิต | นำไปในโปรแกรมที่ส่งออกได้ |
|---|---|---|---|
| "builtin" | ค่าเริ่มต้น ทำงานบนคอมพิวเตอร์ของคุณ | ไม่ | ใช่ |
| "tesseract" | ตัวอ่านโลคอลตัวที่สอง อ่านหน้าจอบางแบบได้ดีกว่าและบางแบบแย่กว่าตัวในตัว และรับ page_mode= เพื่อควบคุมวิธีแบ่งภาพเป็นบรรทัด ลองใช้เมื่อการอ่านใกล้เคียงแต่ผิด | ไม่ | ใช่ |
| "ai" | โมเดลถอดความบนเซิร์ฟเวอร์ของเรา สำหรับข้อความที่ตัวอ่านโลคอลทั้งสองตัวอ่านผิด | ใช่ | ไม่ |
เลือกเอนจินได้ทีละขั้นตอน ดังนั้นมาโครเดียวสามารถใช้ตัวอ่านฟรีได้ทุกที่ และใช้ตัวอ่าน AI เฉพาะช่องที่สำคัญได้
4. ทำความสะอาดและใช้ผลลัพธ์
total = read_text(region=(820, 400, 180, 40)).to_number()
if total < 1000:
notify("Total looks low: ${total}")
เมธอดใช้ทำความสะอาดผลลัพธ์ที่ได้มา; .to_number() คือตัวที่คุณจะใช้บ่อยที่สุด พื้นที่ว่างจะเก็บสตริงว่างและการรันจะดำเนินต่อ ดังนั้นให้ทดสอบเงื่อนไขที่คุณเขียนกับค่าว่างด้วย ไม่ใช่แค่ค่าที่มีข้อมูล แผงตัวแปรจะแสดงตัวแปรทั้งหมดแบบสดระหว่างการรัน ซึ่งเป็นวิธีที่เร็วที่สุดในการดูว่าตัวอ่านคืนค่าอะไรจริงๆ
5. เมื่อไรควรถาม AI แทน
read_text ถอดความ หากต้องการให้เหตุผลเกี่ยวกับหน้าจอ ให้ใช้ ask_ai: "มีกี่แถวเป็นสีแดง?", "มีกล่องโต้ตอบข้อผิดพลาดหรือไม่?" มีสามบทบาท: "count" คืนค่าเป็นตัวเลขและบอกตำแหน่งของแต่ละสิ่ง เพื่อให้มาโครคลิกได้; "explain" คืนประโยคสำหรับบันทึกหรือการแจ้งเตือน; "read" ถอดความด้วยโมเดลที่คุณเลือก ให้พื้นที่เล็กๆ ด้วยเหตุผลเดียวกัน: โมเดลนับสิ่งต่างๆ ทั่วทั้งเดสก์ท็อปได้ แต่ไม่สามารถระบุตำแหน่งได้หลังจากนั้น การเรียกแต่ละครั้งมีค่าใช้จ่ายเป็นเครดิต และการรันหนึ่งครั้งจำกัดไว้ที่ 60 การเรียก AI รายละเอียดอยู่ในคู่มือ
6. เฝ้าดูข้อความขณะมาโครทำงาน
ขั้นตอนการอ่านจะอ่านหนึ่งครั้งตรงที่คุณวางไว้ แถวเฝ้าดูที่ตั้งเป็น Ask AI จะดูตลอดการรัน หรือทำงานเองหลังจากกด Start watching และจะทำงานเมื่อคำตอบปรากฏหรือหายไป สามารถแสดงป๊อปอัป ส่งข้อความ Telegram หรือ Discord พร้อมภาพหน้าจอ หรือหยุดมาโครได้ นั่นคือวิธีที่คุณจะได้รับแจ้งเรื่องแบนเนอร์ "session expired" ตอนตีสามโดยไม่ต้องมีขั้นตอนสำหรับมันในทุกลูป
7. ค่าใช้จ่าย แพ็กเกจ และการส่งออก
- การอ่านข้อความบนหน้าจอและ ask_ai รวมอยู่ในแพ็กเกจ Pro ซึ่งมาพร้อม 3,000 เครดิตทุก 30 วัน ตัวอ่านโลคอลทั้งสองตัวไม่เคยใช้เครดิต
- engine="ai", ask_ai และแถวเฝ้าดูแบบ AI ใช้เครดิตและบล็อกการส่งออกเป็นโปรแกรม มาโครที่อ่านด้วยตัวอ่านในตัวหรือ Tesseract ส่งออกได้ปกติ โดยมีตัวอ่านอยู่ในไฟล์
- แพ็กเกจและชุดเครดิตอยู่ในหน้าราคา