Programm Pfad aus ini datei mit variablen buttons

  • Hallo Leute!
    Ich komm nicht mehr weiter, bitte um HILFE
    Ich will über eine GUI Programme starten, deren Pfad in einer INI datei hinterlegt ist:

    Vorraussetzung ich kann den Namen der Buttons und den Pfad immer über die ini Datei ändern und Einträge hinzufügen und wider wegnehmen.

    Meine ini Datei:
    [vlc]
    key = //fs1/daten/vlc.exe
    [foxit]
    key=//fs1/daten/foxit.exe
    [silent]
    key=//dc1/scripte/silent.exe
    -----------------------------------------------
    In Moment häng ich komplett bei der Ausführung,
    weil ich später Programme zu der ini Datei noch hinzufügen möchte.


    [autoit][/autoit]


    #include <GUIConstantsEx.au3>
    #include <GuiButton.au3>


    Opt("GUIOnEventMode", 1) ; Change to OnEvent mode

    Local $y = 20, $btn[99]
    If FileExists("install.ini") Then $indacSections = IniReadSectionNames("install.ini")
    If Not FileExists("install.ini") Then MsgBox(0, "Fehler", "install.ini anweisunsdatei nich gefunden !!!")
    $Height = $installSections[0] * 40 + 30
    $hWnd = GuiCreate("Auto Install", 400, $Height )
    ;$iMemo = GUICtrlCreateEdit("", 119, 10, 276, 374, 0)
    $SectionOutput=""
    For $i = 1 To $installSections[0]
    $btn= _GUICtrlButton_Create($hWnd, $installSections[$i], 100, $y , 200, 30 )
    $y += 40
    Next
    GUISetState(@SW_SHOW)


    so und nun komm ich leider nimmer weiter, damit etwas passiert wenn ich auf einen Button klicke :(

    pls help ;(

    Einmal editiert, zuletzt von doni_darco (20. Januar 2009 um 20:12)

  • Die beiden wichtigen Punkte sind:

    1. Unter der Zeile GUICtrlCreateButton die Zeile
    GUICtrlSetOnEvent (-1, "X") ; ruf beim Event die Funktion X auf

    2. Innerhalb der Funktion "X" kann das auslösende Control mit
    @GUI_CTRLID ermittelt werden.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

    • Offizieller Beitrag

    Ich habe mal Dein Programm ausführbar gemacht. So funktioniert es jetzt mit Deiner Inidatei.
    Musst nur noch entscheiden, was Du dann mit dem Pfad machen willst.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode", 1) ; Change to OnEvent mode

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

    Local $y = 20, $btn[99]
    If Not FileExists("install.ini") Then
    Exit MsgBox(0, "Fehler", "install.ini Anweisungsdatei nicht gefunden !!!")
    Else
    $installSections = IniReadSectionNames("install.ini")
    EndIf
    $Height = $installSections[0] * 40 + 30
    $hWnd = GUICreate("Auto Install", 400, $Height)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    ;$iMemo = GUICtrlCreateEdit("", 119, 10, 276, 374, 0)
    $SectionOutput = ""
    Global $btn[$installSections[0]]
    For $i = 1 To $installSections[0]
    $btn[$i - 1] = GUICtrlCreateButton($installSections[$i], 100, 10 + ($i - 1) * 40, 200, 30)
    GUICtrlSetOnEvent(-1, '_Buttons')
    Next
    GUISetState(@SW_SHOW)

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

    While True
    Sleep(50)
    WEnd

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

    Func _End()
    Exit
    EndFunc ;==>_End

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

    Func _Buttons()
    Local $iProg = @GUI_CtrlId - $btn[0] + 1
    Local $sPath = IniRead("install.ini", $installSections[$iProg], "key", "")
    MsgBox(0, 0, $sPath)
    EndFunc ;==>_Buttons

    [/autoit]
  • kleiner tipp:
    ich würd deine INI umstrukturieren ;)
    [Programme]
    ICQ=C:\Programme\icq6\

    Dann kannst du per IniReadSection bequem alles schön auslesen weil dann hast du alles beinander ;)

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D