ฉันกำลังพยายามจับภาพหน้าต่างลอยเป็นระยะโดยอัตโนมัติ โดยเฉพาะอย่างยิ่งของหน้าต่าง 'การโทรปัจจุบัน' ที่ลอยอยู่ซึ่ง Skype ใช้เมื่อหน้าต่างหลักปิดหน้าจอ
โดย googling ฉันพบว่าสิ่งที่ฉันต้องการคือรหัสหน้าต่างที่จะส่งผ่านไปยังหน้าจอ screencapture:
screencapture -l<win_id> <output_file>
ปัญหาคือฉันไม่พบวิธีรับ id หน้าต่างสำหรับ "การโทรปัจจุบัน" นี่คือสิ่งที่ฉันได้ลองมาแล้ว:
$ osascript -e 'tell app "Skype" to id of first window whose floating is true'
20:61: execution error: Skype got an error: Can’t get window 1 whose floating = true. Invalid index. (-1719)
$ osascript -e 'tell app "Skype" to id of first window whose name is "Current Call"'
20:67: execution error: Skype got an error: Can’t get window 1 whose name = "Current Call". Invalid index. (-1719)
ไม่มีใครรู้วิธีรับ id หน้าต่างสำหรับหน้าต่าง "การโทรปัจจุบัน" หรือไม่
หรืออีกวิธีหนึ่งไม่มีใครรู้ว่าฉันจะได้ภาพหน้าจอนี้ด้วยวิธีอื่นหรือไม่? (เช่นทำงานscreencapture
กับข้อโต้แย้งอื่น ๆ หรือใช้เครื่องมืออื่นสำหรับจับภาพหน้าจอ)
ปรับปรุง
ฉันได้ลองทำสิ่งต่อไปนี้แล้ว:
$ osascript -e 'tell app "Skype" to id of window 0'
-1
$ osascript -e 'tell app "Skype" to id of window 1'
-1
$ osascript -e 'tell app "Skype" to id of window 2'
84
$ osascript -e 'tell app "Skype" to id of window 3'
20:22: execution error: Skype got an error: Can’t get window 3. Invalid index. (-1719)
หน้าต่างที่มี id 84 เป็นหน้าต่างหลักของ skype ดังนั้นฉันสับสนเล็กน้อยที่นี่ อะไรคือสิ่งที่-1
ควรจะหมายความว่าอย่างไร