หน้าจอยูทิลิตี้บรรทัดคำสั่งอ้างว่าสามารถจับภาพหน้าต่างเดียวโดยไม่ต้องมีการโต้ตอบ แต่ฉันไม่สามารถคิดได้ว่าจะผ่านอะไรไป
-l<windowid> capture this windowsid
ไม่ใช่รหัสกระบวนการของแอปพลิเคชัน
หน้าจอยูทิลิตี้บรรทัดคำสั่งอ้างว่าสามารถจับภาพหน้าต่างเดียวโดยไม่ต้องมีการโต้ตอบ แต่ฉันไม่สามารถคิดได้ว่าจะผ่านอะไรไป
-l<windowid> capture this windowsid
ไม่ใช่รหัสกระบวนการของแอปพลิเคชัน
คำตอบ:
สำหรับบางแอปพลิเคชันคุณสามารถใช้ AppleScript:
screencapture -l$(osascript -e 'tell app "Safari" to id of window 1') test.png
ไม่สามารถใช้งานกับChromeได้
รหัสจะแสดงยังอยู่ในควอตซ์ Debug (ข้อมูลจากdeveloper.apple.com/downloads ) defaults write com.apple.QuartzDebug QuartzDebugPrivateInterface -bool true
ถ้าคุณทำงาน
ฉันเขียนอรรถประโยชน์บรรทัดคำสั่งเล็กน้อยเพื่อดึง Window ID สำหรับแอปที่ไม่รองรับ AppleScript รับได้ที่นี่: https://github.com/smokris/GetWindowID
จากนั้นคุณสามารถจับภาพหน้าต่างเฉพาะโดยระบุชื่อบันเดิลและชื่อหน้าต่าง:
screencapture -l$(./GetWindowID "Vuo Editor" "untitled composition") VuoEditorWindow.png
(' ./GetWindowID.m: line 4:
int หลักที่ไม่คาดคิด(int argc, char ** argv) '
Makefile
และจากนั้นเรียกใช้คำสั่งGetWindowID.m
make
มันจะสร้างไบนารีที่เรียกว่าGetWindowID
ซึ่งคุณสามารถเรียกใช้คำสั่งที่ฉันอธิบายในคำตอบของฉัน
ฉันเขียนยูทิลิตีบรรทัดคำสั่งที่ล้อมรอบscreencapture
และไลบรารี windowing ของควอตซ์
คว้าได้ที่นี่: https://github.com/thismachinechills/pyscreencapture
ใช้มันแบบนี้:
./screencapture.py Chrome -t Stack Overflow