Kann mir mal ein profi helfen?(dringend!!)

  • hey
    ich hab ein kleines programm gemacht. das drückt immer die entertaste in einem bestimmten rythmus. ich will dass die sekunden, die zwischen dem drücken in eine ini datei schreiben. und auch die start und stop hotkeys will ich in die ini reinschreiben
    Hier der Code:

    die settings.ini soll z.B so ausschauen:

    Code
    [Main]
    Seconds=1500
    HotkeyStart={F3}
    HotkeyStop={F4}

    ich hoffe, dass mir jemand helfen kann


    mfg #lukas

    2 Mal editiert, zuletzt von lukas1130 (7. Mai 2009 um 20:04)

  • Ich denke mal, dass die Tasten beim Beenden des Programmes gespeichert werden sollen. Dazu musst du eine Funktion festlegen, die ausgeführt wird, wenn das Script beendet wird. Das machst du so:

    [autoit]

    Opt( "OnExitFunc", "_exit" )

    [/autoit]


    Als nächstest machst du genau die Funktion _exit() und lässt in ihr die 3 Werte mit INIWrite() abspeichern:

    [autoit]

    Func _exit()
    IniWrite( "settings.ini", "Main", "Seconds", $Seconds )
    IniWrite( "settings.ini", "Main", "HotkeyStart", $HotkeyStart )
    IniWrite( "settings.ini", "Main", "HotkeyStop", $Hotkeystop )
    EndFunc

    [/autoit]


    Aber abspeichern bringt dir nichts, wenn du es nicht auch auslesen kannst:

    [autoit]

    $Seconds = Int(IniRead( "settings.ini", "Main", "Seconds", 1500 )) ;Das Int() sorgt dafür, dass der Wert aus der INI, der als String gespeichert wird, als Integer gespeichert wird, da Sleep mit Integer arbeitet.
    $HotkeyStart = IniRead( "settings.ini", "Main", "HotkeyStart", "{F3}" )
    $Hotkeystop = IniRead( "settings.ini", "Main", "HotkeyStop", "{F4}" )

    [/autoit]


    Die Variablen musst du natürlich noch anpassen. Ist es das, was du wolltest?

  • omg. das prog schreibt IMMER (egal was ich in die textboxen schreibe) in die ini:

    Code
    [Main]
    Seconds=4
    HotkeyStart=6
    HotkeyStop=8

    .... kann mir wer weiterhelfen.
    der ganze code schaut jetzt so aus:

    btw das is nur ein teil meines programmes. das ist nur das settings fenster. im vollen script hab ich eh das iniread und das geht


    mfg #lukas

    2 Mal editiert, zuletzt von lukas1130 (7. Mai 2009 um 19:38)

  • Hier ist der andere teil des programms


    falls ihr den braucht......
    mfg #lukas

  • Ich habe nicht mehr genug Zeit, es zu korrigieren, aber in deinen Variablen hast du nur dir ID des GUIControls gespeichert. Du musst es mit GUICtrlRead() auslesen. Das geht so:

    [autoit]

    $Seconds_ini = GUICtrlRead( $senconds )

    [/autoit]


    Dann speicherst du anstatt $Seconds jetzt $Seconds_ini in deine INI und schwupps, es geht... hoffentlich...

    • Offizieller Beitrag

    Zu deinem 1. Scriptteil :
    Du solltest den Inahlt des Controls speichern und nicht die ControlID.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=form2.kxf\desktop\form2.kxf
    $Form2 = GUICreate("Settings", 338, 185, 303, 209)
    $Label1 = GUICtrlCreateLabel("Seconds between clicking ENTER:", 8, 32, 213, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $seconds = GUICtrlCreateInput("seconds", 224, 32, 73, 21)
    $Label2 = GUICtrlCreateLabel("Hotkey for start the program:", 8, 64, 171, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $startbox = GUICtrlCreateInput("textofboxstart", 224, 64, 73, 21)
    $Label3 = GUICtrlCreateLabel("Hotkey for stop the program:", 8, 96, 172, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $stopbox = GUICtrlCreateInput("textofboxstop", 224, 96, 73, 21)
    $Label4 = GUICtrlCreateLabel("Hotkey for close the program:", 8, 128, 179, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $Input1 = GUICtrlCreateInput("ESC", 224, 128, 73, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Label5 = GUICtrlCreateLabel("SETTINGS", 136, 0, 84, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "Perpetua Titling MT")
    $Button1 = GUICtrlCreateButton("Save", 64, 152, 97, 25, 0)
    $Button2 = GUICtrlCreateButton("Cancel", 176, 152, 105, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    Case $Label1
    Case $Label5
    Case $Button2
    Exit
    Case $Button1
    IniWrite("settings.ini", "Main", "Seconds", GUICtrlRead($seconds))
    IniWrite("settings.ini", "Main", "HotkeyStart", GUICtrlRead($startbox))
    IniWrite("settings.ini", "Main", "HotkeyStop", GUICtrlRead($stopbox))
    ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK, Icon=Info
    MsgBox(64, "Save", "Settings have been saved sucessful")
    EndSwitch
    WEnd

    [/autoit]
  • thx es funzt du bist der beste (beide^^. habt beide fast gleichzeitig gepostet)
    thx an euch beide
    xD
    mfg #lukas