IniWrite Problem mit Pfad zu einer Datei

  • Hallo,

    ich habe mit der Suche zwar einen Beitrag dem Problem gefunden, leider war dort aber keine Lösung zu finden.

    Ich verwende FileOpenDialog um eine Datei zu ermitteln. Der Pfad zur Datei soll dann in eine Ini-Datei geschrieben werden um diese später wieder auslesen zu lassen. Wenn ich nun IniWrite nutze um den Pfad zu schreiben, wird einfach nichts in die Ini-Datei eingetragen. Wenn ich aber einen Pfad nur zum Ordner mit FileSelectFolder angebe, dann wird dieser ohne Probleme mit IniWrite geschrieben. Ich kann das ganze einfach nicht nachvollziehen. Ich sehe keinen Fehler, ich kann mir den Pfad auch anzeigen lassen, die Variable hat also den richtigen Inhalt.

    So wird die Datei ermittelt:

    [autoit]

    Func browse_citrix()
    $message = "Geben Sie den Pfad zur pn.exe an!"
    $var = FileOpenDialog($message, "C:\", "Datei (pn.exe)", 1 + 2)
    If @error Then
    MsgBox(4096,"","Keine Datei gewählt")
    Else
    GUICtrlSetData($pfad_citrix, $var)
    EndIf
    EndFunc

    [/autoit]

    Die Variable $pfad_cirtrix ist Global und kann anschließend auch ausgegeben werden.

    Den Pfad will ich dann wie folgt abspeichern:

    [autoit]

    Func einstellungen_speichern()
    IniWrite("Fernwartung.ini", "Einstellungen", "Citrix", GUICtrlRead($pfad_citrix))
    MsgBox(64,"Bestätigung","Ihre Einstellungen wurden gespeichert.")
    EndFunc

    [/autoit]

    Das funktioniert aber nicht! Kann mir einer sagen wieso?


    Gruß

    nasgul

  • Hi, ich gehe mal davon aus das du eine GUI verwendest? Dann klappt es bei mir so (kl. Test GUI):

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    Global $pfad_citrix
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 300, 20)
    $pfad_citrix = GUICtrlCreateLabel("", 0,0, 300, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    browse_citrix()
    MsgBox(0,'',GUICtrlRead($pfad_citrix))
    einstellungen_speichern()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func einstellungen_speichern()
    IniWrite("Fernwartung.ini", "Einstellungen", "Citrix", GUICtrlRead($pfad_citrix))
    MsgBox(64,"Bestätigung","Ihre Einstellungen wurden gespeichert.")
    EndFunc

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

    Func browse_citrix()
    $message = "Geben Sie den Pfad zur pn.exe an!"
    $var = FileOpenDialog($message, "C:\", "Datei (pn.exe)", 1 + 2)
    If @error Then
    MsgBox(4096,"","Keine Datei gewählt")
    Else
    MsgBox(0,'',$var)
    GUICtrlSetData($pfad_citrix, $var)
    EndIf
    EndFunc

    [/autoit]

    Ohne GUI:

    Spoiler anzeigen
    [autoit]


    Global $pfad_citrix

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

    browse_citrix()
    MsgBox(0,'',$pfad_citrix)
    einstellungen_speichern()

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

    Func einstellungen_speichern()
    IniWrite("Fernwartung.ini", "Einstellungen", "Citrix", $pfad_citrix)
    MsgBox(64,"Bestätigung","Ihre Einstellungen wurden gespeichert.")
    EndFunc

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

    Func browse_citrix()
    $message = "Geben Sie den Pfad zur pn.exe an!"
    $var = FileOpenDialog($message, "C:\", "Datei (pn.exe)", 1 + 2)
    If @error Then
    MsgBox(4096,"","Keine Datei gewählt")
    Else
    MsgBox(0,'',$var)
    $pfad_citrix = $var
    EndIf
    EndFunc

    [/autoit]

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • Hallo und danke für deine Mühe.

    Ja ich nutze ein GUI, aber dein Code funktioniert so bei mir auch nicht. Ich vermute so langsam das es an Vista liegen könnte. Ich werde das ganze wohl mal unter XP testen müssen.

    Wenn ich dies getan habe werde ich wieder hier reinschreiben.


    Gruß

    nasgul