Як мені знайти вікно для переходу до screencapture -l?


26

Screencapture утиліти командного рядка стверджує, що здатний захопити одне вікно, не вимагаючи взаємодії, але я не можу зрозуміти, що його передати.

-l<windowid> capture this windowsid

Це не ідентифікатор процесу програми.

Відповіді:


22

Для деяких програм ви можете використовувати AppleScript:

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

Хоча він не працює з Chrome .

Ідентифікатори також відображаються в Quartz Debug (доступний на сайті developer.apple.com/downloads ), якщо ви запускаєте defaults write com.apple.QuartzDebug QuartzDebugPrivateInterface -bool true.


1
На жаль, це не працює з додатками, які не можна записати, наприклад Eclipse або Google Chrome.
CajunLuke

Так, мій цільовий додаток не є яблучним :( Але все-таки спасибі.
Гарет Сімпсон

2
Зауважте, що ідентифікатори вікон не гарантують відповідність ідентифікатора вікна Quartz навіть у програмах, які можуть бути написані на скрипті.
Кріс Пейдж

Кварцова налагодження, здається, більше не існує, інакше вона була перейменована або в комплекті?
gman

Quartz Debug включений у "Додаткові інструменти для Xcode", доступні на веб-сайті developer.apple.com/download/more .
Ніколас Райлі

9

Я написав невелику утиліту командного рядка, щоб отримати ідентифікатор вікна для програм, які не підтримують AppleScript. Отримайте його тут: https://github.com/smokris/GetWindowID

Потім можна зафіксувати певне вікно, вказавши його ім'я та назву вікна:

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

Привіт, я намагаюся його використовувати, але я не впевнений у тому, що роблю. Я завантажив Makefile, GetWindowID.m. Але коли я запускаю команду ./GetWindowID.m, вона дає мені цю помилку: ./ GetWindowID.m: рядок 4: синтаксична помилка поблизу несподіваного маркера (' ./GetWindowID.m: line 4: int main (int argc, char ** argv) '
KingBOB

1
@Giorgio: Відкрийте вікно терміналу та перейдіть до папки, яка містить, Makefileа GetWindowID.mпотім запустіть команду make. Він створить двійковий код GetWindowID, який ви можете викликати, використовуючи команду, яку я описав у своїй відповіді.
smokris

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.