runWith.ahk
Posted: 18 May 2022, 07:00
Hintergrund dieses scripts ist die Anfrage von [hier] bzgl der Ausführung von batch files in Kombination mit AHK bei restriktiertem Zugang auf einem Arbeits-PC. Dabei scheint mir die fehlende Dateizuordnung (*.ahk) von AHK-scripten zum AHK-Interpreter (autohotkey.exe) der maßgebliche Vorteil einer "AHK-Installation" im Vergleich zur "portablen Lösung" bei welcher AHK lediglich entpackt wird, und die Zuordnung manuell konfiguriert werden muß (correct me if I'm wrong). Wird wie im vorgenannten Fall ein dafür notwendiger registry-Eintrag bzgl. Dateizuordnung verwehrt, wirds nötigend.
Das script agiert dabei als 'ausgelagerte' registry für Dateizuordnungen. HTH
PS. falls sich das final als "Durch die Brust ins Auge"-Lösung erweist, um so besser. Bin neugierig auf weitaus bessere (bevorzugt einfacherere) Lösungen
Das script agiert dabei als 'ausgelagerte' registry für Dateizuordnungen. HTH
Code: Select all
#SingleInstance, Force
assoc := {"xlsx" :"excel.com"
,"txt" :"notepad.exe"
,"bmp" :"paint.exe"
,"ahk" : A_AHKPath
,"ini" :"C:\_MyPrograms\Notepad2\Notepad2.exe"}
F12:: ; Mit Betätigung der F12-Taste, nach der Selektion von Dateien im Windows Explorer..
clipboard:=""
Send +{F10}p ; Aufruf des Kontextmenüs mit der Option "als Pfad kopieren". Kopieren der ausgewählten Dateipfade
ClipWait ; ..in die Zwischenablage
files := StrReplace(clipboard,"""","") ; entfernt alle Anführungszeichen aus den (multiplen) Pfadangaben
file := StrSplit(files,"`n","`r") ; (multiple) Pfade in array transferieren
Loop % file.Count() ; einzelne Pfade prozessieren
{ SplitPath,% file[A_Index],,, ext ; liefert die ext (z.B. 'ahk') aus dem Dateipfad
Run % !(assoc[ext]="") ; wenn Dateiendung gefunden wurde..
? assoc[ext] . " """ . file[A_Index] . """" ; Dateipfad aufrufen (ausführende Anwendung wird aus array ermittelt), ansonsten..
: """" . file[A_Index] . """" ; Dateipfad aufrufen (das OS bestimmt die ausführende Anwendung)
}
Return