Windowid'i screencapture -l'ye nasıl geçiririm?


26

Komut satırı yardımcı programı screencapture, etkileşim gerektirmeden tek bir pencere yakalayabildiğini iddia ediyor, ancak neyin geçeceğini çözemiyorum.

-l<windowid> capture this windowsid

Uygulamanın işlem kimliği değil.

Yanıtlar:


22

Bazı uygulamalar için AppleScript kullanabilirsiniz:

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

Yine de Chrome ile çalışmıyor .

Kimlikleri, eğer çalıştırırsanız Quartz Debug'da ( developer.apple.com/downloads adresinden edinilebilir ) gösterilir defaults write com.apple.QuartzDebug QuartzDebugPrivateInterface -bool true.


1
Ne yazık ki, bu Eclipse veya Google Chrome gibi Uygulanamayan uygulamalarla çalışmıyor.
— CajunLuke

Evet, hedef uygulamam Uygulanamaz değil :( Ama yine de teşekkürler.
— Gareth Simpson

2
Pencere kimlikleri, komut dosyası olan uygulamalarda bile Quartz pencere kimliğine karşılık gelmediğini garanti edin.
— Chris Page

Kuvars hata ayıklaması artık yok gibi görünüyor veya başka bir şekilde yeniden adlandırıldı veya paketlendi?
— gman

Quartz Debug, developer.apple.com/download/more adresindeki "Xcode için Ek Araçlar" bölümüne eklenmiştir .
— Nicholas Riley

9

AppleScript'i desteklemeyen uygulamalar için Pencere Kimliğini almak üzere küçük bir komut satırı yardımcı programı yazdım. Buradan alın: https://github.com/smokris/GetWindowID

Ardından paket adını ve pencere başlığını belirterek belirli bir pencereyi yakalayabilirsiniz:

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

Merhaba, kullanmaya çalışıyorum ama ne yaptığımdan emin değilim. GetWindowID.m adlı Makefile dosyasını indirdim. Ama ./GetWindowID.m komutunu çalıştırdığımda bana şu hatayı veriyor: ./ GetWindowID.m: satır 4: beklenmeyen belirteci (' ./GetWindowID.m: line 4: int main (int argc, char ** argv) ' yakınında sözdizimi hatası '
— KingBOB

1
@Giorgio: Bir Terminal penceresi açın ve içeren klasörü değiştirin Makefileve GetWindowID.mardından komutu çalıştırın make. GetWindowIDCevabımda açıkladığım komutu kullanarak çağırabileceğiniz bir ikilik üretecektir .
— smokris

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.