Bagaimana cara menemukan windowid untuk diteruskan ke screencapture -l?


26

Screencapture utilitas baris perintah mengklaim dapat menangkap satu jendela tanpa memerlukan interaksi, tapi saya tidak tahu apa yang harus dilewati.

-l<windowid> capture this windowsid

Ini bukan id proses aplikasi.

Jawaban:


22

Untuk beberapa aplikasi, Anda dapat menggunakan AppleScript:

screencapture -l$(osascript -e 'tell app "Safari" to id of window 1') test.png

Itu tidak bekerja dengan Chrome .

ID-nya juga ditampilkan di Quartz Debug (tersedia dari developer.apple.com/downloads ) jika Anda menjalankannya defaults write com.apple.QuartzDebug QuartzDebugPrivateInterface -bool true.


1
Sayangnya, ini tidak berfungsi dengan aplikasi yang tidak dapat diaplikasikan seperti Eclipse atau Google Chrome.
CajunLuke

Ya, aplikasi target saya tidak Applescriptable :( Tapi terima kasih.
Gareth Simpson

2
Perhatikan bahwa id jendela tidak dijamin sesuai dengan id jendela Kuarsa bahkan dalam aplikasi yang dapat skrip.
Chris Page

Debug kuarsa tampaknya tidak ada lagi atau telah diubah namanya atau dibundel?
GM

Debug Kuarsa termasuk dalam "Alat Tambahan untuk Xcode" yang tersedia di developer.apple.com/download/more .
Nicholas Riley

9

Saya menulis sedikit utilitas baris perintah untuk mengambil Window ID untuk aplikasi yang tidak mendukung AppleScript. Dapatkan di sini: https://github.com/smokris/GetWindowID

Anda kemudian dapat menangkap jendela tertentu dengan menentukan nama bundel dan judul jendela:

screencapture -l$(./GetWindowID "Vuo Editor" "untitled composition") VuoEditorWindow.png

Hai, saya mencoba menggunakannya tetapi saya tidak yakin dengan apa yang saya lakukan. Saya telah mengunduh Makefile, GetWindowID.m. Tetapi ketika saya meluncurkan perintah ./GetWindowID.m itu memberi saya kesalahan ini: ./ GetWindowID.m: baris 4: kesalahan sintaks dekat token (' ./GetWindowID.m: line 4: int tak terduga utama (int argc, char ** argv) '
KingBOB

1
@Iorgio: Buka jendela Terminal dan ubah ke folder yang berisi Makefiledan GetWindowID.m, kemudian jalankan perintah make. Ini akan menghasilkan biner bernama GetWindowID, yang kemudian Anda dapat memanggil menggunakan perintah yang saya jelaskan dalam jawaban saya.
smokris

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.