Dateipfad in .ini ablegen

  • Hallo zusammen,

    ich komme bei folgendem Code nicht weiter

    Es taucht die MessageBox "Einstellungen gespeichert!" auf, jedoch steht in der .ini dann "Fehler beim Lesen der Setup.ini!". Hat jemand eine Idee?


    #include <MsgBoxConstants.au3>

    Local $PowerPointPath = IniRead("Setups.ini", "path", "pp", "Fehler beim Lesen der Setup.ini!")

    $PowerPointPath = FileOpenDialog("Datei auswählen", @ProgramFilesDir & "\", "All (*.exe*)")

    SpeichernEinstellungen($PowerPointPath)


    Func SpeichernEinstellungen($PPP)


    Local $pp = IniWrite("Setups.ini", "path", "PP", $PPP)


    If $pp = 1 Then
    MsgBox ( $MB_ICONINFORMATION, "Speichern", "Einstellungen gespeichert!")
    Else
    MsgBox ( $MB_ICONERROR, "Error", "Speichern nicht erfolgreich!")
    EndIf


    EndFunc

  • Tja die Setups.ini konnte halt nicht korrekt gelesen werden.

    Mögliche Fehlerquellen:

    • Falscher Dateiname ("Setups.ini" vs. "Setup.ini")
    • Kein Zugriffsrechte auf die Datei
    • Falscher Pfad z.B. wenn das Working-Directory ein anderes als das Skriptverzeichnis ist.
    • Section oder Schlüssel existieren in der Ini-Datei nicht.
    • Offizieller Beitrag

    Das lesen der Inidatei muss ja fehlschlagen.
    FileOpenDialog ändert (bei Erfolg) das @WorkingDir. Die Inidatei wird also im ausgewählten Verzeichnis gespeichert.
    Und da Du bei der Inidatei keinen Pfad angegeben hast, wird nur im @ScriptDir (bei Programmstart ist das das @WorkingDir) danach gesucht.
    Beim lesen/schreiben der Inidatei immer den ganzen Pfad angeben: IniRead(@ScriptDir & "\Setups.ini", ...)