Farbe Speichern in Ini

  • Hey Leute,
    wenn ich eine Farbe in einer Ini speichere, speichert es das 0x vorne dran nich mit. Und deshalb is die Farbe in der Ini dann nutzlos, weil sie ja nicht mehr stimmt. Wie kann ich das machen, dass das 0x auch vorne dran steht?! Hier is mein Script:

    Spoiler anzeigen
    [autoit]

    $farbe = 0x0055E6
    $wait = 100

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

    Opt('PixelCoordMode', 2)
    Opt('MouseCoordMode', 2)

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

    HotKeySet ("{F5}","Start")
    HotKeySet ("{ESC}","Ende")

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

    While 1
    Sleep (100)
    WEnd

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

    Func Ende ()
    Exit
    EndFunc

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

    Func Start ()
    $zafa = IniRead (@scriptdir&"\test.ini","Saves","Farbe",0)

    If $zafa = 0 Then
    IniWrite (@scriptdir&"\test.ini","Saves","Farbe",Hex ($farbe))
    Sleep ($wait)
    EndIf

    $zafa5 = IniRead (@scriptdir&"\test.ini","Saves","Farbe",0)
    $pix = PixelSearch (0,0,1000,1000,$zafa5)
    EndFunc

    [/autoit]
  • So geht's: :)

    Spoiler anzeigen
    [autoit]

    $farbe = "0x0055E6"
    $wait = 100

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

    Opt('PixelCoordMode', 2)
    Opt('MouseCoordMode', 2)

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

    HotKeySet ("{F5}","Start")
    HotKeySet ("{ESC}","Ende")

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

    While 1
    Sleep (100)
    WEnd

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

    Func Ende ()
    Exit
    EndFunc

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

    Func Start ()
    $zafa = IniRead (@scriptdir&"\test.ini","Saves","Farbe",0)

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

    If $zafa = 0 Then
    IniWrite (@scriptdir&"\test.ini","Saves","Farbe",Stringtrimleft(hex($farbe),2))
    Sleep ($wait)
    EndIf

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

    $zafa5 = IniRead (@scriptdir&"\test.ini","Saves","Farbe",0)
    $pix = PixelSearch (0,0,1000,1000,$zafa5)
    EndFunc

    [/autoit]

    Edit: ups, du wolltest ja, DASS das "0x" dransteht^^ naja du musst die farbe dann einfach als string angeben. :)

    So ist es nun MIT "0x":

    Spoiler anzeigen
    [autoit]

    $farbe = "0x0055E6"
    $wait = 100

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

    Opt('PixelCoordMode', 2)
    Opt('MouseCoordMode', 2)

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

    HotKeySet ("{F5}","Start")
    HotKeySet ("{ESC}","Ende")

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

    While 1
    Sleep (100)
    WEnd

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

    Func Ende ()
    Exit
    EndFunc

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

    Func Start ()
    $zafa = IniRead (@scriptdir&"\test.ini","Saves","Farbe",0)

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

    If $zafa = 0 Then
    IniWrite (@scriptdir&"\test.ini","Saves","Farbe",$farbe)
    Sleep ($wait)
    EndIf

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

    $zafa5 = IniRead (@scriptdir&"\test.ini","Saves","Farbe",0)
    $pix = PixelSearch (0,0,1000,1000,$zafa5)
    EndFunc

    [/autoit]

    und falls es nicht als string von irgendwo zurückgegeben wird:

    Spoiler anzeigen
    [autoit]

    $farbe = 0x0055E6
    $wait = 100

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

    Opt('PixelCoordMode', 2)
    Opt('MouseCoordMode', 2)

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

    HotKeySet ("{F5}","Start")
    HotKeySet ("{ESC}","Ende")

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

    While 1
    Sleep (100)
    WEnd

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

    Func Ende ()
    Exit
    EndFunc

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

    Func Start ()
    $zafa = IniRead (@scriptdir&"\test.ini","Saves","Farbe",0)

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

    If $zafa = 0 Then
    IniWrite (@scriptdir&"\test.ini","Saves","Farbe","0x"&Stringtrimleft(Hex($farbe),2))
    Sleep ($wait)
    EndIf

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

    $zafa5 = IniRead (@scriptdir&"\test.ini","Saves","Farbe",0)
    $pix = PixelSearch (0,0,1000,1000,$zafa5)
    EndFunc

    [/autoit]

    3 Mal editiert, zuletzt von srules (24. Mai 2009 um 02:39)

    • Offizieller Beitrag

    Hallo,

    die Funktion Hex gibt immer nur den Wert ohne "0x" zurück!
    Du kannst aber einfach "0x" davor schreiben.

    Spoiler anzeigen
    [autoit]

    $farbe = 0x0055E6
    $wait = 100

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

    Opt('PixelCoordMode', 2)
    Opt('MouseCoordMode', 2)

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

    HotKeySet("{F5}", "Start")
    HotKeySet("{ESC}", "Ende")

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

    While 1
    Sleep(100)
    WEnd

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

    Func Ende()
    Exit
    EndFunc ;==>Ende

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

    Func Start()
    $zafa = IniRead(@ScriptDir & "\test.ini", "Saves", "Farbe", 0)

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

    If $zafa = 0 Then
    IniWrite(@ScriptDir & "\test.ini", "Saves", "Farbe", "0x" & Hex($farbe, 6))
    Sleep($wait)
    EndIf

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

    $zafa5 = IniRead(@ScriptDir & "\test.ini", "Saves", "Farbe", 0)
    $pix = PixelSearch(0, 0, 1000, 1000, $zafa5)
    EndFunc ;==>Start

    [/autoit]

    @srules, StringTrimLeft sollte man nicht unbedingt bei Farbwerten machen, da sonst immer der Rotwert gelöscht wird.