Tiện ích dòng lệnh screencapture tuyên bố có thể chụp một cửa sổ duy nhất mà không cần tương tác, nhưng tôi không thể tìm ra cái gì để vượt qua nó.
-l<windowid> capture this windowsid
Đây không phải là id quá trình của ứng dụng.
Tiện ích dòng lệnh screencapture tuyên bố có thể chụp một cửa sổ duy nhất mà không cần tương tác, nhưng tôi không thể tìm ra cái gì để vượt qua nó.
-l<windowid> capture this windowsid
Đây không phải là id quá trình của ứng dụng.
Câu trả lời:
Đối với một số ứng dụng, bạn có thể sử dụng AppleScript:
screencapture -l$(osascript -e 'tell app "Safari" to id of window 1') test.png
Nó không hoạt động với Chrome .
ID cũng được hiển thị trong Quartz Debug (có sẵn từ developer.apple.com/doads ) nếu bạn chạy defaults write com.apple.QuartzDebug QuartzDebugPrivateInterface -bool true
.
Tôi đã viết một tiện ích dòng lệnh nhỏ để lấy ID cửa sổ cho các ứng dụng không hỗ trợ AppleScript. Lấy nó ở đây: https://github.com/smokris/GetWindowID
Sau đó, bạn có thể chụp một cửa sổ cụ thể bằng cách chỉ định tên gói và tiêu đề cửa sổ của nó:
screencapture -l$(./GetWindowID "Vuo Editor" "untitled composition") VuoEditorWindow.png
(' ./GetWindowID.m: line 4:
int main (int argc, char ** argv)'
Makefile
và GetWindowID.m
sau đó chạy lệnh make
. Nó sẽ tạo ra một nhị phân được gọi GetWindowID
, sau đó bạn có thể gọi bằng lệnh tôi đã mô tả trong câu trả lời của mình.
Tôi đã viết một tiện ích dòng lệnh bao bọc screencapture
và thư viện cửa sổ Quartz.
Lấy nó ở đây: https://github.com/thismachinechills/pyscreencapture
Sử dụng nó như thế này:
./screencapture.py Chrome -t Stack Overflow