Ich bastel mir ein GUI

  • Huhu Leute, ich bin grad dabei mir einfaches GUI zu schreiben.

    So soll es am Ende aussehen:

    [Blockierte Grafik: http://img5.imagebanana.com/img/e4fn2a2/Unbenannt.JPG]

    Das Problem an meinem Script:
    Sobald ein neuer Punkt im DropDown Menü ausgewählt wird, aktualisiert sich die infobox nicht.
    D.h. wenn ich vorher bei ICQ den Pfad über Durchsuchen eintragen lassen hab und dann auf MSN wechseln, steht dort der ICQ pfad.
    [in der ini ist er richtig, nur in der anzeige falsch]
    Außerdem wird der pfad z.B. zu ICQ gelöscht, wenn ich auf durchsuchen klicke, während im drop down menü icq ausgewählt ist, und ich das FileOpenDialog fenster einfach per [X] beende, anstatt die exe korrekt auszuwählen.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $icq = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "Error")
    $msn = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", "Error")
    $skype = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", "Error")
    $firefox = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", "Error")
    $winamp = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", "Error")
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "Error")
    $run = $icq
    $i = 1
    GUICreate("Dennis's Toolbox",370,100)
    Opt("GUICoordMode",2)

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

    $hCombo = GUICtrlCreateCombo ("ICQ", 10,10,100,25,0x0003)
    GUICtrlSetData($hCombo,"MSN|Skype|Firefox|Winamp","ICQ")
    $Button_1 = GUICtrlCreateButton ("Run", 10, -27, 50,25)
    $infobox = GUICtrlCreateInput($run, -160, 10, 350, 20)
    $Button_2 = GUICtrlCreateButton ("Durchsuchen", -1, 5,100,25)

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

    GUISetState(@SW_SHOW)
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_1
    $icq = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "")
    $msn = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", "")
    $skype = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", "")
    $firefox = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", "")
    $winamp = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", "")
    If GUICtrlRead($hCombo) = "ICQ" Then
    $run = $icq
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $run = $msn
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $run = $skype
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $run = $firefox
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $run = $winamp
    EndIf
    Run($run)
    Case $msg = $Button_2
    If GUICtrlRead($hCombo) = "ICQ" Then
    $name = "ICQ"
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $name = "MSN"
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $name = "Skype"
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $name = "FireFox"
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $name = "Winamp"
    EndIf
    $pfad = FileOpenDialog ( "Pfad zur "&$name&".exe auswählen", "C:\", "ausführbare Dateien (*.exe)" , 3 , $name & ".exe")
    If GUICtrlRead($hCombo) = "ICQ" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", $pfad)
    EndIf
    if not @error then GUICtrlSetData($infobox,$pfad)
    EndSelect
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von TheRaZoR (5. Oktober 2009 um 09:27)

  • Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $icq = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "Error")
    $msn = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", "Error")
    $skype = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", "Error")
    $firefox = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", "Error")
    $winamp = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", "Error")
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "Error")
    $run = $icq
    $i = 1
    GUICreate("Dennis's Toolbox",370,100)
    Opt("GUICoordMode",2)

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

    $hCombo = GUICtrlCreateCombo ("ICQ", 10,10,100,25,0x0003)
    GUICtrlSetData($hCombo,"MSN|Skype|Firefox|Winamp","ICQ")
    $Button_1 = GUICtrlCreateButton ("Run", 10, -27, 50,25)
    $infobox = GUICtrlCreateInput($run, -160, 10, 350, 20)
    $Button_2 = GUICtrlCreateButton ("Durchsuchen", -1, 5,100,25)

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

    GUISetState(@SW_SHOW)
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $hCombo
    GuiCtrlSetData($infobox,"")

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

    Case $msg = $Button_1
    $icq = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "")
    $msn = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", "")
    $skype = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", "")
    $firefox = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", "")
    $winamp = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", "")
    If GUICtrlRead($hCombo) = "ICQ" Then
    $run = $icq
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $run = $msn
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $run = $skype
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $run = $firefox
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $run = $winamp
    EndIf
    Run($run)
    Case $msg = $Button_2
    If GUICtrlRead($hCombo) = "ICQ" Then
    $name = "ICQ"
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $name = "MSN"
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $name = "Skype"
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $name = "FireFox"
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $name = "Winamp"
    EndIf
    $pfad = FileOpenDialog ( "Pfad zur "&$name&".exe auswählen", "C:\", "ausführbare Dateien (*.exe)" , 3 , $name & ".exe")
    If GUICtrlRead($hCombo) = "ICQ" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", $pfad)
    EndIf
    if not @error then GUICtrlSetData($infobox,$pfad)
    EndSelect
    WEnd

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Danke Schnuffel, hab deinen Post noch weiter modifiziert.

    Jetzt funktioniert das mit dem aktualisieren einwandfrei, jetzt muss ich nurnoch das hinkriegen, dass er den pfad net überschreibt, wenn man per X geschlossen hat.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $icq = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "Error")
    $msn = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", "Error")
    $skype = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", "Error")
    $firefox = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", "Error")
    $winamp = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", "Error")
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "Error")
    $run = $icq
    $i = 1
    GUICreate("Dennis's Toolbox",370,100)
    Opt("GUICoordMode",2)

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

    $hCombo = GUICtrlCreateCombo ("ICQ", 10,10,100,25,0x0003)
    GUICtrlSetData($hCombo,"MSN|Skype|Firefox|Winamp","ICQ")
    $Button_1 = GUICtrlCreateButton ("Run", 10, -27, 50,25)
    $infobox = GUICtrlCreateInput($run, -160, 10, 350, 20)
    $Button_2 = GUICtrlCreateButton ("Durchsuchen", -1, 5,100,25)

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

    GUISetState(@SW_SHOW)
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $hCombo
    If GUICtrlRead($hCombo) = "ICQ" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", "Error")
    EndIf
    GuiCtrlSetData($infobox,$pfad)
    Case $msg = $Button_1
    $icq = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "")
    $msn = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", "")
    $skype = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", "")
    $firefox = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", "")
    $winamp = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", "")
    If GUICtrlRead($hCombo) = "ICQ" Then
    $run = $icq
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $run = $msn
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $run = $skype
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $run = $firefox
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $run = $winamp
    EndIf
    Run($run)
    Case $msg = $Button_2
    If GUICtrlRead($hCombo) = "ICQ" Then
    $name = "ICQ"
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $name = "MSN"
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $name = "Skype"
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $name = "FireFox"
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $name = "Winamp"
    EndIf
    $pfad = FileOpenDialog ( "Pfad zur "&$name&".exe auswählen", "C:\", "ausführbare Dateien (*.exe)" , 3 , $name & ".exe")
    If GUICtrlRead($hCombo) = "ICQ" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", $pfad)
    EndIf
    if not @error then GUICtrlSetData($infobox,$pfad)
    EndSelect
    WEnd

    [/autoit]
  • ich hab doch gesagt: den @error direkt nach dem Befehl abfragen...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $icq = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "Error")
    $msn = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", "Error")
    $skype = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", "Error")
    $firefox = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", "Error")
    $winamp = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", "Error")
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "Error")
    $run = $icq
    $i = 1
    GUICreate("Dennis's Toolbox",370,100)
    Opt("GUICoordMode",2)

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

    $hCombo = GUICtrlCreateCombo ("ICQ", 10,10,100,25,0x0003)
    GUICtrlSetData($hCombo,"MSN|Skype|Firefox|Winamp","ICQ")
    $Button_1 = GUICtrlCreateButton ("Run", 10, -27, 50,25)
    $infobox = GUICtrlCreateInput($run, -160, 10, 350, 20)
    $Button_2 = GUICtrlCreateButton ("Durchsuchen", -1, 5,100,25)

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

    GUISetState(@SW_SHOW)
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $hCombo
    If GUICtrlRead($hCombo) = "ICQ" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", "Error")
    EndIf
    GuiCtrlSetData($infobox,$pfad)
    Case $msg = $Button_1
    $icq = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "")
    $msn = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", "")
    $skype = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", "")
    $firefox = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", "")
    $winamp = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", "")
    If GUICtrlRead($hCombo) = "ICQ" Then
    $run = $icq
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $run = $msn
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $run = $skype
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $run = $firefox
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $run = $winamp
    EndIf
    Run($run)
    Case $msg = $Button_2
    If GUICtrlRead($hCombo) = "ICQ" Then
    $name = "ICQ"
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $name = "MSN"
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $name = "Skype"
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $name = "FireFox"
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $name = "Winamp"
    EndIf
    $pfad = FileOpenDialog ( "Pfad zur "&$name&".exe auswählen", "C:\", "ausführbare Dateien (*.exe)" , 3 , $name & ".exe")
    if not @error then GUICtrlSetData($infobox,$pfad)
    If GUICtrlRead($hCombo) = "ICQ" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    if not @error then IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", $pfad)
    EndIf

    EndSelect
    WEnd

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • puuuuhhh, endlich.
    jetzt muss ich das noch mit dem tray icon hinkriegen, aber das ist ne andere geschichte :).

    ganz schön viel schreibkram für so ein kleines gui.

    • Offizieller Beitrag

    Man kann das Ganze auch viel kürzer schreiben:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    Opt("GUICoordMode", 2)

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

    Global $icq, $msn, $skype, $firefox, $winamp, $inidatei

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

    $inidatei = @ScriptDir & "\dennis.ini"
    _InidateiEinlesen()

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

    GUICreate("Dennis's Toolbox", 370, 100)

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

    $hCombo = GUICtrlCreateCombo("ICQ", 10, 10, 100, 25, 0x0003)
    GUICtrlSetData($hCombo, "MSN|Skype|Firefox|Winamp", "ICQ")
    $Button_1 = GUICtrlCreateButton("Run", 10, -27, 50, 25)
    $infobox = GUICtrlCreateInput($icq, -160, 10, 350, 20)
    $Button_2 = GUICtrlCreateButton("Durchsuchen", -1, 5, 100, 25)

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

    GUISetState(@SW_SHOW)
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button_1
    _InidateiEinlesen()
    Switch GUICtrlRead($hCombo)
    Case "ICQ"
    Run($ICQ)
    Case "MSN"
    Run($MSN)
    Case "Skype"
    Run($skype)
    Case "Firefox"
    Run($firefox)
    Case "Winamp"
    Run($winamp)
    EndSwitch
    Case $Button_2
    $name = GUICtrlRead($hCombo)
    $pfad = FileOpenDialog("Pfad zur " & $name & ".exe auswählen", "C:\", "ausführbare Dateien (*.exe)", 3, $name & ".exe")
    If Not @error Then
    GUICtrlSetData($infobox, $pfad)
    IniWrite($inidatei, $name, "path", $pfad)
    EndIf
    Case $hCombo
    _InidateiEinlesen()
    GUICtrlSetData($infobox, Eval(GUICtrlRead($hCombo)))
    EndSwitch
    WEnd

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

    Func _InidateiEinlesen()
    $icq = IniRead($inidatei, "ICQ", "path", "")
    $msn = IniRead($inidatei, "MSN", "path", "")
    $skype = IniRead($inidatei, "SKYPE", "path", "")
    $firefox = IniRead($inidatei, "FIREFOX", "path", "")
    $winamp = IniRead($inidatei, "WINAMP", "path", "")
    EndFunc

    [/autoit]

    Es würde sogar noch kürzer gehen (mit Arrays), aber das lernst Du dann später... ;)

  • vielleicht für die erste "Schulstunde" schon zu heftig ...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    • Offizieller Beitrag

    So, jetz geb ich meinen Senf auch noch dazu.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $IniDatei = @ScriptDir & "\dennis.ini"

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

    $icq = IniRead($IniDatei, "ICQ", "icq-path", "Error")
    $msn = IniRead($IniDatei, "MSN", "msn-path", "Error")
    $skype = IniRead($IniDatei, "SKYPE", "skype-path", "Error")
    $firefox = IniRead($IniDatei, "FIREFOX", "firefox-path", "Error")
    $winamp = IniRead($IniDatei, "WINAMP", "winamp-path", "Error")
    $pfad = IniRead($IniDatei, "ICQ", "icq-path", "Error")
    $run = $icq
    $i = 1
    GUICreate("Dennis's Toolbox", 370, 100)
    Opt("GUICoordMode", 2)

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

    $hCombo = GUICtrlCreateCombo("ICQ", 10, 10, 100, 25, 0x0003)
    GUICtrlSetData($hCombo, "MSN|Skype|Firefox|Winamp", "ICQ")
    $Button_1 = GUICtrlCreateButton("Run", 10, -27, 50, 25)
    $infobox = GUICtrlCreateInput($run, -160, 10, 350, 20)
    $Button_2 = GUICtrlCreateButton("Durchsuchen", -1, 5, 100, 25)

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

    GUISetState(@SW_SHOW)
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $hCombo
    If GUICtrlRead($hCombo) = "ICQ" Then
    $pfad = IniRead($IniDatei, "ICQ", "icq-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $pfad = IniRead($IniDatei, "MSN", "msn-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $pfad = IniRead($IniDatei, "SKYPE", "skype-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $pfad = IniRead($IniDatei, "FIREFOX", "firefox-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $pfad = IniRead($IniDatei, "WINAMP", "winamp-path", "Error")
    EndIf
    GUICtrlSetData($infobox, $pfad)
    Case $msg = $Button_1
    $icq = IniRead($IniDatei, "ICQ", "icq-path", "")
    $msn = IniRead($IniDatei, "MSN", "msn-path", "")
    $skype = IniRead($IniDatei, "SKYPE", "skype-path", "")
    $firefox = IniRead($IniDatei, "FIREFOX", "firefox-path", "")
    $winamp = IniRead($IniDatei, "WINAMP", "winamp-path", "")
    If GUICtrlRead($hCombo) = "ICQ" Then
    $run = $icq
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $run = $msn
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $run = $skype
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $run = $firefox
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $run = $winamp
    EndIf
    Run($run)
    Case $msg = $Button_2
    If GUICtrlRead($hCombo) = "ICQ" Then
    $name = "ICQ"
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $name = "MSN"
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $name = "Skype"
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $name = "FireFox"
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $name = "Winamp"
    EndIf
    $pfad = FileOpenDialog("Pfad zur " & $name & ".exe auswählen", "C:\", "ausführbare Dateien (*.exe)", 3, $name & ".exe")
    If Not @error Then
    GUICtrlSetData($infobox, $pfad)
    If GUICtrlRead($hCombo) = "ICQ" Then
    IniWrite($IniDatei, "ICQ", "icq-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    IniWrite($IniDatei, "MSN", "msn-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    IniWrite($IniDatei, "SKYPE", "skype-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    IniWrite($IniDatei, "FIREFOX", "firefox-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    IniWrite($IniDatei, "WINAMP", "winamp-path", $pfad)
    EndIf
    EndIf
    EndSelect
    WEnd

    [/autoit]
  • Hier mein finales script, warscheinlich viel zu umständlich aber immerhin mein erstes gui. *nen keks freu*

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $icq = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "Error")
    $msn = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", "Error")
    $skype = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", "Error")
    $firefox = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", "Error")
    $winamp = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", "Error")
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "Error")
    $run = $icq
    $i = 1
    GUICreate("Dennis's Toolbox",370,100)
    Opt("GUICoordMode",2)

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

    $hCombo = GUICtrlCreateCombo ("ICQ", 10,10,100,25,0x0003)
    GUICtrlSetData($hCombo,"MSN|Skype|Firefox|Winamp","ICQ")
    $Button_1 = GUICtrlCreateButton ("Run", 10, -27, 50,25)
    $infobox = GUICtrlCreateInput($run, -160, 10, 350, 20)
    $Button_2 = GUICtrlCreateButton ("Durchsuchen", -1, 5,100,25)

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

    GUISetState(@SW_SHOW)
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $hCombo
    If GUICtrlRead($hCombo) = "ICQ" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", "Error")
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $pfad = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", "Error")
    EndIf
    GuiCtrlSetData($infobox,$pfad)
    Case $msg = $Button_1
    $icq = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", "")
    $msn = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", "")
    $skype = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", "")
    $firefox = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", "")
    $winamp = IniRead("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", "")
    If GUICtrlRead($hCombo) = "ICQ" Then
    $run = $icq
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $run = $msn
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $run = $skype
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $run = $firefox
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $run = $winamp
    EndIf
    Run($run)
    Case $msg = $Button_2
    If GUICtrlRead($hCombo) = "ICQ" Then
    $name = "ICQ"
    ElseIf GUICtrlRead($hCombo) = "MSN" Then
    $name = "MSN"
    ElseIf GUICtrlRead($hCombo) = "Skype" Then
    $name = "Skype"
    ElseIf GUICtrlRead($hCombo) = "Firefox" Then
    $name = "FireFox"
    ElseIf GUICtrlRead($hCombo) = "Winamp" Then
    $name = "Winamp"
    EndIf
    $pfad = FileOpenDialog ( "Pfad zur "&$name&".exe auswählen", "C:\", "ausführbare Dateien (*.exe)" , 3 , $name & ".exe")
    if not @error then GUICtrlSetData($infobox,$pfad)
    if $pfad = "" then $secure = 0
    if $pfad <> "" then $secure = 1
    If GUICtrlRead($hCombo) = "ICQ" AND $secure = 1 Then
    IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "ICQ", "icq-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "MSN" AND $secure = 1 Then
    IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "MSN", "msn-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Skype" AND $secure = 1 Then
    IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "SKYPE", "skype-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Firefox" AND $secure = 1 Then
    IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "FIREFOX", "firefox-path", $pfad)
    ElseIf GUICtrlRead($hCombo) = "Winamp" AND $secure = 1 Then
    IniWrite("C:\Dokumente und Einstellungen\Dennis\Desktop\dennis.ini", "WINAMP", "winamp-path", $pfad)
    EndIf
    EndSelect
    WEnd

    [/autoit]