Öffnen per Doppelklick ist gut und schön, aber wenn es mal ein anderes Programm sein soll, ist der Weg über das Öffnen-mit-Menü ziemlich lästig. Beispiel Bilddateien: Als Standardprogramm bietet sich ein schneller Viewer an, aber wenn man Bilder auch ständig mit Gimp öffnet, wäre es schön, das etwas eleganter zu erledigen – etwa mit ALT+Mausklick:
Modifier für Maustasten
Maustasten nutzt man in der Praxis meist eher selten mit Modifier-Tasten wie STRG, WIN, UMSCHALT, WIN, CAPSLOCK oder eben ALT, allenfalls zum Markieren mehrerer Textstellen oder Dateien. Auch Spiele und Bildbearbeitungsprogramme machen bisweilen davon Gebrauch. Und das ist eigentlich schade! Zumal es auf Tastaturen schon deutlich üblicher ist, einene Tastenkürzel für Programmstarts oder dergleichen einzurichten. Dabei geht das mit ein und demselben Tool – wieder einmal AutoHotkey, wozu wir etliche Artikel haben, inklusive einer Einführung.
Mit AutoHotkey lässt sich so ziemlich alles auf so ziemlich jede Tastenkombination legen. Daher haben wir auch schon einen ganzen Profilmanager für Tastatur und Maus damit gebastelt. Und diese Funktion ließe sich wunderbar in El Tutos Profilmanager integrieren: Per ALT-Mausklick auf eine Bilddatei wird diese mit Gimp geöffnet. Der normale Doppelklick öffnet weiter im Standardprogramm.
ALT+Klick umsetzen
AutoHotkey-Code ist extrem simpel, ein paar Doppelpunkte genügen schon für Textbausteine (zwf::Zur weiteren Verwendung). Beim ALT-Klick braucht es aber doch ein wenig mehr Code, da einige Dinge passieren:
- Festlegen des Hotkeys.
- Abfrage, ob es eine Bilddatei ist.
- Einlesen des Dateinamens samt Pfad.
- Übergabe des Pfads an Gimp.
Hier zunächst der Code:
; ALT+Klick -> Öffnen mit Gimp
!LButton::
click
clipboard =
Send ^c
ClipWait, 1
If clipboard contains png,jpg,jpeg,bmp,ico,xcf,psd
run "C:\Program Files\GIMP 2\bin\gimp-2.10.exe" %clipboard%
Else
MsgBox Falsches Dateiformat.
return
Der Reihe nach:
- !LButton: Die Hotkey-Definition, ALT (!) plus linke Maustaste.
- click: Es wird ein einfacher Mausklick (auf eine Datei) ausgeführt, um sie zu markieren.
- clipboard =: Die Zwischenablage wird geleert.
- Send ^c: STRG+C wird gesendet, was den Dateinamen samt Pfad der angeklickten Datei in die Zwischenablage kopiert.
- ClipWait, 1: Die Zwischenablage wartet maximal 1 Sekunde auf Inhalt – sonst bricht das Skript ab.
- If clipboard contains: Prüfen, ob eine der Dateiendungen in der Zwischenablage vorkommt.
- run: Falls die If-Abfrage bejaht wird, wird Gimp ausgeführt – und der Pfad der Datei über die Variable %clipboard% mitgegeben.
- Else: Falls die If-Abfrage verneint wird, wird ein Dialog via MsgBox mit Infos gestartet.
- return: Beendet die Funktion.
Den Else-Part mit der MsgBox könnt Ihr natürlich streichen, aber zum Testen oder für die Gewöhnungszeit ist das eine schöne Hilfe. Wenn Ihr das Skript nun startet, könnt Ihr anschließend im Explorer mit gedrückter ALT-Taste Dateien anklicken und entweder öffnen sie sich in Gimp oder Ihr bekommt einen Hinweisdialog zu sehen.
Universeller Spaß
Und jetzt noch als kleiner Denkanstoß: Warum sich nur um Bildformate kümmern? Warum nicht Textdateien ALTernativ in Office statt im Texteditor öffnen? Warum nicht Videodateien mit VLC statt mit dem Windows Media Player? Und die Funktion vielleicht auf den Windows-Explorer beschränken? Die neuen Zeilen sind weiter eingerückt:
; ALT+Klick -> Öffnen mit Gimp
#IfWinActive ahk_exe explorer.exe
!LButton::
click
clipboard =
Send ^c
ClipWait, 1
If clipboard contains png,jpg,jpeg,bmp,ico,xcf,psd
run "C:\Program Files\GIMP 2\bin\gimp-2.10.exe" %clipboard%
Else if clipboard contains txt
run "C:\Program Files\LibreOffice\program\swriter.exe" %clipboard%
Else if clipboard contains mkv,avi,flv,mp4
run "D:\Program Files\VideoLAN\VLC\vlc.exe" %clipboard%
Else
MsgBox Falsches Dateiformat.
return
Ihr könnt einfach beliebig viele Else if einfügen und schon habt Ihr eine universelle Alternative zum Doppelklick und zum Standard-Standardprogramm. Und mit #IfWinActive beschränkt Ihr die Funktion auf den Explorer.
Ihr könnt mit AutoHotkey natürlich noch viel mehr machen, schließlich lassen sich alle Modifier-Tasten getrennt oder in Kombination nutzen und alle Maustasten ansprechen – und plötzlich hat die Maus 20, 30 unterschiedliche Funktionen! Außerdem können sich diese Funktionen auch noch von Programm zu Programm unterscheiden. Mehr dazu findet Ihr bei El Tutos Profilmanager.
PS.
Vielleicht noch ein klitzekleiner Hinweis: ALT + linke Maustaste führt oft dazu das Script auszuführen, wenn man mit ALT+Tab das Fenster wechselt, welches ja häufig durch die Maus ausgewählt wird. Evtl. wäre die Windowstaste praktische ;-)
Hallo Mirco,
nach langem Suchen endlich die Lösung, die mein Arbeitsleben vereinfacht – vielen Dank dafür :-) !
Allerdings scheint es – bei mir zumindest – nur zu funktionieren, wenn weder im Dateinamen noch im Dateipfad Leerzeichen enthalten sind. Offenbar interpretiert Excel alles bis zum ersten Leerzeichen der Zwischenablage als eine Datei und alles danach ebenfalls. Ersetze ich die Leerzeichen durch _ funktioniert es tadellos.
Ist dir dieses Problem bekannt und hättest du gar eine Lösungsidee dafür?
Nochmals vielen Dank und beste Grüße
Jörg Meyer
Hallo Jörg,
das ist kein Problem von Excel, sondern vom Kommandozeileninterpreter, der von AHK aufgerufen wird. Dieser wertet die übergebenen Parameter aus, die durch Leerzeichen getrennt werden. Wenn nun irgendwo im Pfad ein Leerzeichen ist, dann ist das für den Interpreter die Trennung zum nächsten Parameter.
Die Lösung ist denkbar einfach: Die übergebenen Parameter müssen in Anführungszeichen gesetzt werden, genauso wie es schon beim Programmpfad gemacht wird:
run „C:\Windows\System32\mspaint.exe“ „%clipboard%“
Nun sollte es funktionieren…
Grüße,
Thomas Weber
Astrein, jetzt läuft es reibungslos – vielen Dank für die Unterstützung!