L'ID de la fenêtre ne semble pas être exposé de manière générale à AppleScript. Cependant, les géométries de la fenêtre sont exposés. Ainsi, au lieu d'utiliser screencapture -l
vous pouvez utiliser screencapture -R x,y,w,h
pour capturer la partie spécifique de l'écran couverte par la fenêtre cible. Avec AppleScript, le processus peut être sélectionné par le PID Unix comme propriété "unix id".
En supposant que le processus n'a qu'une seule fenêtre et que votre PID est en $PID
:
screencapture -R \
`osascript -e 'tell application "System Events" to get { position, size } of first window of (first process whose unix id is '$PID')' | tr -d ' '` \
window.png
Si le processus a plusieurs fenêtres, vous devez sélectionner par le titre de la fenêtre cible :
screencapture -R \
`osascript -e 'tell application "System Events" to get { position, size } of (first window whose title is "My window titlebar text") of (first process whose unix id is '$PID')' | tr -d ' '` \
window.png
Astuce : Vous pouvez lister les propriétés sélectionnables de n'importe quel objet avec get properties
: osascript -e 'tell application "System Events" to get properties of first process whose unix id is '$PID