สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
โดยปกติใน windows ในการบันทึกภาพหน้าจอ (หน้าจอที่พิมพ์) ก่อนอื่นเราต้องถ่ายภาพหน้าจอแล้วเปิดโปรแกรมระบายสี จากนั้นวางแล้วบันทึกในที่สุด
ตอนนี้ฉันจะสอนวิธีสร้างโปรแกรม python ให้เป็นแบบอัตโนมัติ
โปรแกรมนี้จะสร้างโฟลเดอร์ชื่อ 'shots' ในเดสก์ท็อปของคุณและบันทึกภาพหน้าจอในโฟลเดอร์ใหม่ภายใน shots ตามเวลาที่มันถูกถ่ายเมื่อคุณกดปุ่ม PrtScn และออกจากโปรแกรมเมื่อกด Ctrl + PtrScn
คุณจะต้องติดตั้ง python 3.7, โปรแกรมแก้ไขข้อความ (ฉันใช้ Sublime Text 3), แพ็คเกจ autopy และ pynput python
ขั้นตอนที่ 1: ติดตั้ง Autopy และ Pynput
หลังจากติดตั้ง python 3.7 แล้ว ให้เปิด cmd (พรอมต์คำสั่ง) แล้วพิมพ์ข้อความต่อไปนี้:
pip ติดตั้ง autopy
กดปุ่มตกลง. สิ่งนี้จะติดตั้งแพ็คเกจ autopy หลังจากเสร็จแล้วให้พิมพ์:
pip ติดตั้ง pynput
เพื่อติดตั้งแพ็คเกจ pynput
ขั้นตอนที่ 2: การเข้ารหัส
เปิดตัวแก้ไขข้อความของคุณและพิมพ์ดังต่อไปนี้:
นำเข้าวันที่เวลา
นำเข้าระบบปฏิบัติการ นำเข้า autopy จาก pynput.keyboard import Key, Listener
จากนั้นพิมพ์:
exit_combination = {Key.ctrl_l, Key.print_screen}
ปัจจุบัน_กด = set()
ซึ่งจะตั้งค่าคีย์ผสมเพื่อออกจากโปรแกรมเมื่อผู้ใช้กดคีย์ผสม ในกรณีนี้คือ Ctrl ซ้าย + PrtScn
จากนั้นพิมพ์:
path="c://Users//"+os.getlogin()+"//Desktop//shots//"+str(datetime.date.today())
ลอง: os.makedirs(เส้นทาง) ยกเว้น FileExistsError: pass
สิ่งนี้จะทำให้โฟลเดอร์ชื่อ shots ในเดสก์ท็อปของคุณและภายในโฟลเดอร์อื่นที่มีวันที่ปัจจุบัน os.getlogin() ถูกใช้เพื่อรับผู้ใช้ปัจจุบัน
จากนั้นพิมพ์:
โดยมี Listener(on_press=on_press, on_release=on_release) เป็นผู้ฟัง:
Listener.join()
ที่นี่ ฟังก์ชัน Listener จะฟังการกดแป้นและ join() ใช้เพื่อรวบรวมจนกว่าจะปล่อย
ตอนนี้ มากำหนดฟังก์ชั่นกัน พิมพ์มันทันทีหลังคำสั่งนำเข้า ก่อน 'exit_combination'
เราจำเป็นต้องกำหนด 3 ฟังก์ชั่น: on_press, on_release และ check_key
on_press และ on_release เป็นฟังก์ชันที่ฟังก์ชัน Listener ต้องการ
def on_press(คีย์): check_key(คีย์) ถ้าคีย์ใน exit_combination: ปัจจุบัน_pressed.add(คีย์) ถ้า ปัจจุบัน_pressed == exit_combination: listener.stop()
ฟังก์ชันนี้ใช้พารามิเตอร์ 'คีย์' และส่งผ่านไปยังฟังก์ชัน check_key(คีย์) จากนั้นจะตรวจสอบว่าคีย์อยู่ในชุดค่าผสมทางออกหรือไม่ เช่น การรวมกันของแป้นต่างๆ เพื่อกดเพื่อออกจากโปรแกรม หากเป็นเช่นนั้น แป้นจะหยุดดำเนินการฟังก์ชัน Listener
จากนั้นพิมพ์:
def on_release(คีย์): ลอง: ปัจจุบัน_pressed.remove(คีย์) ยกเว้น KeyError: pass
สิ่งนี้จะลบคีย์ออกจากชุดที่กดอยู่ในปัจจุบัน
จากนั้นพิมพ์:
def check_key(คีย์): if key == Key.print_screen: shot = autopy.bitmap.capture_screen() now = datetime.datetime.now() timenow = now.strftime("%H_%M_%S") path = " c://Users//"+os.getlogin()+"//Desktop//shots//"+str(datetime.date.today()) ลอง: shot.save(path+'//'+timenow+'.png') ยกเว้น FileNotFoundError: os.makedirs(path) shot.save(path+'//'+timenow+'.png')
ฟังก์ชันนี้จะเปรียบเทียบคีย์ที่กดอยู่ในปัจจุบันกับคีย์ที่ระบุ (คีย์ print_screen) หากตรงกัน ระบบจะจับภาพหน้าจอโดยใช้ capture_screen() ของไลบรารี autopy และบันทึกลงในตัวแปร 'shot'
จากนั้นจะกำหนดตัวแปรเส้นทางใหม่เพื่อใช้วันที่ปัจจุบัน (ทำเพื่อสร้างโฟลเดอร์ใหม่ด้วยวันที่ปัจจุบัน เพื่อที่แม้ว่าผู้ใช้จะไม่รีสตาร์ทโปรแกรมหลังเวลา 12.00 น. ภาพหน้าจอก็จะถูกบันทึกไว้ในโฟลเดอร์ใหม่ กับวันที่อัพเดท
คำสั่ง try ใช้เพื่อบันทึกรูปภาพลงในโฟลเดอร์ที่มีวันที่ปัจจุบัน หากไม่มีโฟลเดอร์อยู่ จะสร้าง FileNotFoundError ซึ่งจัดการโดยคำสั่งยกเว้นโดยสร้างโฟลเดอร์แล้วบันทึก
ตอนนี้ให้บันทึกโค้ดด้วยนามสกุล.py
ตรวจสอบไฟล์ python ที่แนบมาหากไม่ชัดเจน ~
ขั้นตอนที่ 3: ทดสอบโค้ดและเรียกใช้โดยไม่มีหน้าต่างคอนโซล
หากโปรแกรมแก้ไขข้อความของคุณรองรับการเรียกใช้โค้ด ให้เรียกใช้โปรแกรมดังกล่าว ถ้าไม่เช่นนั้น ให้ดับเบิลคลิกที่ไฟล์ python เพื่อเรียกใช้
หากคุณไม่ได้รับข้อผิดพลาดใด ๆ ยินดีด้วย
ตอนนี้ หากคุณไม่ต้องการเห็นหน้าต่างคอนโซลทุกครั้งที่คุณเรียกใช้โค้ด ให้เปลี่ยนนามสกุลไฟล์จาก.py เป็น.pyw
คีย์ผสมเริ่มต้นเพื่อออกจากโปรแกรมคือ ctrl + prtscn ซ้าย คุณสามารถเปลี่ยนได้โดยเปลี่ยนใน exit_combination
หากคุณชอบคำแนะนำนี้โปรดลงคะแนนให้ฉันในการแข่งขัน