การแคปหน้าจอโปรแกรมด้วย Python: คู่มือการเขียนโค้ดทีละขั้นตอน
- 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