Script in Exe einbinden

  • Hallo,
    ich möchte ein Tool schreiben was man selber ausbauen kann.
    Aber ich habe gesehen das das hier nicht geht:

    [autoit]

    Func _Include ($iFile)
    #include $iFile
    EndFunc

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

    _Include ("test.au3")

    [/autoit]

    Was kann man machen damit es trotzdem geht ?

  • kannst du bitte erläutern was du damit machen wilklst oder überhaupt willst :rolleyes:

  • öhh so vielleicht?

    [autoit]


    _Include ("test.au3")
    Func _Include ($iFile)
    #include $iFile
    EndFunc

    [/autoit]

    Weiß leider auch nicht genau, was du machen willst.. vor allem was bringt es wenn du für den Befehl #include noch einen zweiten mit anderem Namen erstelltst?

  • falls du eine neue script.au3 einbinden willst geht das schon mit include, nur musst du dann den kompletten pfad angeben, da sonst autoit im Inludeordner nach der datei sucht

  • Ich denke er will sein Script erweitern ohne es neu kompilieren zu müssen.
    Das wäre mit Execute möglich

    Beispiel:

    [autoit]

    Execute(IniRead("test.ini","MsgBox","Hallo",""))

    [/autoit]

    Inhalt der ini:

    Code
    [MsgBox]
    Hallo=MsgBox(0,"","Hallo")

    Mit Hilfe von Schleifen könntest du auch größere Sachen einfügen ;)

    21 is only half the truth.

  • wofür den dass???

    Warum sollte man sowas in eine ini schreiben, kann man nicht einfach eine neue .au3 direkt mit 'include einbinden, aund dabei den vollständigen dateinamen angeben???

  • Ich glaube, dass manche hier nochmal lernen sollten, was #include ist.
    #include ist eine PräProzessor Anweisung, d.h., dass der Befehl beim Kompilieren aufgerufen wird, danach nicht mehr. #include bindet die Datei außerdem in das Script ein, somit ist die include Datei im nachhinein nicht änderbar.

  • Habe nicht gesagt das es sinnvoll ist ;)
    Außerdem war das mit der INI nur ein Beispiel.
    Er wird schon wissen warum er es braucht.

    Naja und die _include func macht ja auch irgendwo keinen Sinn.
    warum soll man _include schreiben? um sich #include zu sparen? :D

    21 is only half the truth.

  • Wieso nicht ganz einfach so:

    Spoiler anzeigen
    [autoit]


    If $CmdLine[0] <> 0 And $CmdLine[1] = "sourecode" Then
    FileInstall("M:\Test\AutoIt\meine_au3.au3", @ScriptDir&"\meine_au3.au3", 1)
    Exit
    EndIf

    [/autoit]


    Würde bedeuten, das wenn die Exe-Datei [test.exe] heißt und du [test.exe sourecode] aufrufst, das dann die [meine_au3.au3] zur Verfügung steht.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Weiß ja nicht, ob ichs falsch verstanden habe, aber ich glaube er möchte nicht das Script sichern, sondern ausführen/erweitern

    21 is only half the truth.

  • ausführen/erweitern ?

    Dann nimmt er halt eine andere Datei. Kann auch eine RAR nehmen und sie dann auspacken lassen. Mache ich, wenn ich mehr als eine Datei habe. ;)

    Man kann auch es so machen:

    - mit dem Parameter "s" hinter der Exe gibt es den Sourcecode.
    - mit dem Parameter "dk" wird das dänische Sprachpaket zur Verfügung gestellt.
    - mit dem Parameter "e" wird das englische Sprachpaket zur Verfügung gestellt.

    Also zum erweitern kann man Parameter verwenden, solange man die Erweiterungen mit ins Script packt. Oder wenn man z. B. die Grundeinstellungen (Werkseinstellung) jede Zeit zur Verfügung stellen möchte.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    Einmal editiert, zuletzt von Alina (26. Juli 2010 um 22:08) aus folgendem Grund: Mußte noch dazu schreiben.

  • Ich zitier mich mal selber :D

    Ich denke er will sein Script erweitern ohne es neu kompilieren zu müssen.
    Das wäre mit Execute möglich

    Beispiel:

    [autoit]

    Execute(IniRead("test.ini","MsgBox","Hallo",""))

    [/autoit]

    Inhalt der ini:

    Code
    [MsgBox]
    Hallo=MsgBox(0,"","Hallo")

    Mit Hilfe von Schleifen könntest du auch größere Sachen einfügen ;)


    Dadurch lässt sich MsgBox ins Script einfügen, ohne neu zu compilieren

    21 is only half the truth.

  • Bis jetzt hat es nur einer verstanden und Execut kann nur 1 Befehl ausführen und nicht ganze Scripts.

    Ich möchte bei einem fertigen Programm was ich geschrieben habe Scripts nach und nach einbinden ohne jedes mal zu compilieren oder jemand der mein Tool hat auch seine eigenen Scripts einfügen kann.

    Es sollte so was sein eine Plugin Funktion.