Variable ausführen oder so^^

  • Also ich will mal wieder was ganz spezielles :P naja vllt is es auch net wirklich speziell ^^
    Proggi = Programm ^^
    aber ich habe ein Proggi geschrieben das ein anderes Proggi updatet nun will ich das Update Proggi aber auch für andere Proggis benutzen und da hab ich mir gedacht wenn das Main_Proggi eine Datei erstellt wo es quasi reinschreibt welche Dateien geupdatet werden sollen und das Main_Proggi das Update_Proggi mit einem speziellen Pararmeter öffnet das es dann diese Datei ausliest und die entsprechenden Werte setzt... ==> funktioniert ja auch prima soweit :D
    Nun will ich aber der höheren Flexibilität wegen die komplette Funktion in die Datei Schreiben also quasi:
    test.txt:
    MsgBox(0, "TEST", "TEST")

    und in der Update.exe soll er dann einfach mit FileRead / FileReadLine das lesen:

    [autoit]

    If $CmdLine[0] > 0 Then
    Select
    Case $CmdLine[1] = "-p"
    $readfile = FileReadLine(@TempDir&"\test.txt", 1)
    ;UND JETZT?

    EndSelect
    EndIf

    [/autoit]

    Das eigentliche Problem ist jetzt wie führe ich diese Variable ($readfile) aus? einfach nur $readfile in eine Zeile schreiben macht er ja leider nicht...
    Gibts da irgendeine Möglichkeit???

    THX für die Hilfe

    MFG Fire

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

    5 Mal editiert, zuletzt von FireFlyer (12. Januar 2008 um 03:15)

  • wie was willst du denn da ausführen - filereadline gibt doch einen String zurück - damit kannst du doch arbeiten
    du hast jetzt einen Dateinamen, der geupdated werden soll und das kannste doch jetzt machen, verstehe nicht so ganz wo dein Problem ist

  • ja dieser String heisst: MsgBox(0, "TEST", "TEST")
    und er soll ihn einfach ausführen d.h. er soll den command (MsgBox(0, "TEST", "TEST")) ausführen in dem Script

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • To execute a single line of code, use the command:
    Run(@AutoItExe & ' /AutoIt3ExecuteLine "MsgBox(0, ''Hello World!'', ''Hi!'')"') The tray icon will not be displayed when using /AutoIt3ExecuteLine

    so kannst du einzelne Commands ausführen lassen

  • ähhm und wie soll des jetzt mit der variable gehn?....
    Weil er will das zwar ausführen aber er klaut mir alle Anführungszeichen und somit ERROR:
    Line 1:
    MsgBox(0,TEST,1ERROR
    Error: Missing seperator character after keyword

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Error: unable to parse line ^^

    hier mal zum rumtesten ^^

    [autoit]

    FileWriteLine("test.txt", 'MsgBox(0,"TEST", "Test")')
    $readfile = FileReadLine("test.txt", 1)
    Run(@AutoItExe & ' /AutoIt3ExecuteLine ' & $readfile)

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • hi,

    also programmkommandos variabel ausführen geht in autoit wohl definitiv nicht.
    ich erinner mich an die dbase zeiten, wo dies mit &&$readfile möglich war.
    vielleicht wird das ja mal in autoit implementiert ?

    gruss exberliner

  • das is ja echt doof :(
    Wär echt schön wenn das mal ginge... dann könnte das hauptprogramm quasi sein update Programm selbst mitschreiben und dieses wäre dadurch total flexibel.... aber gäbe bestimmt auch noch einige andere Anwendungsmöglichkeiten...

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • [autoit]


    $befehl = "MsgBox(0,'TEST', 'Test')"
    FileDelete("test.txt")
    FileWriteLine('test.txt', $befehl)
    $readfile = FileReadLine("test.txt", 1)
    $path = @AutoItExe & ' /AutoIt3ExecuteLine ' & '"' & $readfile & '"'
    Run($path)

    [/autoit]


    Und so? gehts so? ^^

    Zitat

    also programmkommandos variabel ausführen geht in autoit wohl definitiv nicht.


    Seit wann das denn o.ô

    Edit: Code ausgebessert

    Einmal editiert, zuletzt von Carsten8 (6. Januar 2008 um 17:17)

  • das geht bei dir????
    bei mir irgendwie net:
    Error: Error parsing function call.

    aber ihr könnts ja selbst ausprobieren... ;)

    also ich hab deinen code kopiert und bekomm en error

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • hi,
    was mir grad so einfällt. wie wäre es denn, wenn du verschiedene .au3 dateien variabel ausführst ? je nach programmfortschritt 1.au3 oder 2.au3. ist halt wieder coding angesagt.

    gruss exberliner

  • [autoit]

    FileWriteLine("test.txt", 'MsgBox(0, ''Hello World!'', ''blaasdfsdaf!'')')
    $readfile = FileReadLine("test.txt", 1)
    Run(@AutoItExe & ' /AutoIt3ExecuteLine '&'"'& $readfile & '"')

    [/autoit]

    gayt doch einwandfrei

  • aha aber nur wenn man in der test.txt alles mit 2 ' macht ... oder?

    ABER scheiss egal hauptsache es geht, DANKE DIR!!! :thumbup:

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • ähhm aber mit FileRead gehts net oder? :(

    ExBerliner
    ich hab mir das halt so gedacht: Wenn man nun ein Programm hat das z.B. verschiedene andere Dateien benötigt... z.B. dlls oder so schreibt man einfach in die neue version per FileWriteLine welche dateien denn nun kopiert werden sollen alle könnte ja evt. zu lange dauern (besonders übers inet) wenn er das ganze in ne File geschrieben hat dann öffnet er einfach run(updater.exe -pararmeter) (pararmeter bestimmt was für eine txt datei ausgelesen werden soll) und führt halt alle zeilen die in dieser Datei so stehn nacheinander aus... ;)

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D