Ich möchte einen Screenshot von einem Fenster auf einem Mac machen.
Ich benutze derzeit shift+ cmd+ 4dann spaceMausklick.
Der Prozess ist sehr umständlich, Sie müssen es in dieser Reihenfolge tun, oder Sie müssen es noch einmal wiederholen.
Ich möchte eine einfache Tastenkombination, um was zu tun shift+ cmd+ 3.
Ich möchte eine möglichst einfache Verknüpfung zum Erstellen eines Screenshots eines Fensters verwenden.
Ist es möglich?
Hier ist meine Lösung, die ich Window-Snapshot genannt habe , basierend auf einem sehr einfachen AppleScript , das entweder als Anwendung im Skripteditor gespeichert oder als Teil eines Automator-Dienstes mit zugewiesener Tastenkombination verwendet wird. Obwohl es sich um einen Dienst handelt, verwendet es das Dienstprogramm eines Drittanbieters, das in der unten beschriebenen One*-Mausklick-Lösung der Windows-Snapshot AppleScript- Anwendung verwendet wird.
Dies kann entweder als Zwei-Mausklick-Lösung ( Standardeinstellung ) oder als Ein*-Mausklick-Lösung eingerichtet werden .
Als Lösung mit zwei Mausklicks wird das AppleScript als Anwendung gespeichert. Ich habe es als Fenster-Schnappschuss in Anwendungen gespeichert und es dann im Dock platziert , indem ich das Anwendungspaket per Drag & Drop auf das Dock gezogen habe , wo ich es haben wollte.
delay
Befehl als Timer, um das Positionieren des Mauszeigers zu ermöglichen, bevor er abläuft, und nimmt automatisch den Snapshot auf, der in der Ein-Maus-Klick-Lösung verwendet wird . Allein die Zwei-Mausklick-Lösung ist die einfachste Lösung, die hier vorgestellt wird.Als Ein-Maus-Klick-Lösung wird das AppleScript als Anwendung gespeichert und das Drittanbieter-Dienstprogramm CLICLICK wird dem Anwendungspaket hinzugefügt und der entsprechende Code wird im Skript auskommentiert.
delay
Befehl, um Zeit zum Positionieren des Mauszeigers an einer beliebigen Stelle über dem zu erfassenden Zielfenster zu haben, und es spielt keine Rolle, ob das Fenster das oberste Fenster ist oder nicht, wenn der zweite Befehl ausgeführt delay
wird Mal aus, über welchem Fenster sich die Maus befindet, das ist dasjenige, das im Schnappschuss aufgenommen wurde. Die Erfassung kann abgebrochen werden, indem die escTaste gedrückt wird, bevor der zweite delay
Befehl abläuft .Als Automator-Dienst wird er mit dem ApplesScript- Code erstellt , leicht modifiziert, und dem Dienst wird eine Tastenkombination zugewiesen unter: Systemeinstellungen > Tastaturkürzel > Dienste
tell application "System Events"
(* Note: If used as the default two mouse-click solution then use as is, nothing else needs to be done. *)
keystroke "$" using {command down}
delay 0.25
keystroke space
(* Note: If using as the one mouse-click solution or Automator Service, uncomment the
two lines below having double-dashes in front by removing the double-dashes.
Also when using as the one mouse-click solution, set a value on the 'delay' command
below to an appropriate value which allows you the time necessary to move the mouse
over the target window before that delay command times out and the snapshot is taken.
The default of '1.5' is in this use case is a somewhat arbitrary value, set it to suite.
Note: When using as an Automator Service set the 'delay' command below to '0.25',
the same as in the first 'delay' command. *)
-- delay 1.5
-- do shell script "/Applications/Window-Snapshot.app/Contents/Resources/cliclick c:."
end tell
0.25
zweiten Wert, , diese kurze Verzögerung ist notwendig, da zwischen den beiden Befehlen eine Verzögerung liegen muss . Wenn Sie die Ein-Maus-Klick-Lösung verwenden, muss der zweite Befehl realistischer sein. Stellen Sie einen Wert ein, der Ihnen erlaubt, die Maus über das Zielfenster zu bewegen, bevor der Verzögerungsbefehl abläuft, z. B. usw.delay 0.25
delay
keystroke
delay
1.5
Öffnen Sie den Skript-Editor (oder ggf. den AppleScript-Editor ).
Kopieren Sie den Window-Snapshot AppleScript Code und fügen Sie ihn von oben in das Unbenannte Dokumentfenster ein und drücken Sie dann Compile .
Drücken Sie ⌘Szum Speichern und stellen Sie das Dateiformat: auf Anwendung ein , um es im Anwendungsordner zu speichern .
Geben Sie dem Window-Snapshot- Anwendungspaket ein benutzerdefiniertes Symbol. Ich habe ein Symbol einer Kamera verwendet, das bei Find Icons gefunden wurde , und dieses insbesondere verwendet , indem ich auf die Schaltfläche „ICNS herunterladen“ klickte. Ich habe die heruntergeladene Datei "scanners_cameras.icns" in der Vorschau geöffnet und sie kopiert und dann in das Blatt Get Info der Window-Snapshot.app eingefügt , indem ich zuerst das kleine Symbol in der oberen linken Ecke des Window-Snapshot-Infoblatts ausgewählt habe . (Wählen Sie in Anwendungen die Window-Snapshot.app aus und drücken Sie: ⌘I)
Ziehen Sie nun das Window-Snapshot- Anwendungspaket per Drag & Drop aus dem Anwendungsordner auf das Dock , wo Sie es haben möchten.
Es kann jetzt verwendet werden, klicken Sie auf die Window-Snapshot Dock Tile und dann auf das Zielfenster, das erfasst werden soll.
Screen Shot yyyy-mm-dd at hh.mm.ss AM|PM
oder wenn die Standardeinstellung geändert wurde, wird sie auf die aktuelle Einstellung geändert.Einrichten der Window-Snapshot.app als One*-Mausklick-Lösung mit CLICLICK
Laden Sie CLICLICK herunter , hängen Sie die Datei cliclick.dmg ein und platzieren Sie eine Kopie der cliclick
ausführbaren Datei im Anwendungspaket Window-Snapshot.app unter dem im Skript angegebenen Pfad. Klicken Sie bei gedrückter Strg-Taste auf die Window-Snapshot- App, wählen Sie Paketinhalt anzeigen und navigieren Sie zum Ordner „Ressourcen“ , indem Sie dort eine Kopie der cliclick
ausführbaren Datei platzieren.
Entkommentieren Sie die beiden Zeilen unter den (* Note: If using as the one mouse-click solution or Automator Service,
Kommentaren, indem Sie die doppelten Bindestriche, --
, vor dem Code entfernen.
Speichern Sie die am AppleScript vorgenommenen Änderungen .
Es kann jetzt als Ein-Maus-Klick-Lösung verwendet werden .
Öffnen Sie Automator und wählen Sie Service aus .
Setzen Sie Service empfängt ausgewählt auf keine Eingabe und belassen Sie es in jeder Anwendung unverändert. Fügen Sie ein Run AppleScript hinzu und kopieren Sie dann den Window-Snapshot AppleScript Code oben und fügen Sie ihn in das Run AppleScript- Fenster ein, wobei der Standardcode überschrieben wird.
Kommentieren Sie die beiden Zeilen unter den (* Note: If using as the one mouse-click solution or Automator Service,
Kommentaren aus, indem Sie die doppelten Bindestriche , --
vor dem Code entfernen, und setzen Sie den Wert des zweiten delay
Befehls auf 0.25
.
Speichern Sie den Dienst , indem ⌘SSie ihn als Window-Snapshot benennen .
Öffnen Sie die Systemeinstellungen und navigieren Sie zu Tastatur > Tastaturkürzel > Dienste und scrollen Sie nach unten, dann sehen Sie unter Allgemein Fenster-Schnappschuss und wählen Sie es aus. Klicken Sie nun auf Verknüpfung hinzufügen und drücken Sie shift- command- 5oder: ⇧⌘5
Es kann jetzt als Dienst mit der Tastenkombination ⇧⌘5 verwendet werden
cliclick
ausführbaren Datei an den Ort anpassen, an dem Sie sie installiert haben. Sie könnten versuchen, es in das Dienstepaket unter aufzunehmen, zB /Users/$USER/Library/Services/Window-Snapshot.workflow/Contents
, obwohl ich dies nicht versucht habe, da ich es sowohl als AppleScript- Anwendung, die es als Zwei-Mausklick-Lösung verwendet , als auch als Automator-Dienst mit zugewiesener Tastenkombination mag.Abschließend möchte ich sagen, dass dieses sehr einfache AppleScript sicherlich erweitert werden kann, um zusätzliche Funktionen sowohl als Anwendung als auch als Dienst hinzuzufügen, dh Hinzufügen von Code zum Speichern des Schnappschusses unter anderen Namen und Orten usw., wie auch immer ich es tun werde Überlassen Sie es Ihnen, dies zu ändern, wenn Sie dies wünschen.
Ein Ansatz wäre die Verwendung des screencapture
Befehls:
screencapture -w window.png
Dadurch wird das erste Fenster erfasst, auf das Sie klicken, nachdem Sie den Befehl ausgeführt haben, und es als window.png
.
Es gibt verschiedene Möglichkeiten, diesen Befehl an eine Tastenkombination zu binden, z. B. indem Sie einen Automator-Dienst erstellen, der ihn als Shell-Skript ausführt , oder indem Sie einen Launcher eines Drittanbieters wie Alfred verwenden . In jedem Fall möchten Sie dem Prozess wahrscheinlich auch einige Smarts hinzufügen, die jedes Mal einen anderen Dateinamen auswählen, damit Sie Ihren vorherigen Screenshot nicht ständig überschreiben.
Ich kenne keinen einfachen Weg, um immer nur das vorderste Fenster zu erfassen ... vielleicht kann ein AppleScript-Guru dabei helfen?
Paul
Benutzer3439894
checkModifierKeys
und tut, was der Name andeutet, und ich habe sie so codiert, dass, wenn ich die Umschalttaste drücke, wenn ich auf die Dock-Kachel klicke, die Tastedisable-shadow
in der .plist-Datei der Bildschirmaufnahme umgeschaltet wird, sodass ich problemlos Schnappschüsse ohne Schlagschatten machen kann . Beide ausführbaren Dateien habe ich aus dem Quellcode erstellt, den die Autoren bereitgestellt haben, obwohl beide die Binärdateien bereitstellen. Wenn Sie interessiert sind, lassen Sie es mich wissen, ich werde die Antwort aktualisieren.