Machen Sie einen Screenshot des obersten Fensters

Ich möchte ein AppleScript haben, das einen Screenshot der vordersten Anwendung macht. Ich habe dieses AppleScript verwendet :

tell application "System Events" -- get frontmost process
   set frontmostProcess to first process where it is frontmost -- this will be the script process
   set visible of frontmostProcess to false -- hide the script process
   repeat while (frontmostProcess is frontmost) -- wait until the script is hided
       delay 0.2
   end repeat
   set secondFrontmost to name of first process where it is frontmost -- get name of frontmost process (ignoring the script process)
   set frontmost of frontmostProcess to true -- unhide the script process
end tell
tell application secondFrontmost to set winID to id of window 1 -- get WindowID of frontmost window of frontmost process
do shell script "screencapture -c -x -l " & winID -- -c is used to store it in the clipboard. -x is used to mute the sound. -l is used to refer to the prefered windowid.

aber es funktioniert nicht für Snow Leopard. Wenn mir jemand eine Anleitung geben könnte, was der nicht unterstützte Abschnitt des Codes ist, würde ich gerne selbst recherchieren.

Ich denke, Snow Leopard unterstützt das Teil nicht, frontmostaber ich kann keine Informationen erhalten, um diese Annahme zu untermauern ...


Cmd+ Shift+ 4und Spaceund Click Windowfunktioniert, aber ich möchte ein Applescript, damit ich die Verknüpfung zum Öffnen des Applescripts ersetzen kann - das automatisch ein Bild des aktiven Fensters macht.

So muss ich nicht auf die Leertaste klicken und dann auf die gewünschten Fenster klicken.

Ich mache oft Screenshots und das ständige Klicken auf die Leertaste und das Klicken wird jetzt nervig.

Das Applescript überspringt im Wesentlichen das space+click window

Sind Sie sicher, dass die Option „-l“ für die Bildschirmaufnahme in 10.6 unterstützt wird? Es erscheint nicht in der Manpage oder screencapture -h.
@Kent Ich bin sehr neu bei Applescript, also war ich naiv genug, die online geposteten Ausgaben für Screencapture -h zu verwenden, weil ich dachte, sie seien 10.6.8. Danke, ich habe es gerade auch auf meinem Terminal überprüft. Kennen Sie eine Möglichkeit, Windowid in 10.6.8 auszuwählen? Denn darauf basiert das Skript :)

Antworten (3)

Ich habe gerade dieses kleine Tool zusammen gehackt.

https://github.com/vorgos/QuickGrab

Es ist ein Befehlszeilentool, das das aktivste Fenster oder jedes von Ihnen angegebene Fenster erfasst, genau wie die -lOption in der neueren Version von screencapture.

Hoffe das hat geholfen.

Das ist ausgezeichnet – funktioniert gut in Skripten.

Das Erstellen eines Screenshots des vordersten Fensters (über Umschalt-Befehl-4-Leertaste-Klick) ist nicht geeignet?

Ja, aber ich wollte ein Applescript, damit ich die Verknüpfung zum Öffnen des Applescripts ersetzen kann, damit es automatisch ein Bild des aktiven Fensters macht - damit ich nicht auf die spacegewünschten Fenster klicken und dann klicken muss. Ich mache oft Screenshots und das ständige Klicken auf die Leertaste und das Klicken wird jetzt nervig.

Ich habe eine Weile versucht, dies herauszufinden Geben Sie Ihnen die ID, die Sie an den Screencapture-Befehl in der Shell übergeben müssen. Ich übergebe -c und -l und es ist schön. Endlich