Grafik(en) in *.exe einbinden ohne Fileinstall

  • Hallo an Alle,


    ich verwende derzeit den Befehl Fileinstall zum einbinden meiner Grafiken in ein exe Datei und lege sie unter C:\Temp ab. Allerdings möchte ich das Tool weitergeben und nicht auf jedem Rechner meine Bilder hinterlassen. Sicherlich gibt es hierfür eine sinnvolle Lösung?
    Ich war auf dieser Seite allerdings weiß ich nicht wie ich diese UDF anwenden soll, kann mir bitte jemand helfen?
    bisher: FileInstall("D:\Logo.jpg", "C:\Temp\Logo.jpg")


    http://www.autoitscript.com/forum/topic/51103-resources-udf/


    Vielen Dank und viele Grüße,
    TOYY1

  • Bei solchen Programmen mache ich meistens einen FileInstall mit einem temporären Namen MIT _TempFile() und lösche die Dateien nach dem Ausführen des Programmes wieder. Du kannst auch alle Resourcen in eine gemeinsame DLL-Datei packen und diese dann auch wieder nach Beenden des Programmes löschen.
    Wenn die Bilder klein genug sind, dann kannst du auch das verwenden, allerdings würde ich es maximal für Bilder bis zu 100x100 verwenden, da es sonst zu langsam wird.


    Oder du nimmst das und lädst die Bilder vom Internet.

  • Es gibt auchnoch die Möglichkeit die Bilder mit FileRead erstmal auszulesen und dann als Variable in den Quellcode mit einzubinden, du müsstest etwas passendes über die Sufu finden, ich erinnere mich das BF z.B. soetwas mal erklärt hat und ein kleines Programm geschrieben hat um die Datei / das Bild sauber in eine Variable zu packen.

  • Die Idee mit dem Löschen ist eigentlich keine schlechte Idee, allerdings auch nicht das gelbe vom Ei. Danke auch für deine anderen Tipps. Allerdings sind die Bilder größer und die Bilder aus dem Netz laden möchte ich nicht. Es kann ja auch mal sein, dass der PC kein Netz hat. Ist das Problem nicht weiter bekannt bzw. weißt du/jemand wie ich diese UDF anwenden muss...So ein kleines Beispiel würde mir sicherlich helfen.


    Vielen Dank und viele Grüße,
    TOYY1

  • Hier ein Beispiel aus dem englische Forum mit einem Bild im Skript:


  • @Twodollarbillie Da braucht er nicht google, da gibts bereits einer fertiges Beispiel: http://autoit.de/index.php?page=Thread&postID=182765&highlight=Steganographie#post182765 aber was das bei seinem Problem helfen soll ist mir nicht ganz klar.

  • Ich würde gern die UDF's von meinem oben angegeben Link verwenden:
    Das findet man in der resources.au3. Mal schauen welche UDF das macht was ich möchte.


    Allerdings weiß ich gerade nicht, wie ich diese UDF's "aktiviere. Ich habe resources.au3 ins Autoit Verzeichnis\Include kopiert und neu gestartet. Allerdings stehen mir die Funktionen nicht zur Verfügung ?( ?


    Kann mir jemand bitte helfen?
    Vielen Dank und viele Grüße,
    TOYY1

  • Wenn du das Bild in ein Binärstring umgewandelt hast,


    Convert to Binary String.au3


    dann kannst du die Funktion Load_BMP_From_Mem nehmen, um das Bild in der GUI anzuzeigen.


    Beispiel:



    Gruß,
    UEZ

  • Hallo UEZ und vielen Dank für deine Ünterstützung das ist ebenfalls eine Variante die ich in Betracht ziehe.


    Könnte mir trotzdembitte jemand weiterhelfen und sagen wie ich die resources.au3 "aktiviere, so dass mir die Befehle zur Verfügung stehen?


    Vielen Dank und viele Grüße,
    TOYY1

  • Du musst die resources.au3 includen, d.h. so würde ein Code aussehen:



    #include <resources.au3>
    ;#include "resources.au3" ;wenn sich die Datei nur im gleichen Verzeichnis befindet
    ....


    Dann sollten die Befehle aus der resources.au3 zur Verfügung stehen, wenn sich die resources.au3 in dem Include Verzeichnis befindet.


    Gruß,
    UEZ

  • Hallo UEZ danke für deine rasche Rückmledung,


    das habe ich gemacht und das Programm auch nochmal neu gestartet. Allerdings stehen die Funktionen nicht zur Verfügung. Könntest du das bitte mal probieren? Wenn ich die die Resources speichere sind da noch andere Dateien ?( vielleicht müssen die auch in den Include Ordner. Es gibt jedenfalls keine Hilfe oder Anleitung was ich bspw. mit der
    api Datei oder der properties Datei anstellen soll. Für eine kleine Hilfe wäre ich sehr dankbar.


    Vielen Dank und viele Grüße,
    TOYY1

  • Vielleicht postet du mal dein komplettes Skript inkl. den Anhängen, damit man sehen kann, was du so probierst.


    Gruß,
    UEZ

  • Warum lädst du sie z.B. nicht auf TinyPic hoch und fügst den Link dort ein oder lädst das Bild vom Prog automatisch runterladen und fügst ein, und wenn es beenden wird, löscht es das Bild.


    Hat er bereits geschrieben warum er das nicht will.

  • Hallo an alle und danke für die Hinweise...


    Das Skript hochladen brauche ich nicht. Mittlerweile bzw. z.Z. geht es ja nicht um das eigentliche Problem, dass ich gern wissen würde wie bzw. welche Funktion ich dafür verwenden kann, sondern darum, dass ich nun erstmal die resources.au3 lauffähig mache. Die Datei und auch die anderen liegen definitv im Imclude Ordner von AutoIt...dennoch stehen mir die Funktionen nicht zur Verfügung. Wenn das Theam geklärt ist, würde ich gern das Ursprungsthema aufgreifen. Geht es bei euch?


    Vielen Dank und viele Grüße,
    TOYY1

  • Und das Ursprungsthema bezieht sich auf...09.08.2011 15:37 welchen Befehl ich aus den Resources benötige, um
    FileInstall("D:\_Temp.jpg", "C:\Temp\_Temp.jpg")
    nicht mehr verwenden zu müssen und um das löschen von Bildern vor dem Schließen des Programms zu vermeiden.

  • Hallo UEZ danke für deine rasche Rückmledung,


    das habe ich gemacht und das Programm auch nochmal neu gestartet. ...


    Du musst dein Skript kompilieren, wenn es funktionieren soll.
    Sieh dir mal das Bsp. "resource_test.au3" an. Von ganz oben bis ganz unten, dann solltest Du es verstehen.



    Gruß
    Greenhorn

    „Der erste Schritt, den jeder tun kann, ist, sich frei zu machen von dem Untertanengemüt.“
    ―Herbert Wehner

  • Das problem kann man auch folgendermaßen geschickt umgehen.


    Im Beispiel Enthalten: 2 Bilder:
    1. als Komprimierte Ressource (So siehts nach dem Komprimieren aus)
    2. Als direkte Ressource.


    Die Bilder werden mittels _CreateImageRes geladen (ok, dabei wird eigentlich schon viel zu viel gemacht, aber ich wollte die UDF Funktionen nicht zerlegen...), in für GDI+ verträgliche Formate gebracht und abgebildet.


    Ressourcen von Dateien kann man hiermit holen (und bei Bedarf komprimieren):
    ( Komprimieren dauert bei Größeren Sachen Ewig. Deshalb lieber erstmal mit kleinen Bildern die Funktionalität Testen. Das Tool hab ich heute aus Spaß mal geschrieben und hier findet es direkt Verwendung^^)


    Edit: Das Funktioniert immer. Obs kompilliert ist oder nicht ist wurscht !


    lg
    Mars(i)