top of page
Search

การแคปหน้าจอโปรแกรมด้วย Python: คู่มือการเขียนโค้ดทีละขั้นตอน

  • Writer: Kritthanit Malathong
    Kritthanit Malathong
  • Oct 2, 2024
  • 1 min read

โพสต์เมื่อวันที่ วันที่ 2 ตุลาคม 2567




บทความนี้มีจุดประสงค์เพื่อสอนวิธีการใช้ Python ในการแคปเจอร์หน้าจอของโปรแกรมโดยเฉพาะ โดยใช้การทำงานร่วมกันระหว่างหลายไลบรารี โค้ดนี้ช่วยให้สามารถบันทึกภาพหน้าจอของโปรแกรมต่าง ๆ ใน Windows ได้แบบอัตโนมัติและต่อเนื่อง โดยมีลำดับขั้นตอนการทำงานดังนี้


1. นำเข้าไลบรารีที่จำเป็น

เริ่มจากการนำเข้าไลบรารีที่ใช้ในโค้ด ได้แก่ pygetwindow สำหรับการจัดการหน้าต่าง, time และ datetime สำหรับการจัดการเวลา, win32gui, win32ui, win32con สำหรับการเข้าถึงและจัดการหน้าต่างใน Windows, และ PIL (Pillow) สำหรับการจัดการภาพ


2. ฟังก์ชัน capture_window

ฟังก์ชันนี้ทำหน้าที่แคปเจอร์หน้าจอของโปรแกรมที่กำหนด โดยมีพารามิเตอร์ window_title (ชื่อหน้าต่างของโปรแกรมที่ต้องการแคปเจอร์) และ s_name (ชื่อไฟล์ที่จะบันทึก)

  • ใช้ win32gui.FindWindow เพื่อหาหน้าต่างตามชื่อ

  • ตรวจสอบว่าพบหน้าต่างหรือไม่ หากไม่พบจะแสดงข้อความแจ้งเตือน

  • กำหนดพื้นที่หน้าต่างและสร้าง bitmap เพื่อบันทึกภาพ

  • ใช้ BitBlt เพื่อบันทึกเนื้อหาของหน้าต่างลงใน bitmap

  • แปลง bitmap ที่ได้เป็นภาพแบบ Pillow (Image.frombuffer) และบันทึกเป็นไฟล์ภาพ


3. การรับรายการหน้าต่างทั้งหมดที่เปิดอยู่

ใช้ gw.getAllTitles() เพื่อดึงรายชื่อหน้าต่างที่เปิดอยู่ทั้งหมด และบันทึกชื่อเหล่านี้ลงในรายการ app_names


4. เลือกหน้าต่างและบันทึกภาพหน้าจอซ้ำทุก ๆ 60 วินาที
  • เลือกชื่อหน้าต่างที่ต้องการบันทึก (app_name) โดยเลือกจากรายการ app_names ที่ดึงมา

  • ใช้ datetime.now().strftime เพื่อกำหนดชื่อไฟล์ภาพให้ไม่ซ้ำกัน (ตามวันที่และเวลา)

  • เรียกใช้ฟังก์ชัน capture_window พร้อมชื่อหน้าต่างและชื่อไฟล์ที่ต้องการบันทึก

  • ใช้ time.sleep(60) เพื่อรอ 60 วินาที ก่อนจะทำซ้ำอีกครั้ง


5. โค้ดโปรแกรมทั้งหมด



 
 
 

Comentários


bottom of page