Vielen Dank schon mal für die vielen Antworten. Hier wird einem echt schnell geholfen.
meinst sowas? (AutoDingensIt)
$input = InputBox("Geben sie einen Befehl ein:","Geben sie einen Befehl ein:")
Switch $input
Case $input = "msghallo"
MsgBox(0,"Hallo","Hallo")
Case $input = "iprenew"
ShellExecute("ipconfig","/flushdns")
Case $input = "exit"
Exit
Endswitch
Ja
Es geht doch auch ohne switch...
#SingleInstance, force
#a::
InputBox, shortcut
if(shortcut = "np")
Run, notepad.exe
else if(shortcut = "ff")
Run, firefox.exe
else if(shortcut = "gc")
Run, chrome.exe
else if(shortcut = "scite")
Run, C:\Program Files\AutoHotkey\SciTE\SciTE.exe
return
So habe ich es im Moment auch gelöst. Nur ohne #SingleInstance, was aber Sinn macht.
und wenn du vom if else weggehst und nur if benutzt?
#a::
InputBox, Test, Geben sie einen Befehl ein:, Geben sie einen Befehl ein:
if (Test = "ff")
Run, Firefox.exe
if (Test = "np")
Run, Notepad.exe
dann ist es auch wieder leslicher
Das macht aber nicht das gleiche und ist zudem aufwendiger. Lesbarer is es nur bedingt.
Mir ist eine andere Idee gekommen. Ich möchte dafür
Dictionaries verwenden. Allerdings weiß ich nicht, wie ich die Initialisierung richtig vornehmen kann (siehe Code-Kommentare):
; Das Dictionary soll beim Starten vom Skript erstellt werden,
; so dass man später darauf zugreifen kann
Dic()
; Hinzufügen der Elemente (Text-Kürzel mit Programm verknüpfen)
Dic_Add("ff", "C:\Programme\Firefox\firefox.exe")
Dic_Add("op", "C:\Programme\Opera\opera.exe")
; Starten von Programmen über InputBox
#a::
InputBox, shortcut ; Text-Kürzel abfragen
path := Dic_Get(shortcut) ; Programm-Pfad abrufen
IfEqual path,, return ; Kürzel mit Programm verknüpft?
Run path ; Programm starten
return
; Muss beim beenden vom Skript aufgerufen werden
Dic("Exit")
Return
Die Kürzel-Programm-Verknüpfungen könnte ich theoretisch noch aus einer entsprechenden Datei lesen (z.B. csv).
Gruß, Michael