DLLs mit AutoIt erzeugen?

  • DLLs kann man in AutoIt-Programme einbinden, aber warum kann man keine DLLs mit AutoIt erzeugen?

    DLLs lassen sich zwar theroretisch mit MS-Studio erzeugen, aber da gibt es unterschiedliche Versionen. Da spielt die COM-Technologie eine Rolle und außerdem wird von "matched" bzw. unmatched" Code gesprochen.

    Ist es ggf. geplant, die AutoIt-Funktionalität auf die Erzeugung von DLLs zu erweitern?

    Kann mich da mal jemand aufklären?

    Grüsse aus Berlin

    PSblnkd

  • Hi,

    falls es dir nur im die Funktionalität einer Dll geht, kannst du dir ja eine Dateiendung ausdenken,
    zum Beispiel (*.dae -- Dynamic AutoIt Extension) und damit Code aus der Datei
    in die Haupt-Exe "einzuspielen".

    Also sowas wie ein Plugin-System.

    mfg
    Dominik

    Wobei dieser dann ja eigentlich erst wieder compilt werden müsste; du müsstest also zusätzlich zu der Exe-Datei deines Programmes also auch noch den Compiler mit dir rumschleppen...

  • Hallo Zusammen,

    Zitat

    falls es dir nur im die Funktionalität einer Dll geht, kannst du dir ja eine Dateiendung ausdenken,
    zum Beispiel (*.dae -- Dynamic AutoIt Extension) und damit Code aus der Datei
    in die Haupt-Exe "einzuspielen".

    Also sowas wie ein Plugin-System.

    Zitat

    Wobei dieser dann ja eigentlich erst wieder compilt werden müsste; du müsstest also zusätzlich zu der Exe-Datei deines Programmes also auch noch den Compiler mit dir rumschleppen...

    Ich habe einen fertiges Programm (*.exe) mit AutoIt erstellt und möchte dem User des Programms eine Möglichkeit bieten, ein eigenes Skript in meinem Programm zu integrieren.
    Wäre dies so eigentlich möglich?

    Vielen Dank für eure Hilfe!

    Gruß
    Homer J. S.

    ...wenn die Donuts auch nur halb so gut schmecken wie sie aussehen, dann sehen sie doppelt so gut aus wie sie schmecken...

  • ...

    Oder eine Alternative mit Execute basteln. Damit kann man keine Funktionen definieren, aber man könnte doch zum Beispiel in der Library eine Tabelle mit den zu exportierenden Funktionen anlegen, die Codestellen auslesen und mit Execute ausführen.

    Einen Sinn sehe ich dabei aber nicht wirklich. Die Vorteile normaler DLLs (Speicher sparen, Unabhänigkeit von Windowsversion) gelten nicht, stattdessen wird für das Auslesen und Aufrufen einiges an Zeit verbraten.

  • Hallo Zusammen,


    Ich habe einen fertiges Programm (*.exe) mit AutoIt erstellt und möchte dem User des Programms eine Möglichkeit bieten, ein eigenes Skript in meinem Programm zu integrieren.
    Wäre dies so eigentlich möglich?

    Vielen Dank für eure Hilfe!

    Gruß
    Homer J. S.

    Indirekt schon. Entweder lässt du das zu integrierende Skript zur Laufzeit des anderen Skripts durch den AutoIt-Compiler laufen, oder du erstellst aus dem zu integrierenden Code eine Exe-Datei und lässt diese dann ausführen.

    Edit: Oder eben Marthogs Variante ;)

  • stayawayknight

    Zitat


    Indirekt schon. Entweder lässt du das zu integrierende Skript zur Laufzeit des anderen Skripts durch den AutoIt-Compiler laufen...

    Wie würde der Code/Befehl dafür den aussehen?

    Marthog

    Zitat

    Einen Sinn sehe ich dabei aber nicht wirklich...

    Da habe ich ein Beispiel:
    Ich benutze ein Programm das via virtuellem Drucker die Druckaufträge an Hardware-Drucker sendet. An welchen Drucker mit welchen Parameter kann ich als User über ein Skript einbinden.


    Gruß
    Homer J. S.

    ...wenn die Donuts auch nur halb so gut schmecken wie sie aussehen, dann sehen sie doppelt so gut aus wie sie schmecken...

  • stayawayknight

    Vilen Dank für den Link!

    Zitat

    Hier, von misterspeed:

    Damit kann man aber "nur" eine exe erstellen - oder? Einen Code bzw. Skript direkt ins "Hauptprogramm" einpflegen, geht das auch?

    Gruß
    Homer J. S.

    ...wenn die Donuts auch nur halb so gut schmecken wie sie aussehen, dann sehen sie doppelt so gut aus wie sie schmecken...

  • Variablen , also Einstellungen die für die Drucker individuell sind, würde ich in eine Ini packen.
    Die kann dann im nach hinein auch editiert werden ohne am Programm was ändern zu müssen.
    Auch das mappen eines Druckers wäre ein Einzeiler,
    welcher mit den Infos aus der Ini(UncPfad etc) verbunden werden kann.

    Beispiel für Ini:

    [Computer1]
    Drucker1="\\server1\HP1100"
    Drucker2="\\server1\Laser"

    Und im Script dann einfach @computername auswerten und dazu findet das Programm in der Ini die nötigen Infos.

    Iniread(c:\datei.ini,@computername,.... )
    Bzw. Inireadsection wäre evtl. passender, dann die Section in einer Schleife abarbeiten.

    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

    Einmal editiert, zuletzt von Dietmar (3. Februar 2012 um 11:13)

  • Der Sinn ist - wie <Blume> schon erläuterte - in ein AutoIt-Skript eine selbsterstellte DLL einzubinden und das Ganze zu einer EXE zu kompilieren. In der DLL ist eine bestimmte Funktionaliät mit entsprechenden Schnittstellen implementiert, die zu gegebener Zeit verändert werden kann - und das dann ohne nochmal das EXE-Skript zu kompilieren, sondern eben nur das Skript der DLL.
    Das ist an und für sich genau die Nachempfindung der Windows-Philosophie.

    Eigentlich bedarf es ja "nur" eine Anpassung, bzw. Veränderung der Aut2exe.exe in Aut2dll.exe ...

    Grüsse aus Berlin

    PSblnkd

  • Bitte den Begriff Dll hier nicht mehr verwenden.
    Er ist in diesem Zusammenhang ziemlich missverständlich.
    Zutreffender wäre hier sicherlich eher der Begriff "Plugin" oder ähnliches.
    Eine Möglichkeit derartiges in AutoIt zu implementieren findest du >>Hier<<.