filewrite

  • tach leutz,

    hab folgendes problem:

    ich wollte bestimmte variablen dauerhaft speichern (auch wenn das script beendet wird +wieder gestartet wird, ..dann immer noch da)

    dazu hab ich jetz ne externe au3 file gemacht in der einfach nur steht zb:

    $blabla = 'weihnachtsmann'

    ..dann hab ich in mein script nun diese au3 inluded
    ....klappt auch alles wunderbar, wenn ich nun allerdings das script compiliere und erst als exe ausführe..dann ändert er zwar den au3 zusatz, zb jetzt:

    $blabla = 'helferlein'

    allerdings nimmt das eigentlich script dann beim neustarten keine rücksicht drauf, sondern nimmt den alten wert: 'wihnachtsmann'

    weiß jemand ne lösung??

  • hi,

    ich würde die daten in eine .ini-datei ablegen.
    mit der .au3 nach dem kompilieren kann das leider nicht gehen.

    vielleicht haben andere forumsteilnehmer noch eine andere lösung.

    gruss exberliner

  • Du könntest die Variablen auch in einen selbst erstellten Zweig in die Registry schreiben.
    Das ist eigendlich genauso einfach wie mit einer INI Datei!

    Oder Du erstellst "echte" Systemvariablen.
    Es gibt da schon einige Möglichkeiten
    Je nach dem ob du Die nach einem Rechnerstart noch brauchst oder nicht....

    Mit INI Dateien ist es warscheinlich am "saubersten".

    Gruß
    Wolke

  • alles klar, -vielen dank.

    mit der ini hört dich schon ganz gut an, möchte die variablen nach dem neustart aber auf jeden fall behalten haben.. aber das müsste ja dann funzen.

    ansonsten würd ich noch ganz gerne wissen, wie ich in der ini nen zeilenumbruch bewirke (mit filewrite).. {ENTER} geht ja nich bei filewrite, soweit ich das sehen konnte..

    danke nochma

    • Offizieller Beitrag

    Hallo!

    Für die Bearbeitung von INI-Dateien gibt es spezielle Befehle (IniDelete, IniRead, IniWrite, IniReadSection, IniReadSectionNames, IniRenameSection)!

    Zeilenumbrüche kann man so in Dateien schreiben!

    [autoit]

    FileWrite($file, @CRLF)

    [/autoit]
  • mit der .ini funzts auch nur teilweis, er schreibt brav den wert rein, aber die .exe interessiert sich reichlich wenig für den neuen wert, wenn sie neu startet!

    ich zeich euch jetz einfach ma des script, dann könnter mir vielleicht besser helfen, vielleicht mach ichs ja auch viel zu kompliziert.. :

    Spoiler anzeigen

    tasting.au3

    [autoit]


    #cs************************************************************
    author: darksideofsanta
    autoitverion: 3.11(beta)
    scriptversion: 0.1
    description: tasting in tasting out
    #ce************************************************************

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

    #include <Array.au3>
    #include <GUIConstants.au3>
    #include<keys.ini>

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

    ;The following hotkeys cannot be set:

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

    ;Ctrl+Alt+Delete ==It is reserved by Windows
    ;F12 ==It is also reserved by Windows, according to its API.
    ;NumPad's Enter Key ==Instead, use {Enter} which captures both Enter keys on the keyboard.
    ;Win+B,D,E,F,L,M,R,U; and Win+Shift+M ==These are built-in Windows shortcuts. Note: Win+B and Win+L might only be reserved on Windows XP and above.
    ;Alt, Ctrl, Shift, Win ==These are the modifier keys themselves!
    ;Other ==Any global hotkeys a user has defined using third-party software, any combos of two or more "base keys" such as '{F1}{F2}', and any keys of the form '{LALT}' or '{ALTDOWN}'.

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

    GUICreate("Tasting",-1,-1,-1,-1,$WS_OVERLAPPEDWINDOW)

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

    guictrlcreatelabel ("Tastenkombinationen", 10,10,240,20)
    guictrlcreatelabel ("[STRG: ^] [ALT: !] [SHIFT: +] [WIN: #]", 10,30,240,20)
    guictrlcreatelabel ("numpad 1", 10,70,240,20)
    $input1 = GUICtrlCreateInput ($num1,10,90,180,20)
    guictrlcreatelabel ("numpad 2", 210,70,240,20)
    $input2 = GUICtrlCreateInput ($num2,210,90,180,20)
    guictrlcreatelabel ("numpad 3", 10,120,240,20)
    $input3 = GUICtrlCreateInput ($num3,10,140,180,20)
    guictrlcreatelabel ("numpad 4", 210,120,240,20)
    $input4 = GUICtrlCreateInput ($num4,210,140,180,20)
    guictrlcreatelabel ("numpad 5", 10,170,240,20)
    $input5 = GUICtrlCreateInput ($num5,10,190,180,20)
    guictrlcreatelabel ("numpad 6", 210,170,240,20)
    $input6 = GUICtrlCreateInput ($num6,210,190,180,20)
    guictrlcreatelabel ("numpad 7", 10,220,240,20)
    $input7 = GUICtrlCreateInput ($num7,10,240,180,20)
    guictrlcreatelabel ("numpad 8", 210,220,240,20)
    $input8 = GUICtrlCreateInput ($num8,210,240,180,20)
    guictrlcreatelabel ("numpad 9", 10,270,240,20)
    $input9 = GUICtrlCreateInput ($num9,10,290,180,20)
    guictrlcreatelabel ("numpad 0", 210,270,240,20)
    $input0 = GUICtrlCreateInput ($num0,210,290,180,20)

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

    $hide = GUICtrlCreateCheckbox("hide trayicon", 54,330,100,20)

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

    $button = guictrlcreatebutton ("ok", 10,330,40,20)

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

    GUISetState ()

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

    while 1
    $msg = guigetmsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $button
    $num1 = guictrlread($input1)
    $num2 = guictrlread($input2)
    $num3 = guictrlread($input3)
    $num4 = guictrlread($input4)
    $num5 = guictrlread($input5)
    $num6 = guictrlread($input6)
    $num7 = guictrlread($input7)
    $num8 = guictrlread($input8)
    $num9 = guictrlread($input9)
    $num0 = guictrlread($input0)
    $hidet = guictrlread($hide)
    FileOpen("keys.ini",2)
    sleep(100)
    FileWrite("keys.ini","$num1 ='" &$num1& "'"&@CRLF)
    FileWrite("keys.ini","$num2 ='" &$num2& "'"&@CRLF)
    FileWrite("keys.ini","$num3 ='" &$num3& "'"&@CRLF)
    FileWrite("keys.ini","$num4 ='" &$num4& "'"&@CRLF)
    FileWrite("keys.ini","$num5 ='" &$num5& "'"&@CRLF)
    FileWrite("keys.ini","$num6 ='" &$num6& "'"&@CRLF)
    FileWrite("keys.ini","$num7 ='" &$num7& "'"&@CRLF)
    FileWrite("keys.ini","$num8 ='" &$num8& "'"&@CRLF)
    FileWrite("keys.ini","$num9 ='" &$num9& "'"&@CRLF)
    FileWrite("keys.ini","$num0 ='" &$num0& "'")
    exitloop
    endselect
    wend
    GUISetState (@SW_HIDE)

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

    If $hidet=4 Then
    opt("trayiconhide",0)
    Else
    opt("trayiconhide",1)
    EndIf

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

    hotkeyset("{NUMPAD1}","n1")
    hotkeyset("{NUMPAD2}","n2")
    hotkeyset("{NUMPAD3}","n3")
    hotkeyset("{NUMPAD4}","n4")
    hotkeyset("{NUMPAD5}","n5")
    hotkeyset("{NUMPAD6}","n6")
    hotkeyset("{NUMPAD7}","n7")
    hotkeyset("{NUMPAD8}","n8")
    hotkeyset("{NUMPAD9}","n9")
    hotkeyset("{NUMPAD0}","n0")
    hotkeyset("^m","terminate")

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

    while 1
    sleep(42)
    wend

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

    func n1()
    send($num1)
    endfunc

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

    func n2()
    send($num2)
    endfunc

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

    func n3()
    send($num3)
    endfunc

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

    func n4()
    send($num4)
    endfunc

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

    func n5()
    send($num5)
    endfunc

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

    func n6()
    send($num6)
    endfunc

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

    func n7()
    send($num7)
    endfunc

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

    func n8()
    send($num8)
    endfunc

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

    func n9()
    send($num9)
    endfunc

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

    func n0()
    send($num0)
    endfunc

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

    func terminate()
    exit
    endfunc

    [/autoit]

    2 Mal editiert, zuletzt von darksideofsanta (24. September 2006 um 10:19)

  • cool, danke bernd

    kann ich nich mit #include "blub.ini" automatisch die darin dekl. variable benutzen.. muss ich da vielleicht dann iniread benutzen??

    • Offizieller Beitrag

    Hi!

    Mit Include geht das nicht! Das geht nur mit den Ini...-Befehlen!

  • kannst du mir das mit den ini befehlen genauer erklären? /den direkten befehl sagen oder ne idee wo ich die herkriege?