GUI Elemente aktualisieren / Refresh

  • Hallo,

    ich habe auf meiner GUI u.a. 3 Combobox-Controlls mit verschiedenen Textelementen. Beim Programmstart sind diese Elemente alle sichtbar und auswählbar. Nach einigen Programmaktionen passiert es dann, dass die Comboboxen leer erscheinen und keine Textelemente mehr sichtbar und auswählbar sind. Es hilft dann nur ein Programmneustart.
    Gibt es eine Möglichkeit, die Elemente einer GUI während des Programmablaufs ab und an zu aktualsieren / refreshen, um sicherzustellen, dass immer alle Auswahlmöglichkeiten für den User sichtbar sind ??

    Danke für jeden hilfreichen Hinweis.

    Ynkelonium

  • Hmm ich sehe schon wieder kein Script... Aber du könntest mit GuiCtrlSetData() den Inhalt wieder neu Eintragen.

  • Meinst du sowas?

    [autoit]

    While 1
    $Box = GUICtrlRead("Deine Box")
    sleep(1) ;fragt im Abstand von 1 Millisekunden den Inhalt der Radiobox ab.
    WEnd

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


    oder halt statt read GuiCtrlSet...

  • Hallo,
    ich habe ein ähnliches Problem. Ich habe ein Tool mit einem Combofeld geschrieben. Dieses holt sich aus einer INI Pfadangabe von der Festplatte. In einem anderen Fenster verwalte ich die Pfade. Wenn ich dort in einem Listfeld Einträge lösche oder ergänze, diese dann abspeicher, tauchen die Änderungen zwar in der INI auf, jedoch wird mein Combofeld nach Rückkehr von dem aufgerufenen Fenster nicht mehr aktualisiert.

    Auszugsweise habe ich die mein Script und ein Beispiel der INI angehängt.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Leider komme ich nicht auf meinen Fehler. Auch das nochmalige Aufrufen der Combo half nicht. Die beim Programmstart eingelesenen Pfade über das 2D-Array bleiben unverändert bzw. aktualisieren sich nicht. Auch habe ich schon versucht, eine Funktion daraus zu machen, die man dann nur aufrufen muss. Gibt es vielleicht ein solches Script, in dem ich nachvollziehen kann wie man das realisiert.

    Viele Grüße

    jusuba2009

  • @jusuba2009 bei mir kommt immer ein fehler bei deinem Script habs ber jetzt nicht durchgesehen

    Ich mache es immer so

    [autoit]

    While 1
    $read = GUICtrlREad($controllid)
    GUICtrlSETData($controllid,$read)
    Sleep(50)
    WEnd

    [/autoit]
  • Hallo simon,

    das liegt garantiert an der fehlenden INI-DATEI.

    Sie sieht z.B. so aus:

    [PfadePrivat]
    Pfad1=C:\Windows

    Dann sollte es funktionieren. Deshalb habe ich ja die RAR-Datei noch angehängt.

    Gruß jusuba2009 ;)

  • Hallo jusuba2009,

    dein Teilskript funktioniert wunderbar, der Fehler muss also in dem anderen Teil passieren. Löschst du denn nach der Rückkehr die ComboBox und liest sie erneut ein?

    mfg (Auto)Bert

    Edit: @Ynkelonium, wenn du dein Skript postest, kann man dir vielleicht helfen

    • Offizieller Beitrag

    @ jusuba2009 Hab das Script mal erweitert. Nach klick auf Refresh wird die Combo neu geladen.

    Spoiler anzeigen
    [autoit]

    ; ------------------------------------------------------------------------------
    ; AutoIt 3.0.103
    ; Projektbeginn am 12 April 2009 - (c) Jürgen Assmann
    ; Dieses Script ist ein Programm zur Auswahl von Verzeichnissen;
    ; und übergibt diese der Zwischenablage oder dem DateiManager/Editor
    ; GUI1 = Hauptfenster, GUI2 = Einstellungsfenster, GUI3 = Pfadeverwaltung
    ; ------------------------------------------------------------------------------
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GuiStatusBar.au3>
    #include <GuiListBox.au3>

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

    #NoTrayIcon

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

    Global $wertePfadeAusINI, $nameExplorerAusINI, $auswahlAusCombofeld, $anzahl, $pfadangaben
    Global $INI = @WorkingDir & "\Auswahl2.ini"
    $pfadangaben = "PfadePrivat"

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

    ; ------------------------------------------------------------------------------
    ; GUI1
    ; Erstellen der GUI mit x- und y-Fenster-Position, Icon aus akt. Pfad in Fenster
    ; einbinden und Fenster an gespeicherte Fensterposition bewegen (aus INI-Datei)
    ; ------------------------------------------------------------------------------
    Global $GUI1 = GUICreate("Tool", 430, 200, -1, -1)

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

    ; ------------------------------------------------------------------------------
    ; COMBO
    ; Auswahlmenü ohne Scollbalken mit eingelesenen Pfadangaben (aus INI-Datei)
    ; ------------------------------------------------------------------------------
    Global $combofeld1 = GUICtrlCreateCombo("", 45, 15, 355, 100)
    Global $Refresh = GUICtrlCreateButton("Refresh", 100, 80, 80, 17)
    GUISetState()
    _ReadIni()
    ; ------------------------------------------------------------------------------
    ; GUI MESSAGE LOOP1
    ; Abfrage des Hauptfensters nach bestimmten Ereignissen (Mausklick auf Buttons,
    ; Schließen-Feld, Menüeinträge und Combofeld und ESC-Taste
    ; ------------------------------------------------------------------------------
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $combofeld1
    Call("MeinKopieren")
    If FileExists($auswahlAusCombofeld) Then
    Run($nameExplorerAusINI & " " & $auswahlAusCombofeld)
    Else
    MsgBox(48, " << Benutzerfehler >>", $auswahlAusCombofeld & @CRLF & @CRLF & "existiert NICHT !!!")
    EndIf
    Case $Refresh
    _ReadIni()
    EndSwitch
    WEnd

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

    ; ------------------------------------------------------------------------------
    ; Funktion - Die Auswahl aus dem Combofeld in den Zwischenspeicher kopieren
    ; ------------------------------------------------------------------------------
    Func MeinKopieren()
    $auswahlAusCombofeld = GUICtrlRead($combofeld1, 1)
    ClipPut($auswahlAusCombofeld)
    EndFunc ;==>MeinKopieren

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

    Func _ReadIni()
    $wertePfadeAusINI = IniReadSection($INI, $pfadangaben)
    If Not @error Then
    GUICtrlSetData($combofeld1, "")
    For $anzahl = 1 To $wertePfadeAusINI[0][0]
    GUICtrlSetData($combofeld1, $wertePfadeAusINI[$anzahl][1])
    Next
    EndIf
    EndFunc ;==>_ReadIni

    [/autoit]
  • Hallo Raupi,

    ich werde dies heute Abend nochmals ausprobieren. Auf den ersten Blick habe ich keine wesentlichen Änderungen gesehen, die ich nicht schon probiert habe. Allerdings wollte ich dies auch nicht unbedingt über einen zusätzlichen Button realisieren. Wenn ich ausprobiert habe, melde ich mich wieder.

    autoBert Ja, ich habe nach Rückkehr aus meinem Einstellfenster die Routine nochmals aufgerufen, aber in der Combobox sind noch immer die alten Werte.

    Viele Grüße

    jusuba2009

  • Hallo,

    Raupi War leider nicht erfolgreich. Ich habe das Script einfach ausführen lassen, habe vor dem Drücken der "REFRESH"-Taste in der INI eine Pfadänderung durchgeführt. Trotz dessen liest das Script die Änderung nicht ein.

    Eigentlich sollte die Zeile
    $wertePfadeAusINI = IniReadSection($INI, $pfadangaben)
    die Pfadangaben neu einlesen

    => Fehlanzeige

    Ich habe keine Ahnung warum.

    Gruß

    jusuba2009

    Anbei das komplette Scipt:

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • Hallo jusuba2009,

    also Raupis Skript hat bei mir wunderbar funktioniert, gab mir die Mühe gemacht dein Projekt anzupassen. Hier das Skript dazu:

    Spoiler anzeigen
    [autoit]

    ; ------------------------------------------------------------------------------
    ; AutoIt 3.0.103
    ; Projektbeginn am 12 April 2009 - (c) Jürgen Assmann
    ; Dieses Script ist ein Programm zur Auswahl von Verzeichnissen;
    ; und übergibt diese der Zwischenablage oder dem DateiManager/Editor
    ; GUI1 = Hauptfenster, GUI2 = Einstellungsfenster, GUI3 = Pfadeverwaltung
    ; ------------------------------------------------------------------------------
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GuiStatusBar.au3>
    #include <GuiListBox.au3>

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

    #NoTrayIcon

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

    HotKeySet("^o", "OeffneINIDatei")
    HotKeySet("^e", "GUI2")
    HotKeySet("^p", "GUI3")

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

    Local $statusbar1Teilung[2] = [200, 360]
    Local $statusbar1Text[3] = ["VerzeichnisTool", @TAB & "(c) 2009 von Jürgen Assmann", @TAB & "Version 0.55"]

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

    Global $aktPfad, $aktHilfedatei, $pfadEditorPlusDatei
    Global $anwendung, $tab, $anzahl, $listenfeld, $pfadangaben
    Global $statusbar1, $statusbar1Text, $statusbar2, $statusbar2Text, $statusbar3, $statusbar3Text
    Global $wertFensterXPosAusINI, $wertFensterYPosAusINI, $nameExplorerAusINI, $nameEditorAusINI
    Global $auswahlAusCombofeld, $ergebisPfadAusDialog1, $wertePfadeAusINI, $ergebisPfadAusDialog2
    Global $wertCheckboxAutomatismus, $wertCheckboxPrivatmodus, $wertCheckboxExpertenmodus
    Global $werteFensterPositionen, $wertFensterxPosition, $wertFensteryPosition

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

    $aktPfad = @WorkingDir
    $aktHilfedatei = $aktPfad & "\" & "Auswahl.chm"

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

    call ("GUI1ErstelleNeueINI")

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

    $wertFensterXPosAusINI = IniRead($aktPfad & "\" & "Auswahl.ini", "xPosition", "Position", "kein Fund")
    $wertFensterYPosAusINI = IniRead($aktPfad & "\" & "Auswahl.ini", "yPosition", "Position", "kein Fund")
    $nameEditorAusINI = IniRead($aktPfad & "\" & "Auswahl.ini", "Editor", "Programmpfad", "kein Fund")
    $pfadEditorPlusDatei = $nameEditorAusINI & " " & $aktPfad & "\" & "auswahl.ini"
    $nameExplorerAusINI = IniRead($aktPfad & "\" & "Auswahl.ini", "DateiExplorer", "Programmpfad", "kein Fund")
    $wertCheckboxAutomatismus = IniRead($aktPfad & "\" & "Auswahl.ini", "Automatismus", "Aktiv", "kein Fund")
    $wertCheckboxPrivatmodus = IniRead($aktPfad & "\" & "Auswahl.ini", "Privatmodus", "Aktiv", "kein Fund")

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

    if $wertCheckboxPrivatmodus = 1 then $pfadangaben = "PfadePrivat"
    if $wertCheckboxPrivatmodus = 4 then $pfadangaben = "PfadeGeschaeft"
    $pfadangaben = "PfadePrivat" ;<-------------------------------------wieder löschen

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

    ; ------------------------------------------------------------------------------
    ; GUI1
    ; Erstellen der GUI mit x- und y-Fenster-Position, Icon aus akt. Pfad in Fenster
    ; einbinden und Fenster an gespeicherte Fensterposition bewegen (aus INI-Datei)
    ; ------------------------------------------------------------------------------
    $GUI1 = GuiCreate("VerzeichnisTool", 430, 200, -1, -1)
    GuiSetIcon($aktPfad & "\" & "Auswahl.ico", 0)
    GUISetHelp(@WindowsDir & '\hh.exe "' & $aktHilfedatei & '"')
    WinMove("VerzeichnisTool", "", $wertFensterXPosAusINI, $wertFensterYPosAusINI)

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

    ; ------------------------------------------------------------------------------
    ; MENU
    ; Erstellen des Dateimenüs mit entsprechenden Untermenüpunkten, mit Alt+-Taste
    ; (& vor Buchstabe = Unterstrichen) anwählen, Wörter im Menü/Item können mit
    ; CHR(34) = " oder & = Leerzeichen ergänzt werden
    ; ------------------------------------------------------------------------------
    $dateimenu = GUICtrlCreateMenu ("&Datei")
    $beendenitem = GUICtrlCreateMenuitem ("&Beenden Alt+F4",$dateimenu)
    $bearbeitenmenu = GUICtrlCreateMenu ("&Bearbeiten")
    $oeffnenitem = GUICtrlCreateMenuitem ("Ö&ffne" & " " & CHR(34) & "auswahl.ini" & CHR(34) & " Strg+O",$bearbeitenmenu)
    $kopierenitem = GUICtrlCreateMenuitem ("&Kopieren Strg+C",$bearbeitenmenu)
    ; GUICtrlSetState(-1,$GUI_DEFBUTTON)
    $extrasmenu = GUICtrlCreateMenu ("E&xtras")
    $pfadeverwaltenitem = GUICtrlCreateMenuitem ("&Pfade verwalten Strg+P",$extrasmenu)
    $einstellungenitem = GUICtrlCreateMenuitem ("&Einstellungen Strg+E",$extrasmenu)
    $hilfemenu = GUICtrlCreateMenu ("&?")
    $hilfeitem = GUICtrlCreateMenuitem ("&Hilfe F1",$hilfemenu)
    $infoitem = GUICtrlCreateMenuitem ("Inf&o",$hilfemenu)

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

    ; ------------------------------------------------------------------------------
    ; Button
    ; Button (ohne Icon) zum Anwählen des Untermenüs "Pfade-Verwaltung"
    ; ------------------------------------------------------------------------------
    $buttonPfadeVerwaltung = GUICtrlCreateButton("=>", 405, 15, 20, 20)
    GUICtrlSetTip(-1, "Öffnet das Fenster 'Pfade-Verwaltung'!")

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

    ; ------------------------------------------------------------------------------
    ; COMBO
    ; Auswahlmenü ohne Scollbalken mit eingelesenen Pfadangaben (aus INI-Datei)
    ; ------------------------------------------------------------------------------
    $combofeld1 = GUICtrlCreatecombo ("", 45,15,355,100 )
    GUICtrlSetTip(-1, "Öffnet Combofeld mit eingelesenen Pfaden!")
    _iniRead();<--------------------------------------------------------------------- in Func ausgelagert
    ; ------------------------------------------------------------------------------
    ; CONTEXT MENU
    ; wenn aktiv kann dieses Menü mit der rechten Maustaste aufgerufen werden
    ; ------------------------------------------------------------------------------
    ; $contextMenu = GuiCtrlCreateContextMenu()
    ; GuiCtrlCreateMenuItem("Context Menu", $contextMenu)
    ; GuiCtrlCreateMenuItem("", $contextMenu) ;separator
    ; GuiCtrlCreateMenuItem("&Properties", $contextMenu)

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

    ; ------------------------------------------------------------------------------
    ; Statusbar1
    ; wird am unteren Bildschirmrand erstellt (1. Teiler, 2. Teiler .. plus Text)
    ; ------------------------------------------------------------------------------
    $statusbar1 = _GUICtrlStatusBar_Create($GUI1, $statusbar1Teilung, $statusbar1Text)

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

    ; ------------------------------------------------------------------------------
    ; Textfeld
    ; erstellt ein Textfeld an Fensterposition x,y (opt. Textbreite/-höhe)
    ; ------------------------------------------------------------------------------
    GuiCtrlCreateLabel("Pfade:", 5, 18)
    GUICtrlSetTip(-1, "Zeigt den Pfad aus der Zwischenablage an!")

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

    GUISetState()

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

    ; ------------------------------------------------------------------------------
    ; GUI MESSAGE LOOP1
    ; Abfrage des Hauptfensters nach bestimmten Ereignissen (Mausklick auf Buttons,
    ; Schließen-Feld, Menüeinträge und Combofeld und ESC-Taste
    ; ------------------------------------------------------------------------------
    Do
    $msg = GUIGetMsg()
    if $msg = $beendenitem then
    Call ("GUI1Exit")
    exit
    endif
    if $msg = $oeffnenitem then
    Call ("OeffneINIDatei")
    $statusbar1Text = "INI-Datei geöffnet"
    _GUICtrlStatusBar_SetText ($statusbar1, $statusbar1Text)
    endif
    if $msg = $kopierenitem then
    Call ("MeinKopieren")
    $statusbar1Text = "Pfad => Zwischenablage"
    _GUICtrlStatusBar_SetText ($statusbar1, $statusbar1Text)
    endif
    if $msg = $buttonPfadeVerwaltung then
    Call ("GUI3")
    $statusbar1Text = "PfadeVerwaltung"
    _GUICtrlStatusBar_SetText ($statusbar1, $statusbar1Text)
    _iniRead();<------------------------------------------------------------------------
    endif
    if $msg = $pfadeverwaltenitem then
    Call ("GUI3")
    $statusbar1Text = "PfadeVerwaltung"
    _GUICtrlStatusBar_SetText ($statusbar1, $statusbar1Text)
    _iniRead();<-----------------------------------------------------------------------
    endif
    if $msg = $einstellungenitem then
    Call ("GUI2")
    $statusbar1Text = "Einstellungenmenü"
    _GUICtrlStatusBar_SetText ($statusbar1, $statusbar1Text)
    endif
    if $msg = $infoitem then
    msgbox(64,"Info über VerzeichnisTool", "Version 0.55" & @CRLF & "(C) Jürgen Assmann", 10)
    $statusbar1Text = "Infomenü"
    _GUICtrlStatusBar_SetText ($statusbar1, $statusbar1Text)
    endif
    if $msg = $hilfeitem then
    run (@WindowsDir & '\hh.exe "' & $aktHilfedatei & '"')
    $statusbar1Text = "Hilfe geöffnet"
    _GUICtrlStatusBar_SetText ($statusbar1, $statusbar1Text)
    endif
    if $msg = $combofeld1 then
    Call ("MeinKopieren")
    if FileExists ($auswahlAusCombofeld) then
    if $wertCheckboxAutomatismus = "1" then
    $parameter = InputBox("<< Parameter für Programm >>", "Bitte Parameter eingeben und OK drücken!" & @CRLF & @CRLF & "Cancel = Übergabe ohne Parameter", "/L=,", "", -1,-1,$wertFensterXPosAusINI+100,$wertFensterYPosAusINI+20)
    run ($nameExplorerAusINI & " " & $parameter & " " & $auswahlAusCombofeld)
    else
    run ($nameExplorerAusINI)
    endif
    $statusbar1Text = "Pfad geöffnet"
    _GUICtrlStatusBar_SetText ($statusbar1, $statusbar1Text)
    else
    MsgBox(48," << Benutzerfehler >>", $auswahlAusCombofeld & @CRLF & @CRLF & "existiert NICHT !!!")
    endif
    endif
    If $msg = -3 then
    Call ("GUI1Exit")
    exit
    endif
    Until $msg = $GUI_EVENT_CLOSE

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

    Func _iniRead()
    MsgBox(0,$aktPfad,$pfadangaben);<---------------------------------------wieder löschen
    GUICtrlSetData($combofeld1,"");<------------wichtig
    $wertePfadeAusINI = IniReadSection($aktPfad & "\" & "Auswahl.ini", $pfadangaben)
    For $anzahl = 1 To $wertePfadeAusINI[0][0]
    if @error = 2 then
    else
    GUICtrlSetData($combofeld1,$wertePfadeAusINI[$anzahl][1])
    endif
    next
    EndFunc
    ; Funktionen für die GUI1
    ; ------------------------------------------------------------------------------
    ; Funktion - GUI1 - "Auswahl.ini" erstellen, wennn nicht vorhanden
    ; ------------------------------------------------------------------------------
    Func GUI1ErstelleNeueINI()
    If FileExists(@WorkingDir & "\" & "Auswahl.ini") then
    else
    IniWrite($aktPfad & "\" & "Auswahl.ini", "xPosition", "Position", "0")
    IniWrite($aktPfad & "\" & "Auswahl.ini", "yPosition", "Position", "0")
    IniWrite($aktPfad & "\" & "Auswahl.ini", "DateiExplorer", "Programmpfad", "explorer.exe")
    IniWrite($aktPfad & "\" & "Auswahl.ini", "Editor", "Programmpfad", "notepad.exe")
    IniWrite($aktPfad & "\" & "Auswahl.ini", "Automatismus", "Aktiv", "1")
    IniWrite($aktPfad & "\" & "Auswahl.ini", "Privatmodus", "Aktiv", "1")
    IniWrite($aktPfad & "\" & "Auswahl.ini", "Expertenmodus", "Aktiv", "1")
    IniWrite($aktPfad & "\" & "Auswahl.ini", "PfadePrivat", "Pfad1", "C:\")
    endif
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - GUI1-Fensterposition in "Auswahl.ini" schreiben und speichern
    ; ------------------------------------------------------------------------------
    Func GUI1Exit()
    Call ("GUI1Position")
    Call ("GUI1PositionSchreiben")
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - GUI1-Fensterposition feststellen
    ; ------------------------------------------------------------------------------
    Func GUI1Position()
    $werteFensterPositionen = WinGetPos("VerzeichnisTool")
    $wertFensterxPosition = $werteFensterPositionen[0]
    $wertFensteryPosition = $werteFensterPositionen[1]
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - GUI1-Fensterposition in "Auswahl.ini" speichern
    ; ------------------------------------------------------------------------------
    Func GUI1PositionSchreiben()
    IniWrite($aktPfad & "\" & "Auswahl.ini", "xPosition", "Position", $wertFensterxPosition)
    IniWrite($aktPfad & "\" & "Auswahl.ini", "yPosition", "Position", $wertFensteryPosition)
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - Öffnen der INI-Datei im eingestellten Editor
    ; ------------------------------------------------------------------------------
    Func OeffneINIDatei()
    run ($pfadEditorPlusDatei)
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - Die Auswahl aus dem Combofeld in den Zwischenspeicher kopieren
    ; ------------------------------------------------------------------------------
    Func MeinKopieren()
    $auswahlAusCombofeld = GUICtrlRead($combofeld1, 1)
    ClipPut($auswahlAusCombofeld)
    EndFunc

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

    ; Funktionen für die GUI2
    ; ------------------------------------------------------------------------------
    ; Funktion - DateiExplorername und evtl. Pfad in "Auswahl.ini" abspeichern
    ; ------------------------------------------------------------------------------
    Func GUI2Explorer()
    IniWrite($aktPfad & "\" & "Auswahl.ini", "DateiExplorer", "Programmpfad", $nameExplorerAusINI)
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - Editorname und evtl. Pad in "Auswahl.ini" abspeichern
    ; ------------------------------------------------------------------------------
    Func GUI2Editor()
    IniWrite($aktPfad & "\" & "Auswahl.ini", "Editor", "Programmpfad", $nameEditorAusINI)
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - Wert der Checkbox "Automatismus" in "Auswahl.ini" abspeichern
    ; ------------------------------------------------------------------------------
    Func GUI2Automatismus()
    IniWrite($aktPfad & "\" & "Auswahl.ini", "Automatismus", "Aktiv", $wertCheckboxAutomatismus)
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - Wert der Checkbox "Privatmodus" in "Auswahl.ini" abspeichern
    ; ------------------------------------------------------------------------------
    Func GUI2Privatmodus()
    IniWrite($aktPfad & "\" & "Auswahl.ini", "Privatmodus", "Aktiv", $wertCheckboxPrivatmodus)
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - Wert der Checkbox "Expertenmodus" in "Auswahl.ini" abspeichern
    ; ------------------------------------------------------------------------------
    Func GUI2Expertmode()
    IniWrite($aktPfad & "\" & "Auswahl.ini", "Expertenmodus", "Aktiv", $wertCheckboxExpertenmodus)
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - Dateiselektor aufrufen und Pfad an Variable übergeben
    ; ------------------------------------------------------------------------------
    Func GUI2Dateisuche()
    $ergebisPfadAusDialog1 = FileSaveDialog ("Datei auswählen", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", "Alle (*.*)")
    if @error = 1 then
    $statusbar2Text = "Fehler > Defaultpfad wird gesetzt!"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    if GUICtrlRead($tab) = 1 then
    $ergebisPfadAusDialog1 = "explorer.exe"
    endif
    if GUICtrlRead($tab) = 2 then
    $ergebisPfadAusDialog1 = "notepad.exe"
    endif
    else
    $statusbar2Text = "Datei wurde ausgewählt!"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    Endif
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - Einstellungenfenster öffnen und Einstellungen laden
    ; ------------------------------------------------------------------------------
    Func GUI2()

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

    $wertCheckboxAutomatismus = IniRead($aktPfad & "\" & "Auswahl.ini", "Automatismus", "Aktiv", "kein Fund")
    $wertCheckboxPrivatmodus = IniRead($aktPfad & "\" & "Auswahl.ini", "Privatmodus", "Aktiv", "kein Fund")
    $wertCheckboxExpertenmodus = IniRead($aktPfad & "\" & "Auswahl.ini", "Expertenmodus", "Aktiv", "kein Fund")
    $nameExplorerAusINI = IniRead($aktPfad & "\" & "Auswahl.ini", "DateiExplorer", "Programmpfad", "kein Fund")
    $nameEditorAusINI = IniRead($aktPfad & "\" & "Auswahl.ini", "Editor", "Programmpfad", "kein Fund")

    $meineGUI2 = GUICreate("Einstellungen", 300, 150, -1, -1, 0x00C00000)
    WinSetOnTop("Einstellungen", "", 1)
    Call ("GUI1Position")
    WinMove("Einstellungen", "", $wertFensterxPosition+120, $wertFensteryPosition+40)

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

    ; ------------------------------------------------------------------------------
    ; Buttons - Speichern und Verwerfen der Einstellungen
    ; ------------------------------------------------------------------------------
    $buttonSpeichern = GUICtrlCreateButton("Speichern",5,100)
    GUICtrlSetState(-1,$GUI_FOCUS)
    GUICtrlSetTip(-1, "Speichert Explorer- und Editorname sowie Zustand der Checkboxen!")
    $buttonAbbrechen = GUICtrlCreateButton("Abbrechen",65,100)
    GUICtrlSetTip(-1, "Verwirft Änderungen und beendet Fenster!")

    ; ------------------------------------------------------------------------------
    ; Statusbar2 - Erzeugt Statusbar
    ; ------------------------------------------------------------------------------
    $statusbar2 = _GUICtrlStatusBar_Create($meineGUI2)
    $statusbar2Text = "Allgem. Einstellugnen"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)

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

    ; ------------------------------------------------------------------------------
    ; Tab mit 3 Items
    ; ------------------------------------------------------------------------------
    $tab = GUICtrlCreateTab(5, 5, 290, 85)

    ; ------------------------------------------------------------------------------
    ; 1. Tab (Einstellungen mit drei Checkboxen)
    ; ------------------------------------------------------------------------------
    $tabEinstellungen = GuiCtrlCreateTabItem("Einstellungen")
    GuiCtrlCreateGroup("", 10, 25, 280, 60)
    $checkboxAutomatismus = GUICtrlCreateCheckbox(" automatisch mit Pfad laden", 15, 35, 200)
    GUICtrlSetTip(-1, "Wenn aktiv: Lädt Dateimanager + ausgew. Pfad!")
    if $wertCheckboxAutomatismus = 1 then
    GUICtrlSetState($checkboxAutomatismus, $GUI_CHECKED)
    else
    GUICtrlSetState($checkboxAutomatismus, $GUI_UNCHECKED)
    endif
    $checkboxPrivatmodus = GUICtrlCreateCheckbox(" Privatmodus", 15, 60, 95)
    GUICtrlSetTip(-1, "Wenn aktiv: Private Pfade laden!")
    if $wertcheckboxPrivatmodus = 1 then
    GUICtrlSetState($checkboxPrivatmodus, $GUI_CHECKED)
    else
    GUICtrlSetState($checkboxPrivatmodus, $GUI_UNCHECKED)
    endif
    $checkboxExpertenmodus = GUICtrlCreateCheckbox(" Expertenmodus", 190, 60, 95, 20, $BS_AUTO3STATE)
    GUICtrlSetTip(-1, "Wenn aktiv: Dateimanager + Editor können ausgew. werden!")
    if $wertCheckboxExpertenmodus = 1 then
    GUICtrlSetState($checkboxExpertenmodus, $GUI_CHECKED)
    $aufrufDateiSelektorExplorer = "Ja"
    $aufrufDateiSelektorEditor="Ja"
    ELSE
    if $wertCheckboxExpertenmodus = 2 then
    GUICtrlSetState($checkboxExpertenmodus, $GUI_INDETERMINATE)
    $aufrufDateiSelektorExplorer = "Nein"
    $aufrufDateiSelektorEditor="Ja"
    else
    GUICtrlSetState($checkboxExpertenmodus, $GUI_UNCHECKED)
    $aufrufDateiSelektorExplorer = "Nein"
    $aufrufDateiSelektorEditor="Nein"
    endif
    endif

    ; ------------------------------------------------------------------------------
    ; 2. Tab (Datei Manager mit Radiobuttons, einem Eingabefeld und Dateiselektor)
    ; ------------------------------------------------------------------------------
    $tabExplorer = GuiCtrlCreateTabItem("Datei Manager")
    GuiCtrlCreateGroup("", 10, 25, 280, 60)
    $radioDefaultExplorer = GuiCtrlCreateRadio("default ", 15, 35, 200)
    GUICtrlSetTip(-1, "Wenn aktiv: Explorer wird als Dateimanager verwendet!")
    $radioAlternativExplorer = GuiCtrlCreateRadio("alternativ", 15, 60, 80)
    GUICtrlSetTip(-1, "Wenn aktiv: Dateimanager kann ausgew. werden!")
    if $wertCheckboxExpertenmodus = 1 then
    GuiCtrlSetState($radioDefaultExplorer, $GUI_UNCHECKED)
    GuiCtrlSetState($radioAlternativExplorer, $GUI_CHECKED)
    $eingabefeldExplorer = GUICtrlCreateInput($nameExplorerAusINI, 105, 60, 155, 20)
    GUICtrlSetTip(-1, "Name des Dateimanagers!")
    else
    GuiCtrlSetState($radioDefaultExplorer, $GUI_CHECKED)
    GuiCtrlSetState($radioAlternativExplorer, $GUI_UNCHECKED)
    $eingabefeldExplorer = GUICtrlCreateInput($nameExplorerAusINI, 105, 60, 155, 20, $ES_READONLY)
    GUICtrlSetTip(-1, "Name des Dateimanagers!")
    endif
    $buttonDateiselektorExplorer = GUICtrlCreateButton("", 265, 60, 20, 20, $BS_ICON)
    GUICtrlSetTip(-1, "Altern. Dateimanager suchen!")
    GUICtrlSetImage(-1, $aktPfad & "\" & "auswahl.ico", -1, 0)

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

    ; ------------------------------------------------------------------------------
    ; 3. Tab (Editor mit Radiobuttons, einem Eingabefeld und Dateiselektor)
    ; ------------------------------------------------------------------------------
    $tabEditor = GuiCtrlCreateTabItem("Editor")
    GuiCtrlCreateGroup("", 10, 25, 280, 60)
    $radioDefaultEditor = GuiCtrlCreateRadio("default ", 15, 35, 200)
    GUICtrlSetTip(-1, "Wenn aktiv: Notepad wird als Editor verwendet!")
    $radioAlternativEditor = GuiCtrlCreateRadio("alternativ", 15, 60, 80)
    GUICtrlSetTip(-1, "Wenn aktiv: Editor kann ausgew. werden!")
    if $wertCheckboxExpertenmodus = 4 then
    GuiCtrlSetState($radioDefaultEditor, $GUI_CHECKED)
    GuiCtrlSetState($radioAlternativEditor, $GUI_UNCHECKED)
    $eingabefeldEditor = GUICtrlCreateInput($nameEditorAusINI, 105, 60, 155, 20, $ES_READONLY)
    GUICtrlSetTip(-1, "Name des Editors!")
    else
    GuiCtrlSetState($radioDefaultEditor, $GUI_UNCHECKED)
    GuiCtrlSetState($radioAlternativEditor, $GUI_CHECKED)
    $eingabefeldEditor = GUICtrlCreateInput($nameEditorAusINI, 105, 60, 155, 20)
    GUICtrlSetTip(-1, "Name des Editors!")
    endif
    $buttonDateiselektorEditor = GUICtrlCreateButton("", 265, 60, 20, 20, $BS_ICON)
    GUICtrlSetTip(-1, "Altern. Editor suchen!")
    GUICtrlSetImage(-1, $aktPfad & "\" & "auswahl.ico", -1, 0)

    GUICtrlCreateTabItem("") ; Beendet die Tab Definition

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

    GUISetState()

    ; ------------------------------------------------------------------------------
    ; GUI MESSAGE LOOP2
    ; Abfrage des Fensters nach bestimmten Ereignissen (Mausklick auf Tabs, Buttons,
    ; Radiobuttons und Checkboxen
    ; ------------------------------------------------------------------------------
    While 1
    $msg = GUIGetMsg()
    if $msg = $tab then
    if GUICtrlRead($tab) = 0 then
    $statusbar2Text = "Allgem. Einstellugnen"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    endif
    if GUICtrlRead($tab) = 1 then
    $statusbar2Text = "Einstellugnen für Dateimanager"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    endif
    if GUICtrlRead($tab) = 2 then
    $statusbar2Text = "Einstellugnen für Editor"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    endif
    endif
    if $msg = $buttonAbbrechen then
    GUIDelete()
    ExitLoop
    endif
    if $msg = $buttonSpeichern then
    WinSetTitle($meineGUI2, "", "Einstellungen:")
    $nameExplorerAusINI = GUICtrlRead($eingabefeldExplorer)
    Call ("GUI2Explorer")
    $nameEditorAusINI = GUICtrlRead($eingabefeldEditor)
    Call ("GUI2Editor")
    $wertCheckboxAutomatismus = GUICtrlRead($checkboxAutomatismus)
    Call ("GUI2Automatismus")
    $wertCheckboxPrivatmodus = GUICtrlRead($checkboxPrivatmodus)
    Call ("GUI2Privatmodus")
    $wertCheckboxExpertenmodus = GUICtrlRead($checkboxExpertenmodus)
    Call ("GUI2Expertmode")
    GUIDelete()
    ExitLoop
    endif
    if $msg = $radioDefaultExplorer And BitAND(GUICtrlRead($radioDefaultExplorer), $GUI_CHECKED) then
    WinSetTitle($meineGUI2, "", "* Einstellungen:")
    GUISwitch($meineGUI2, $tabExplorer)
    $statusbar2Text = "Defaultmodus"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    $ergebisPfadAusDialog1 = "explorer.exe"
    GUICtrlSetData ($eingabefeldExplorer,$ergebisPfadAusDialog1)
    $aufrufDateiSelektorExplorer = "Nein"
    if GUICtrlRead($radioDefaultEditor) = 1 then
    GUICtrlSetState($checkboxExpertenmodus, $GUI_UNCHECKED)
    else
    GUICtrlSetState($checkboxExpertenmodus, $GUI_INDETERMINATE)
    endif
    endif
    if $msg = $radioAlternativExplorer And BitAND(GUICtrlRead($radioAlternativExplorer), $GUI_CHECKED) then
    WinSetTitle($meineGUI2, "", "* Einstellungen:")
    GUISwitch($meineGUI2, $tabExplorer)
    $statusbar2Text = "Alternativmodus"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    $ergebisPfadAusDialog1 = "explorer.exe"
    GUICtrlSetData($eingabefeldExplorer, $ergebisPfadAusDialog1)
    $aufrufDateiSelektorExplorer = "Ja"
    if GUICtrlRead($radioAlternativEditor) = 1 then
    GUICtrlSetState($checkboxExpertenmodus, $GUI_CHECKED)
    else
    GUICtrlSetState($checkboxExpertenmodus, $GUI_INDETERMINATE)
    endif
    Endif
    if $msg = $radioDefaultEditor And BitAND(GUICtrlRead($radioDefaultEditor), $GUI_CHECKED) then
    WinSetTitle($meineGUI2, "", "* Einstellungen:")
    GUISwitch($meineGUI2, $tabEditor)
    $statusbar2Text = "Defaultmodus"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    $ergebisPfadAusDialog1 = "notepad.exe"
    GUICtrlSetData($eingabefeldEditor,$ergebisPfadAusDialog1)
    $aufrufDateiSelektorEditor = "Nein"
    if GUICtrlRead($radioDefaultExplorer) = 1 then
    GUICtrlSetState($checkboxExpertenmodus, $GUI_UNCHECKED)
    else
    GUICtrlSetState($checkboxExpertenmodus, $GUI_INDETERMINATE)
    endif
    endif
    if $msg = $radioAlternativEditor And BitAND(GUICtrlRead($radioAlternativEditor), $GUI_CHECKED) then
    WinSetTitle($meineGUI2, "", "* Einstellungen:")
    GUISwitch($meineGUI2, $tabEditor)
    $statusbar2Text = "Alternativmodus"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    $ergebisPfadAusDialog1 = "notepad.exe"
    GUICtrlSetData($eingabefeldEditor ,$ergebisPfadAusDialog1)
    $aufrufDateiSelektorEditor = "Ja"
    if GUICtrlRead($radioAlternativExplorer) = 1 then
    GUICtrlSetState($checkboxExpertenmodus, $GUI_CHECKED)
    else
    GUICtrlSetState($checkboxExpertenmodus, $GUI_INDETERMINATE)
    endif
    Endif
    if $msg = $buttonDateiselektorExplorer then
    if $aufrufDateiSelektorExplorer = "Ja" then
    Call ("GUI2Dateisuche")
    WinSetTitle($meineGUI2, "", "* Einstellungen:")
    GUISwitch($meineGUI2, $tabExplorer)
    GUICtrlSetData($eingabefeldExplorer ,$ergebisPfadAusDialog1)
    GUICtrlSetData($eingabefeldExplorer, $ergebisPfadAusDialog1)
    else
    $statusbar2Text = "Fehler > Kein Aufruf möglich!"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    endif
    endif
    if $msg = $buttonDateiselektorEditor then
    if $aufrufDateiSelektorEditor = "Ja" then
    Call ("GUI2Dateisuche")
    WinSetTitle($meineGUI2, "", "* Einstellungen:")
    GUISwitch($meineGUI2, $tabEditor)
    GUICtrlSetData( $eingabefeldEditor ,$ergebisPfadAusDialog1)
    GUICtrlSetData($eingabefeldEditor, $ergebisPfadAusDialog1)
    else
    $statusbar2Text = "Fehler > Kein Aufruf möglich!"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    endif
    endif
    if $msg = $checkboxAutomatismus And BitAND(GUICtrlRead($checkboxAutomatismus), $GUI_CHECKED) then
    $statusbar2Text = "Programm + Pfad laden"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    WinSetTitle($meineGUI2, "", "* Einstellungen:")
    endif
    if $msg = $checkboxAutomatismus And BitAND(GUICtrlRead($checkboxAutomatismus), $GUI_UNCHECKED) then
    $statusbar2Text = "nur Programm laden"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    WinSetTitle($meineGUI2, "", "* Einstellungen:")
    endif
    if $msg = $checkboxPrivatmodus And BitAND(GUICtrlRead($checkboxPrivatmodus), $GUI_CHECKED) then
    $statusbar2Text = "private Pfade laden => Neustart nötig!"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    WinSetTitle($meineGUI2, "", "* Einstellungen:")
    endif
    if $msg = $checkboxPrivatmodus And BitAND(GUICtrlRead($checkboxPrivatmodus), $GUI_UNCHECKED) then
    $statusbar2Text = "geschäftliche Pfade laden => Neustart nötig!"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    WinSetTitle($meineGUI2, "", "* Einstellungen:")
    endif
    If $msg = $checkboxExpertenmodus And BitAND(GUICtrlRead($checkboxExpertenmodus), $GUI_CHECKED) then
    $statusbar2Text = "Expertenmodus"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    WinSetTitle($meineGUI2, "", "* Einstellungen:")
    GUICtrlSetState($radioDefaultExplorer, $GUI_UNCHECKED)
    GUICtrlSetState($radioAlternativExplorer, $GUI_CHECKED)
    GUICtrlSetState($radioDefaultEditor, $GUI_UNCHECKED)
    GUICtrlSetState($radioAlternativEditor, $GUI_CHECKED)
    endif
    If $msg = $checkboxExpertenmodus And BitAND(GUICtrlRead($checkboxExpertenmodus), $GUI_INDETERMINATE) then
    $statusbar2Text = "Default-/Expertenmodus"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    WinSetTitle($meineGUI2, "", "* Einstellungen:")
    GUICtrlSetState($radioDefaultExplorer, $GUI_CHECKED)
    GUICtrlSetState($radioAlternativExplorer, $GUI_UNCHECKED)
    GUICtrlSetState($radioDefaultEditor, $GUI_UNCHECKED)
    GUICtrlSetState($radioAlternativEditor, $GUI_CHECKED)
    endif
    If $msg = $checkboxExpertenmodus And BitAND(GUICtrlRead($checkboxExpertenmodus), $GUI_UNCHECKED) then
    $statusbar2Text = "Defaultmodus"
    _GUICtrlStatusBar_SetText ($statusbar2, $statusbar2Text)
    WinSetTitle($meineGUI2, "", "* Einstellungen:")
    GUICtrlSetState($radioDefaultExplorer, $GUI_CHECKED)
    GUICtrlSetState($radioAlternativExplorer, $GUI_UNCHECKED)
    GUICtrlSetState($radioDefaultEditor, $GUI_CHECKED)
    GUICtrlSetState($radioAlternativEditor, $GUI_UNCHECKED)
    endif
    WEnd
    EndFunc

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

    ; Funktionen für die GUI3
    ; ------------------------------------------------------------------------------
    ; Funktion - Gelistete Pfade in "Auswahl.ini" schreiben
    ; ------------------------------------------------------------------------------
    Func GUI3PfadeLesenUndSpeichern ()

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

    DIM $pfadeAusListe[30][2]

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

    Local $maxListenElemente

    $maxListenElemente = _GUICtrlListBox_GetCount($listenfeld)

    IniDelete($aktPfad & "\" & "Auswahl.ini", $pfadangaben)
    For $anzahl = 1 To $maxListenElemente
    $pfadeAusListe[$anzahl][1] = _GUICtrlListBox_GetText($listenfeld, $anzahl -1)
    IniWrite($aktPfad & "\" & "Auswahl.ini", $pfadangaben, "Pfad" & $anzahl, $pfadeAusListe[$anzahl][1])
    $statusbar3Text = "Pfade gespeichert!"
    _GUICtrlStatusBar_SetText ($statusbar3, $statusbar3Text)
    next
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - Pfade in "Auswahl.ini" löschen
    ; ------------------------------------------------------------------------------
    Func GUI3PfadeLoeschen ()
    _GUICtrlListBox_ResetContent($listenfeld)
    IniDelete($aktPfad & "\" & "Auswahl.ini", $pfadangaben)
    IniWrite($aktPfad & "\" & "Auswahl.ini", $pfadangaben, "Pfad", "")
    $statusbar3Text = "Alle Pfade gelöscht!"
    _GUICtrlStatusBar_SetText ($statusbar3, $statusbar3Text)
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - Dateiselektor aufrufen
    ; ------------------------------------------------------------------------------
    Func GUI3Dateisuche()
    $ergebisPfadAusDialog2 = FileSelectFolder("Pfad auswählen", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}")
    if @error = 1 then
    $statusbar3Text = "Fehler > kein Pfad ausgewählt!"
    _GUICtrlStatusBar_SetText ($statusbar3, $statusbar3Text)
    else
    $statusbar3Text = "Pfad wurde übernommen! => speichern?"
    _GUICtrlStatusBar_SetText ($statusbar3, $statusbar3Text)
    Endif
    EndFunc
    ; ------------------------------------------------------------------------------
    ; Funktion - Verwaltungsfenster für Pfade öffnen
    ; ------------------------------------------------------------------------------
    Func GUI3 ()

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

    $meineGUI3 = GUICreate("Pfade-Verwaltung", 300, 150, -1, -1); 0x00C00000) <--------------------------------------
    WinSetOnTop("Pfade-Verwaltung", "", 1)
    Call ("GUI1Position")
    WinMove("Pfade-Verwaltung", "", $wertFensterxPosition+120, $wertFensteryPosition+40)

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

    ; ------------------------------------------------------------------------------
    ; Buttons
    ; ------------------------------------------------------------------------------
    $buttonSpeichern = GUICtrlCreateButton("Speichern", 225, 6, 70, 20)
    GUICtrlSetTip(-1, "Speichert gelistete Pfade!")
    $buttonAbbrechen = GUICtrlCreateButton("Abbrechen", 225, 31, 70, 20)
    GUICtrlSetState(-1,$GUI_FOCUS)
    GUICtrlSetTip(-1, "Verwirft Änderungen und beendet Fenster!")
    $buttonHinzufuegen = GUICtrlCreateButton("Add", 225, 56, 70, 20)
    GUICtrlSetTip(-1, "Fügt einen Pfad ein!")
    $buttonLoeschen = GUICtrlCreateButton("Löschen", 225, 81, 70, 20)
    GUICtrlSetTip(-1, "Löscht einen markierten Pfad!")
    $buttonRuecksetzen = GUICtrlCreateButton("Rücksetzen", 225, 106, 70, 20)
    GUICtrlSetTip(-1, "Leert die Pfadliste und speichert!")

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

    ; ------------------------------------------------------------------------------
    ; LISTENFELD
    ; ------------------------------------------------------------------------------
    $listenfeld = GuiCtrlCreateList("", 5, 5, 215, 125)
    GUICtrlSetTip(-1, "Liste der Pfade; alphabetisch sortiert!")
    $wertePfadeAusINI = IniReadSection($aktPfad & "\" & "Auswahl.ini", $pfadangaben)
    For $anzahl = 1 To $wertePfadeAusINI[0][0]
    if @error = 2 then
    else
    GUICtrlSetData(-1,$wertePfadeAusINI[$anzahl][1])
    endif
    next

    ; ------------------------------------------------------------------------------
    ; Statusbar3
    ; ------------------------------------------------------------------------------
    $statusbar3 = _GUICtrlStatusBar_Create($meineGUI3)
    $statusbar3Text = "Pfade verwalten"
    _GUICtrlStatusBar_SetText ($statusbar3, $statusbar3Text)

    GUISetState()

    ; ------------------------------------------------------------------------------
    ; GUI MESSAGE LOOP3
    ; ------------------------------------------------------------------------------
    While 1
    $msg = GUIGetMsg()
    if $msg = $buttonSpeichern then
    Call ("GUI3PfadeLesenUndSpeichern")
    WinSetTitle($meineGUI3, "", "Pfade-Verwaltung")
    endif
    if $msg = $buttonAbbrechen then
    GUIDelete()
    ExitLoop
    endif
    if $msg = $buttonHinzufuegen then
    Call ("GUI3Dateisuche")
    WinSetTitle($meineGUI3, "", "* Pfade-Verwaltung")
    GuiCtrlSetData(-1, $ergebisPfadAusDialog2)
    endif
    if $msg = $buttonLoeschen then
    if _GUICtrlListBox_GetCurSel($listenfeld) = -1 then
    else
    _GUICtrlListBox_DeleteString($listenfeld, _GUICtrlListBox_GetCaretIndex($listenfeld))
    WinSetTitle($meineGUI3, "", "* Pfade-Verwaltung")
    $statusbar3Text = "Pfad(e) gelöscht! => speichern?"
    _GUICtrlStatusBar_SetText ($statusbar3, $statusbar3Text)
    endif
    $maxListenElemente = _GUICtrlListBox_GetCount($listenfeld)
    if $maxListenElemente = 0 then
    Call ("GUI3PfadeLoeschen")
    WinSetTitle($meineGUI3, "", "Pfade-Verwaltung")
    $statusbar3Text = "Alle Pfade gelöscht!"
    _GUICtrlStatusBar_SetText ($statusbar3, $statusbar3Text)
    endif
    endif
    if $msg = $buttonRuecksetzen then
    Call ("GUI3PfadeLoeschen")
    endif
    WEnd
    EndFunc

    [/autoit]

    geänderte Stellen sind mit ;<------------------------------------------------------------- und Bemerkung gekennzeichnet,

    mfg (Auto)Bert

    • Offizieller Beitrag

    Das ist für mich ohne Worte . Warum postest du nicht gleich dein Script ? Man soll deinen Codeschnipsel anpassen, der vollkommen aus dem Konzept herausgerissen ist . Es ist weitaus mehr Aufwand eine Ini in 2 Scripten gleichzeitig zu aktualisieren als in einem Script. Dazu hätte ich sofort eine Lösung gehabt. Das selbe Problem hatte schon andere. Also mal wieder komplett umsonst gearbeitet X(

  • Hallo,

    eigentlich ist es mir peinlich stets auf eure Hilfe zurückzugreifen. Als Anfänger kämpft man mit vielen Kleinigkeiten und auch größeren Problemen. So geht es jedenfalls mir.

    Raupi Sorry, dass du umsonst gearbeitet hast, aber nicht jedem sind deine Gedankengänge bekannt. Meiner war, dass ich allen viel Arbeit sparen kann, wenn ich ein Script zur Verfügung stelle, dass etwa 600 Programmzeilen kleiner ist. Im Übrigen wurde die Lösung von AutoBert freundlicherweise in mein Script implementiert und kommentiert und funktioniert auch sehr gut. Insofern war deine Arbeit wohl nicht gang umsonst. Aber dennoch: Sorry - habe es nur gut gemeint.

    autoBert Vielen, vielen Dank für die Überarbeitung. Endlich funktioniert es so wie ich mir das Wünsche.

    Hier noch eine Frage: Die Listbox hat im Fenstertitel ein Icon, kann man dieses ausschalten?

    Vielen Dank euch beiden - ohne die Mithilfe der Profis geht es eben doch nicht. :P

    Viele Grüße jusuba2009

  • Hallo Jusuba2009,

    muss dann so aussehen:

    Spoiler anzeigen
    [autoit]

    Func GUI3 ()
    $meineGUI3 = GUICreate("Pfade-Verwaltung", 300, 150, -1, -1,$WS_CAPTION)

    [/autoit]

    Schön, das die Lösung funktioniert, hätte aber auch geklappt wenn du meine Frage (Idee) bzw. Raupis Skript für dein Projekt umgesetzt hättest.

    mfg (Auto)Bert

  • Hallo AutoBert,

    nochmals danke für die Hilfe. Auch das funktioniert nun.

    Gerade ist mir noch ein Problem aufgefallen:

    Beim Auswählen eines Pfades aus dem Combofeld, erscheint ein Inputfeld, in dem man Startparameter für den Dateimanager eingeben kann. Dieses Fenster hat auch noch ein Fenster-Icon. Ehrlichgesagt stört mich dieses auch noch. Ich wüßte aber nicht, dass es hierfür einen zusätzlichen Parameter gibt.

    Gruß
    jusuba2009

  • Hallo Jusuba2009,

    falls du dieses meinst:

    Spoiler anzeigen
    [autoit]

    $parameter = InputBox("<< Parameter für Programm >>", "Bitte Parameter eingeben und OK drücken!" & @CRLF & @CRLF & "Cancel = Übergabe ohne Parameter", "/L=,", "", -1,-1,$wertFensterXPosAusINI+100,$wertFensterYPosAusINI+20)

    [/autoit]

    Hierzu fällt mir leider keine Lösung ein, ausser vielleicht einmal die _MsgBox UDF von Commander21 zu testen (im Forum Skripte), bin mir aber jetzt auch nicht sicher ob die das kann. Notfalls musst du halt noch ein GUI-Fenster selber erstellen und einbinden.

    Edit1: hab eine UDF erstellt (siehe https://autoit.de/index.php?page…92640#post92640

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (6. Mai 2009 um 23:23)