Wie kann ich ein Programmpfad auslesen und dann ein Programm mit diesem Pfad öffnen

  • Wie die überschrift schon sagt habe ich ein Problem...

    Ich möchte ein Programmpfad auslesen lassen(also dass der der am PC sitzt den Pfad angibt am besten dass sich ein Fenster öffmet und das er das angibt)

    und dann soll dieser Pfad gespeichert werden und das Programm soll dann geöffnet werden. wie geht das?

  • Meinst du sowas ?

    [autoit]

    $input = InputBox("Pfand angabe", "Bitte gebe deinen Pfad ein!")
    ShellExecute($input)

    [/autoit]

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Nein, da es ja den Pfad speichern soll wenn ich jetzt mit dem Kodafform designer nee gui mach soll er es ja nicht jedes mal angeben müssen

  • Du könntest den Pfad in eine .ini schreiben ....

    [autoit]

    $pfad = FileOpenDialog("Pfad", @ProgramsDir & "\", "Alle(*.*)", 3)

    [/autoit][autoit][/autoit][autoit]

    If @error Then
    MsgBox(0, "", "Keine Date) ausgewählt")
    Else
    IniWrite(@ScriptDir & "\pfad.ini", "pfad", "erster_pfad", $pfad)
    MsgBox(0, "", "Der Pfad " & $pfad & " wurde in " & @ScriptDir & "\pfad.ini gespeichert")
    EndIf

    [/autoit]
  • erklär mal bitte die befehle weil ich die nicht blicke.

    Und wie kann er es jetzt auslesen?

  • [autoit]

    $pfad = FileOpenDialog("Pfad", @ProgramsDir & "\", "Alle(*.*)", 3) ; Dateidialog öffnen

    [/autoit][autoit][/autoit][autoit]

    If @error Then ;wenn Fehler - dann Info
    MsgBox(4096, "", "Keine Datei ausgewählt")
    Else ;ansonsten
    IniWrite(@ScriptDir & "\pfad.ini", "pfad", "erster_pfad", $pfad) ;.ini im Skriptverzeichnis öffnen und in Sektion "pfad", Key "erster_Pfad" die Rückgabe von FileOpenDialog speichern
    MsgBox(0, "", "Der Pfad " & $pfad & " wurde in " & @ScriptDir & "\pfad.ini gespeichert")
    EndIf

    [/autoit]

    Einfach mal ausführen, erklärt sich von selbst. Ausgelesen wird mit IniRead(). Schau einfach mal in die Hilfe. Ist keine grosse Sache.

  • so wär ein kleines programm mit gui ;)

    Spoiler anzeigen
    [autoit]

    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit]

    If not IniRead(@Scriptdir & "\Settings.ini", "Pfade", "Programm", "") Then
    $path = FileOpenDialog("Wähle das Programm", @Scriptdir, "Programme (*.exe)", 1)
    IniWrite(@Scriptdir & "\Settings.ini", "Pfade", "Programm", $path)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 139, 123, 192, 124)
    $Icon1 = GUICtrlCreateIcon(IniRead(@Scriptdir & "\Settings.ini", "Pfade", "Programm", 0), -1, 8, 8, 121, 105, BitOR($SS_NOTIFY,$WS_GROUP))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Icon1
    ShellExecute(IniRead(@Scriptdir & "\Settings.ini", "Pfade", "Programm", 0))
    EndSwitch
    WEnd

    [/autoit]
  • Ich komm mir jetzt blöd vor.

    Schnitzel kannst du mir ein kleines Tut schreiben mit den Befehlen weil ich das einfach nicht blicke.

  • Spoiler anzeigen
    [autoit]

    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    ; includen denke ich is klar

    [/autoit] [autoit][/autoit] [autoit]

    If not IniRead(@Scriptdir & "\Settings.ini", "Pfade", "Programm", "") Then
    ; if not iniread: bedeutet soviel wenn die datei nicht da ist oder wenn die Section in der ini noch nicht beschrieben ist, wenn also kein Programmpfad in der ini steht dann mache folgendes:
    $path = FileOpenDialog("Wähle das Programm", @Scriptdir, "Programme (*.exe)", 1)
    ; öffne einen FileOpendialog, @Scriptdir ist der pfad bei dem es sich von anfang an befindet und
    ; "Programme <--was da steht ist frei wählbar (*.exe) <--- Nur alle exe-Dateien
    ; die 1 steht für: Der Pfad muss existieren
    IniWrite(@Scriptdir & "\Settings.ini", "Pfade", "Programm", $path)
    ; Speichere den eben ermittelten $path also den pfad zur exe-Datei in einer ini
    ; die sich im Skriptverzeichnis befindet und Settings.ini heißt
    ; Unter der Sektion Pfade mit dem Key: Programm
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate("Form1", 139, 123, 192, 124)
    ; erstelle eine gui^^
    $Icon1 = GUICtrlCreateIcon(IniRead(@Scriptdir & "\Settings.ini", "Pfade", "Programm", 0), -1, 8, 8, 121, 105, BitOR($SS_NOTIFY,$WS_GROUP))
    ; erstelle ein icon. mit dem bild der exe-Datei die vorhin in der ini gespeichert wurde.
    ; alles andere is relativ uninteressant bzw Standard
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Icon1
    ShellExecute(IniRead(@Scriptdir & "\Settings.ini", "Pfade", "Programm", 0))
    ; Shellexecute: führe die datei aus
    ; Wiederrum der Pfad zu der exe Datei den wir vorhin in die ini geschrieben haben
    EndSwitch
    WEnd

    [/autoit]