Icon Datei in .exe einbinden

  • Kann man Bilder, also z.B. Icons, in die .exe einbinden, so dass man die Icon-Dateien nicht immer extra mitliefern muss?

    Mein erstes Programm bestand aus ca. 2.000 Lochkarten und nachdem sie mir das erste mal runtergefallen sind, habe ich die letzten beiden der 80 Byte für eine Numerierung benutzt :rofl:

  • Ich verstehe die Hilfe zu diesem Befehl nicht, sieht für mich so aus, als ob ich eine Datei von irgendwo nach irgendwo anders kopiere. Falls tatsächlich inkludiert, sehe ich auch nicht, wie ich die Icons im Programm nutzen kann.


    Ziel ist, zwei Icons (red.ico und green.ico) in die compilierte Version einzubinden, so dass ich nachher nur die eine .exe habe und nicht noch 2 einzelne .ico-Dateien zusätzlich.

    Andere Möglichkeit: kann ich irgendwie in der GUI kreisförmige Objekte ähnlich wie unten erzeugen, dann brauche ich die Icons nicht:


    Könnten auch viereckige Klötzchen sein ...

    Mein erstes Programm bestand aus ca. 2.000 Lochkarten und nachdem sie mir das erste mal runtergefallen sind, habe ich die letzten beiden der 80 Byte für eine Numerierung benutzt :rofl:

  • Ich verstehe die Hilfe zu diesem Befehl nicht, sieht für mich so aus, als ob ich eine Datei von irgendwo nach irgendwo anders kopiere. Falls tatsächlich inkludiert, sehe ich auch nicht, wie ich die Icons im Programm nutzen kann.

    Dann lies dir doch mal die Beschreibung in der Hilfe durch die ich verlinkt habe und probier das dazu verlinkte Skript auch gleich mal aus, vielleicht wird es dann klar?


    Die FileInstall-Funktion sorgt beim Kompilieren dafür, dass die Datei die du angibst in deine Exe eingeschrieben wird. Beim Start der Exe, wird die Datei dann in den vorgegebenen Pfad extrahiert, und steht dir zur Verfügung.

    Also FileInstall nutzen und dann später einfach auf den extrahierten Pfad zeigen lassen in deiner GUICtrlCreateIcon (oder welche Funktion du dafür verwendest).


    Du könntest natürlich auch die Icons selber erzeugen (scheint ja nicht sonderlich kompliziert auszusehen) indem du Gdi+ anschmeißt aber ohne herablassend klingen zu wollen, scheint das über deinem Wissensstand zu liegen und ist schon wesentlich komplizierter.

    Ich rate dir daher zur FileInstall-Variante, probier sie einfach mal aus.

  • Die FileInstall-Funktion sorgt beim Kompilieren dafür, dass die Datei die du angibst in deine Exe eingeschrieben wird. Beim Start der Exe, wird die Datei dann in den vorgegebenen Pfad extrahiert, und steht dir zur Verfügung.

    Dieses Wissen fehlte mir, ich hatte im Sinn, dass der Code für die Icons dann direkt in der .exe sein sollte und nicht wieder extrahiert wird. Das habe ich der AutoIt-Hilfe nicht entnehmen können, wenn ich das mit diesem Hintergrund jetzt noch mal lese, ist es klar.

    Du könntest natürlich auch die Icons selber erzeugen (scheint ja nicht sonderlich kompliziert auszusehen) indem du Gdi+ anschmeißt aber ohne herablassend klingen zu wollen, scheint das über deinem Wissensstand zu liegen und ist schon wesentlich komplizierter.

    Absolut richtig, noch nie benutzt und noch nicht mal eine Idee, wie das funktioniert. Ist es aufwendig - einfach zum Lernen - ein kurzes Beispiel für einen Kreis wie in meinem Bild zu machen? Wenn aufwendig - kein Problem. Könnte aber ja auch wieder eine Sache sein, die in AutoIt in 5 Zeilen erledigt ist.

    Mein erstes Programm bestand aus ca. 2.000 Lochkarten und nachdem sie mir das erste mal runtergefallen sind, habe ich die letzten beiden der 80 Byte für eine Numerierung benutzt :rofl:

  • ich hatte im Sinn, dass der Code für die Icons dann direkt in der .exe sein sollte und nicht wieder extrahiert wird.

    (wie bereits 'zig mal in anderen Threads beschrieben)

    Du könntest auch den beliebten file-to-base64-string-code-generator von UEZ verwenden.


    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."


  • Hier mal ein Beispiel mit Base64-kodierten Daten:

  • (wie bereits 'zig mal in anderen Threads beschrieben)

    Wenn man weiß, mit welchen Begriffen man danach sucht ist das sicher einfach ;) Mir hat bis eben GDI noch nichts gesagt außer dass es mal Drucker gab, die nur GDI-Druck konnten.

    Du könntest auch den beliebten file-to-base64-string-code-generator von UEZ verwenden.

    Das sieht sehr gut brauchbar aus, vermutlich hat Oscar das Beispiel auch damit erstellt!?

    Mein erstes Programm bestand aus ca. 2.000 Lochkarten und nachdem sie mir das erste mal runtergefallen sind, habe ich die letzten beiden der 80 Byte für eine Numerierung benutzt :rofl:

  • Hier mal ein Beispiel mit Base64-kodierten Daten:

    Perfekt, funktioniert - danke.

    Mein erstes Programm bestand aus ca. 2.000 Lochkarten und nachdem sie mir das erste mal runtergefallen sind, habe ich die letzten beiden der 80 Byte für eine Numerierung benutzt :rofl:

  • ==> Zitat Musashi : "(wie bereits 'zig mal in anderen Threads beschrieben) ..."


    Wenn man weiß, mit welchen Begriffen man danach sucht ist das sicher einfach ;)

    Hi HansJ54 !

    Da hast Du mich wahrscheinlich falsch verstanden.

    Ich wollte damit nicht sagen, Du müsstest das wissen oder hättest Dir keine Mühe gegeben ;).


    Das Zitat sollte lediglich untermauern, dass der Base64-Generator von UEZ ein bewährtes Tool ist, und von vielen Usern genutzt wird wenn es um das Einbinden von Binärdateien geht.


    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."


  • Da hast Du mich wahrscheinlich falsch verstanden.

    Habe es auf jeden Fall nicht wirklich negativ aufgefasst und finde die Unterstützung hier absolut super! Auch wenn es manchmal vielleicht auf den ersten Blick dumme Fragen sind - hier bekommt man immer eine brauchbare Antwort. :)


    Und ich kann den Generator jetzt zwar benutzen, aber tiefgründig verstehen will ich ihn glaube ich nicht, habe andere Probleme.:/

    Mein erstes Programm bestand aus ca. 2.000 Lochkarten und nachdem sie mir das erste mal runtergefallen sind, habe ich die letzten beiden der 80 Byte für eine Numerierung benutzt :rofl:

  • Hi HansJ54

    Wie beschrieben ist der Base64-Generator der absolute Standard für die Aufgabe einfach super kompfortabel. Schau dir für Beispiele auch mal den Release im EN Forum an. Dort liefert UEZ gleich selbst ein paar tolle Anwendungsbeispiele: https://www.autoitscript.com/f…-embed-your-files-easily/

    Was du dir auch ansehen solltest ist sein AutoIt Sysinternal Tools Synchronizer. Beim Ausprobieren eben gesehen, dass die Anzeige der Programme scheinbar nicht mehr funkioniert UEZ Aber da kannst du dir mal ansehen, wie du so ein Programm allgemein durchstylen kannst.

  • Beim Ausprobieren eben gesehen, dass die Anzeige der Programme scheinbar nicht mehr funkioniert

    Yep, die haben die Seite verändert, aber da das Interesse eher sehr gering ist, habe das Skript nicht aktualisiert.

  • Ich habe doch das Skript nochmals aktualisiert - diesmal aber zum letzten Mal.


    Die Liste sollte von der Web Seite aktualisiert werden...

  • Bei mir auch, wäre schade wenn das Programm "untergehen" würde.

    Mein erstes Programm bestand aus ca. 2.000 Lochkarten und nachdem sie mir das erste mal runtergefallen sind, habe ich die letzten beiden der 80 Byte für eine Numerierung benutzt :rofl: