iniwrite - weigert sich

  • hallo

    wann ich iniwirte verwende dann schreibt er es gar nicht dann kommt danach wie programmiert das "nichts" ausgewählt wurde :( bzw gefunden und wann ich die ini öffne steht wie beim erstellen 0 und 0 dort :(
    wo liegt bei mir der fehler hab schon mehr mit ini gemacht aber das ist mir neu das es nicht geht :(

    weiß nicht was ich mehr dazu sagen soll da ich ja nicht mal weiß wo genau der fehler ist bzw wie ich den fehler mehr beschreiben kann als das er es einfach nicht abändert

    (File löschen bei programmneustart jetzt mal unten noch abgeschaltet mit ; am anfang der zeile)

    lg christian


    Spoiler anzeigen
    [autoit]


    #Include <File.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    ;----------------------------------------------------------------------------------------------------
    $Sender_01 = "Sender1"
    $Sender_02 = "Sender2"
    $Sender_03 = "Sender3"
    $Sender_04 = "Sender4"
    $Sender_05 = "Sender5"

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

    $Aktion01 = "TV-Sender"

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

    $INI_Pfad_01 = @HomeDrive & "\TV-Sender.ini"
    $INI_Section_01 = "Daten"
    $INI_Schluessel_01 = "Aktion"
    $INI_Schluessel_02 = "Sender"
    ;----------------------------------------------------------------------------------------------------
    Global $Sender, $Aktion
    Global $GUI_01_CreateCheckbox_01, $GUI_01_CreateCheckbox_02, $GUI_01_CreateCheckbox_03, $GUI_01_CreateCheckbox_04, $GUI_01_CreateCheckbox_05
    Global $GUI_01_CreateCheckbox_01
    Global $GUI_01_ReadCheckbox_01, $GUI_01_ReadCheckbox_02, $GUI_01_ReadCheckbox_03, $GUI_01_ReadCheckbox_04, $GUI_01_ReadCheckbox_05
    Global $GUI_01_ReadCheckbox_01

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

    ;----------------------------------------------------------------------------------------------------
    ;----------------------------------------------------------------------------------------------------
    ;----------------------------------------------------------------------------------------------------
    ;----------------------------------------------------------------------------------------------------

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

    If @Compiled = 1 Then
    Else
    $MsgBox_01 = MsgBox (4 + 64 + 262144, "Fehler", "Das Programm sollte eine Compiliert datei sein (*.exe)" & @CRLF & "Es könnten sonst Programmfehler auftreten!" & @CRLF & "Programm trozdem Starten?")
    _Compiled_01 ()
    EndIf

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

    Func _Compiled_01 ()
    If $MsgBox_01 = 7 Then
    Exit
    EndIf
    If $MsgBox_01 = 6 Then
    Else
    Exit
    EndIf
    EndFunc
    ;----------------------------------------------------------------------------------------------------
    $GUI_01 = GUICreate ("Aktion - Sender", 515, 260, -1, -1)
    $GUI_01_CreateCheckbox_01 = GUICtrlCreateCheckbox ($Sender_01, 260, 5, 250, 20)
    $GUI_01_CreateCheckbox_02 = GUICtrlCreateCheckbox ($Sender_02, 260, 30, 250, 20)
    $GUI_01_CreateCheckbox_03 = GUICtrlCreateCheckbox ($Sender_03, 260, 55, 250, 20)
    $GUI_01_CreateCheckbox_04 = GUICtrlCreateCheckbox ($Sender_04, 260, 80, 250, 20)
    $GUI_01_CreateCheckbox_05 = GUICtrlCreateCheckbox ($Sender_05, 260, 105, 250, 20)
    $GUI_01_CreateCheckbox_01 = GUICtrlCreateCheckbox ($Aktion01, 5, 5, 250, 20)
    $GUI_01_Button_01 = GUICtrlCreateButton ("Exit", 5, 215, 250, 40)
    $GUI_01_Button_02 = GUICtrlCreateButton ("Weiter", 260, 215, 250, 40)
    GUISetState (@SW_SHOW, $GUI_01)
    ;----------------------------------------------------------------------------------------------------
    _While_01 ()

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

    Func _While_01 ()
    While True
    Switch GUIGetMsg ()
    Case $GUI_01_Button_01
    Exit

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

    Case $GUI_01_Button_02
    _Start_01 ()
    MsgBox (64, "ENDE", "ENDE Script")
    ExitLoop

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

    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd
    EndFunc
    ;----------------------------------------------------------------------------------------------------
    Func _Start_01 ()
    _INI_01 ()
    _GUIRead_01 ()
    _IF_01_01 ()
    _IF_01_02 ()
    _INI_Read_01 ()
    _INI_02 ()
    EndFunc

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

    Func _INI_01 ()
    _FileCreate ($INI_Pfad_01)
    FileSetAttrib ($INI_Pfad_01, "+H")
    IniWriteSection ($INI_Pfad_01, $INI_Section_01, "", "")
    IniWrite ($INI_Pfad_01, $INI_Section_01, $INI_Schluessel_01, "0")
    IniWrite ($INI_Pfad_01, $INI_Section_01, $INI_Schluessel_02, "0")
    EndFunc

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

    Func _GUIRead_01 ()
    $GUI_01_ReadCheckbox_01 = GUICtrlRead ($GUI_01_CreateCheckbox_01)
    $GUI_01_ReadCheckbox_01 = GUICtrlRead ($GUI_01_CreateCheckbox_02)
    $GUI_01_ReadCheckbox_01 = GUICtrlRead ($GUI_01_CreateCheckbox_03)
    $GUI_01_ReadCheckbox_01 = GUICtrlRead ($GUI_01_CreateCheckbox_04)
    $GUI_01_ReadCheckbox_01 = GUICtrlRead ($GUI_01_CreateCheckbox_05)
    $GUI_01_ReadCheckbox_01 = GUICtrlRead ($GUI_01_CreateCheckbox_01)
    EndFunc

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

    Func _IF_01_01 ()
    If $GUI_01_ReadCheckbox_01 = 1 Then
    _01 ()
    IniWrite ($INI_Pfad_01, $INI_Section_01, $INI_Schluessel_02, $Sender_01)
    EndIf
    EndFunc

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

    Func _IF_01_02 ()
    If $GUI_01_ReadCheckbox_02 = 1 Then
    _01 ()
    IniWrite ($INI_Pfad_01, $INI_Section_01, $INI_Schluessel_02, $Sender_02)
    EndIf
    EndFunc

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

    Func _01 ()
    $Sender = IniRead ($INI_Pfad_01, $INI_Section_01, $INI_Schluessel_01, "1")
    If $Sender = 1 Then
    MsgBox (16 + 262144, "Fehler", "Es gab ein INI Fehler." & @CRLF & "Das Programm wird neugestartet!")
    Run (@ScriptFullPath)
    _Exit_01 ()
    EndIf

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

    If $Sender = Not 0 Then
    MsgBox (16 + 262144, "Fehler", "1.) Es ergab ein Problem mit der Auswahl!" & @CRLF & "2.) Es wurde mehr als eines Ausgewählt!" & @CRLF & "Das Programm wird neugestartet!")
    Run (@ScriptFullPath)
    _Exit_01 ()
    EndIf
    EndFunc

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

    Func _INI_Read_01 ()
    $INI_Read_01 = IniRead ($INI_Pfad_01, $INI_Section_01, $INI_Schluessel_01, "2")
    $INI_Read_02 = IniRead ($INI_Pfad_01, $INI_Section_01, $INI_Schluessel_02, "2")

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

    If $INI_Read_01 = 2 Then
    MsgBox (16 + 262144, "Fehler", "Es gab ein INI Fehler." & @CRLF & "Programm wird neugestartet!")
    Run (@ScriptFullPath)
    _Exit_01 ()
    EndIf
    If $INI_Read_02 = 2 Then
    MsgBox (16 + 262144, "Fehler", "Es gab ein INI Fehler." & @CRLF & "Programm wird neugestartet!")
    Run (@ScriptFullPath)
    _Exit_01 ()
    EndIf

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

    If $INI_Read_01 = 0 Or $INI_Read_01 = 1 Then
    MsgBox (16 + 262144, "Fehler", "Es wurde bei der Aktion keine Auswahl getroffen oder es gab ein Fehler!" & @CRLF & "Programm wird neugestartet!")
    Run (@ScriptFullPath)
    _Exit_01 ()
    EndIf
    If $INI_Read_02 = 0 Or $INI_Read_02 = 1 Then
    MsgBox (16 + 262144, "Fehler", "Es wurde bei der Sender keine Auswahl getroffen oder es gab ein Fehler!" & @CRLF & "Programm wird neugestartet!")
    Run (@ScriptFullPath)
    _Exit_01 ()
    EndIf
    EndFunc

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

    Func _INI_02 ()
    ;FileDelete ($INI_Pfad_01)
    EndFunc

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

    Func _Exit_01 ()
    _INI_02 ()
    Exit
    EndFunc

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

    ;----------------------------------------------------------------------------------------------------

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

    ;PC-PowerCinema Starten, Senderöffnen oder Radiosenderöffnen

    [/autoit]

    2 Mal editiert, zuletzt von SchrotterCh (6. April 2010 um 00:44)

  • Wann ich dort Else ein füge dann geht es zum iniwrite aber wann ich dann mehr also 1und2 auswähle sollte er sagen es wurde schon 1es ausgewählt macht er aber ned :( also das geht doch nicht :(
    woran liegt mein fehler?


    Spoiler anzeigen
    [autoit]


    If $Sender = Not 0 Then
    Else
    MsgBox (16 + 262144, "Fehler", "1.) Es ergab ein Problem mit der Auswahl!" & @CRLF & "2.) Es wurde mehr als eines Ausgewählt!" & @CRLF & "Das Programm wird neugestartet!")
    Run (@ScriptFullPath)
    _Exit_01 ()
    EndIf

    [/autoit]
  • Hallo SchrotterCh,

    ...
    aber wann ich dann mehr also 1und2 auswähle sollte er sagen es wurde schon 1es ausgewählt
    ...

    wenn der DAU nur eines auswählen darf, warum nimmst du dann nicht Radio-Controls oder eine ComboBox,
    da wird das ganze viel einfacher. Hier einmal ein Beispiel-Skript zum Auswählen einer URL die geöffnet werden soll:

    Spoiler anzeigen
    [autoit]

    ;#include <GuiComboBox.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>

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

    #include <File.au3>

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

    Const $sElect = "bitte eine URL auswählen"
    Global $URL

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

    If Not FileExists(@ScriptDir & "\URL.INI") Then
    $sData = "AutoIt=http://www.autoit.de" & @LF & "Der Thread=http://www.autoit.de/index.php?page=Thread&postID=122400#post122400" & @LF & "AutoIt V3=http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe"
    IniWriteSection(@ScriptDir & "\URL.INI", "URLs", $sData)
    EndIf

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

    $hGui = GUICreate("Combobox mit INI ", 300, 160, 302, 218)
    $hcboProg = GUICtrlCreateCombo($sElect, 8, 8, 200, 25)
    $hbtnAdd = GUICtrlCreateButton("&Hinzufügen", 213, 8)
    $hlblURL = GUICtrlCreateLabel("", 8, 35, 200, 50)
    $list1 = IniReadSection(@ScriptDir & "\URL.INI", "URLs")
    ConsoleWrite($list1 & @CRLF)
    For $i = 1 To $list1[0][0]
    GUICtrlSetData($hcboProg, $list1[$i][0])
    Next
    $hbtnOpen = GUICtrlCreateButton("&Öffnen", 8, 85)
    GUICtrlSetState($hbtnOpen, $GUI_DISABLE)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hbtnAdd
    $write1 = InputBox("URL", "Bitte eine gülzige eingeben")
    If $write1 <> "" Then
    $write2 = InputBox("URL verwalten unter", "Bitte Kurzbegriff eingeben")
    If $write2 <> "" Then IniWrite(@ScriptDir & "\URL.INI", "URLs", $write2, $write1)
    GUICtrlSetData($hcboProg, $write2, $write2)
    EndIf
    show_Selection()
    Case $hcboProg
    show_Selection()
    Case $hbtnOpen
    ;hier $URL öffnen
    ConsoleWrite($URL & @CRLF)
    EndSwitch
    WEnd

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

    Func show_Selection()
    If GUICtrlRead($hcboProg) = $sElect Then
    GUICtrlSetState($hbtnOpen, $GUI_DISABLE)
    GUICtrlSetData($hlblURL, "")
    Else
    GUICtrlSetState($hbtnOpen, $GUI_ENABLE)
    $Prog = GUICtrlRead($hcboProg)
    ConsoleWrite("ausgewählt: " & $Prog & @CRLF)
    $URL = IniRead(@ScriptDir & "\URL.INI", "URLs", $Prog, "")
    GUICtrlSetData($hlblURL, $URL)
    EndIf
    EndFunc ;==>show_Selection

    [/autoit]

    Prinzip ist ja das gleiche,

    mfg (Auto)Bert

    mfg (Auto)Bert

  • danke schaut sogar noch besser aus :D
    weil 2radio (verschiedene gehen ja nicht)
    :D danke

  • WOW script läuft soweit bei der auswahl und es funkt 1A :D danke für den tipp schaut so einfach VIEL besser aus :D verwende das ab jetzt öfters :D

  • hier das bearbeitete script (funktioniert)

    Spoiler anzeigen
    [autoit]

    ;----------------------------------------------------------------------------------------------------
    ;----------------------------------------------------------------------------------------------------
    ;----------------------------------------------------------------------------------------------------
    ;----------------------------------------------------------------------------------------------------
    ;Teil01 (Allgemein)
    ;----------------------------------------------------------------------------------------------------
    ;----------------------------------------------------------------------------------------------------
    Opt("CaretCoordMode", 1)
    Opt("ExpandEnvStrings", 0)
    Opt("ExpandVarStrings", 0)
    Opt("GUICloseOnESC", 1)
    Opt("GUICoordMode", 1)
    Opt("GUIDataSeparatorChar", "|")
    Opt("GUIOnEventMode", 0)
    Opt("GUIResizeMode", 0)
    Opt("GUIEventOptions", 0)
    Opt("MouseClickDelay", 10)
    Opt("MouseClickDownDelay", 10)
    Opt("MouseClickDragDelay", 250)
    Opt("MouseCoordMode", 1)
    Opt("MustDeclareVars", 0)
    Opt("PixelCoordMode", 1)
    Opt("SendAttachMode", 0)
    Opt("SendCapslockMode", 1)
    Opt("SendKeyDelay", 5)
    Opt("SendKeyDownDelay", 1)
    Opt("TCPTimeout", 100)
    Opt("TrayAutoPause", 0)
    Opt("TrayIconDebug", 1)
    Opt("TrayIconHide", 0)
    Opt("TrayMenuMode", 0)
    Opt("TrayOnEventMode", 0)
    Opt("WinDetectHiddenText", 0)
    Opt("WinSearchChildren", 1)
    Opt("WinTextMatchMode", 1)
    Opt("WinTitleMatchMode", 1)
    Opt("WinWaitDelay", 250)
    ;----------------------------------------------------------------------------------------------------
    #include <ComboConstants.au3>
    #Include <File.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    ;----------------------------------------------------------------------------------------------------
    $Aktion_01 = "TV"

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

    $Sender_01 = "VOX"
    $Sender_02 = "NTV"
    $Sender_03 = "ORF1"
    $Sender_04 = "ZDF"
    $Sender_05 = "SuperRTL"
    ;----------------------------------------------------------------------------------------------------
    Global $GUI_01_CreateCombo_Sender_01, $GUI_01_CreateCombo_Sender_02
    Global $GUI_01_Read_01, $GUI_01_Read_02

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

    ;----------------------------------------------------------------------------------------------------
    ;----------------------------------------------------------------------------------------------------
    ;----------------------------------------------------------------------------------------------------
    ;----------------------------------------------------------------------------------------------------
    ;Teil02 (Programm)
    ;----------------------------------------------------------------------------------------------------
    ;----------------------------------------------------------------------------------------------------
    If @Compiled = 1 Then
    Else
    $MsgBox_01 = MsgBox (4 + 64 + 262144, "Fehler", "Das Programm sollte eine Compiliert datei sein (*.exe)" & @CRLF & "Es könnten sonst Programmfehler auftreten!" & @CRLF & "Programm trozdem Starten?")
    _Compiled_01 ()
    EndIf

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

    Func _Compiled_01 ()
    If $MsgBox_01 = 7 Then
    Exit
    EndIf
    If $MsgBox_01 = 6 Then
    Else
    Exit
    EndIf
    EndFunc
    ;----------------------------------------------------------------------------------------------------
    $GUI_01 = GUICreate ("PowerCinema", 515, 136, -1, -1)
    GUICtrlCreateLabel ("Aktion:", 5, 5, 505, 13)
    GUICtrlCreateLabel ("Auflösung:", 5, 48, 505, 13)
    $GUI_01_CreateCombo_Sender_01 = GUICtrlCreateCombo ("", 5, 23, 505, 20, 0x0003)
    $GUI_01_CreateCombo_Sender_02 = GUICtrlCreateCombo ("", 5, 66, 505, 20, 0x0003)
    $GUI_01_Button_01 = GUICtrlCreateButton ("Exit", 5, 91, 250, 40)
    $GUI_01_Button_02 = GUICtrlCreateButton ("Weiter", 260, 91, 250, 40)
    GUICtrlSetData ($GUI_01_CreateCombo_Sender_01, $Aktion_01)
    GUICtrlSetData ($GUI_01_CreateCombo_Sender_02, $Sender_01 & "|" & $Sender_02 & "|" & $Sender_03 & "|" & $Sender_04 & "|" & $Sender_05)
    GUISetState (@SW_SHOW, $GUI_01)
    ;----------------------------------------------------------------------------------------------------
    _While_01 ()

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

    Func _While_01 ()
    While True
    Switch GUIGetMsg ()
    Case $GUI_01_Button_01
    Exit

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

    Case $GUI_01_Button_02
    _Start_01 ()
    Exit

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

    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd
    EndFunc
    ;----------------------------------------------------------------------------------------------------
    Func _Start_01 ()
    $GUI_01_Read_01 = GUICtrlRead ($GUI_01_CreateCombo_Sender_01)
    $GUI_01_Read_02 = GUICtrlRead ($GUI_01_CreateCombo_Sender_02)
    MsgBox (0, "Aktion:", $GUI_01_Read_01)
    MsgBox (0, "Sender:", $GUI_01_Read_02)
    EndFunc

    [/autoit]
  • danke schaut sogar noch besser aus :D
    weil 2radio (verschiedene gehen ja nicht)
    :D danke

    würde auch gehen, man muss sie nur jeweils am Anfang und am Ende mit guictrlcreategroup trennen.
    Die Lösung mit ComboBox finde ich aber auch die bessere,

    mfg (Auto)Bert

  • das mit group hab ich versucht (nicht jetzt) und habs nicht herbekommen hat einfach nicht gemacht was ich wollte aber ich lass das jetzt eh so weil wann ich dann mehr sender habe dann wird das ne längere liste und so bleibt das gui auch kleiner ^^