Icons (.ico) in Exe einbetten?

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Icons (.ico) in Exe einbetten?

25 Jan 2017, 03:40

LoadPicture() würde wahrscheinlich funktionieren, wenn das Icon als Icon-Ressource (RT_ICON) eingebunden wäre. FileInstall erstellt aber eine RT_RCDATA Ressource. Ich bin nicht sicher, denke aber, dass sich diese Ressourcetypen auch inhaltlich unterscheiden.
User avatar
jNizM
Posts: 3183
Joined: 30 Sep 2013, 01:33
Contact:

Re: Icons (.ico) in Exe einbetten?

25 Jan 2017, 03:43

Moin,

würde sich das nicht durch anpassen des Kompilers oder der LoadPicture() Funktion bewerkstelligen lassen? (Oder evtl. der FileInstall Funktion übergeben wie gespeichert werden soll?)
[AHK] v2.0.5 | [WIN] 11 Pro (Version 22H2) | [GitHub] Profile
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Icons (.ico) in Exe einbetten?

25 Jan 2017, 03:50

Ja klar wäre das Möglich.
Du könntest sogar einfach nur die LoadPicture Function anpassen.
Der Quellcode von AutoHotkey ist ja jedem öffentlich verfügbar auf github.
spezifisch: https://github.com/Lexikos/AutoHotkey_L ... .cpp#L1818
Recommends AHK Studio
User avatar
jNizM
Posts: 3183
Joined: 30 Sep 2013, 01:33
Contact:

Re: Icons (.ico) in Exe einbetten?

25 Jan 2017, 04:00

Dann sollte das eher ins Wunsch-Forum, da ich A. kein C++ Entwickler bin und B. keine eigene AutoHotkey-Version erstellen möchte =)
[AHK] v2.0.5 | [WIN] 11 Pro (Version 22H2) | [GitHub] Profile
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Icons (.ico) in Exe einbetten?

25 Jan 2017, 04:04

Es gibt ja schon seit Jahren eine Alpha-Version des Compilers, die auch andere Ressourcetypen erstellen kann. Vielleicht sind da auch Icons dabei.
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Icons (.ico) in Exe einbetten?

25 Jan 2017, 04:19

jNizM wrote:Dann sollte das eher ins Wunsch-Forum, da ich A. kein C++ Entwickler bin und B. keine eigene AutoHotkey-Version erstellen möchte =)
A. da lässt sich garantiert jemand finden.
B. es geht nicht darum eine eigene AutoHotkey Version zu erstellen sondern ein Pull Request zu erstellen. Also eine Änderung zu machen und Lexikos dann die Möglichkeit lassen diese sehr schnell in seine Version zu integrieren.
Damit gibt man dann auch einem Wunsch eine realistische Chance umgesetzt zu werden.
Recommends AHK Studio
User avatar
jNizM
Posts: 3183
Joined: 30 Sep 2013, 01:33
Contact:

Re: Icons (.ico) in Exe einbetten?

25 Jan 2017, 04:31

@just me
Ob fincs das Projekt auch jemals beendet ist die frage (siehe mein Topic im admin-bereich)

@nnnik
Fehlt nur noch das Wissen und die Bereitschaft einer Person die das macht ;)
Bis auf HotKeyIt (der seinen eigenen Port weiterführt) sehe ich keine wirklichen Entwickler neben Lexikos.
Und in diesem Tempo sehe ich auch v2 nicht in den kommenden 1-2 Jahren fertig werden...
[AHK] v2.0.5 | [WIN] 11 Pro (Version 22H2) | [GitHub] Profile
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Icons (.ico) in Exe einbetten?

25 Jan 2017, 05:17

Ich lerne im Moment für meine Klausuren.
Wenn ich aber mal ne Pause brauche könnte ich dies dann eventuell machen.
Recommends AHK Studio
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Icons (.ico) in Exe einbetten?

25 Jan 2017, 05:20

jNizM wrote:Und in diesem Tempo sehe ich auch v2 nicht in den kommenden 1-2 Jahren fertig werden...
Ich bin in Bezug auf Wetten eher vorsichtig. Trotzdem würde ich wetten, dass unser neuer Hauptstadtflughafen BER vor AHK v2 in Betrieb geht. ;)
User avatar
Gucky_87
Posts: 375
Joined: 03 Jul 2014, 05:09

Re: Icons (.ico) in Exe einbetten?

30 Jun 2017, 05:36

Mal noch ´ne blöde Frage:

Wie binde ich das z.B. mit Bildern (Picture) ein?

Code: Select all

    Gui, Main: Add, Picture, x45  y115 w110 h115 vSDCARD      gSD  +BackgroundTrans -Border  +0x4000000 +0xE +%SS_REALSIZECONTROL%, FI_GetImage(FI_GetResource("gfx\SD-Karte.png"))
funktioniert nicht, es wird nichts angezeigt.

Wenn ich es so mache...

Code: Select all

   if (A_IsCompiled)
    {
        Gui, Main: Add, Picture, x45  y115 w110 h115 vSDCARD      gSD       hwndHPIC111 +BackgroundTrans -Border   +0x4000000 +0xE +%SS_REALSIZECONTROL%
    }
 
    HIMG111  := FI_GetImage(FI_GetResource("gfx\SD-Karte.png"))
    SetImage(HPIC111, HIMG111)
verlieren alle Bilder ihre Transparenzeigenschaften, obgleich sie als PNG in 32 Bit vorliegen.
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Icons (.ico) in Exe einbetten?

30 Jun 2017, 05:44

Moin,

probier mal

Code: Select all

 Gui, Main: Add, Picture, x45  y115 w110 h115 vSDCARD      gSD  +BackgroundTrans -Border  +0x4000000 +0xE +%SS_REALSIZECONTROL%, % "HBITMAP:" . FI_GetImage(FI_GetResource("gfx\SD-Karte.png"))
:arrow: Bild-Handles
Ich weiß aber nicht, ob das das Tranparenzproblem löst.
User avatar
Gucky_87
Posts: 375
Joined: 03 Jul 2014, 05:09

Re: Icons (.ico) in Exe einbetten?

30 Jun 2017, 09:04

Erstmal zu dem Tipp: Klappt 1a und spart somit etliche Zeilen Code. Danke

Das Transparentzproblem hat sich auch inzwischen gelöst, denn ich habe herausgefunden, dass wenn ich den Parameter "+0x4000000" bei Bildern (.png) weglasse, die Transparenz korrekt angezeigt wird.
Bei Icons (.ico) muss es jedoch dabei stehen, da diese (zumindest auf meinem Windows 10 PC) nicht transparent angezeigt werden.

Gucky.
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Icons (.ico) in Exe einbetten?

30 Jun 2017, 09:21

... , denn ich habe herausgefunden, dass wenn ich den Parameter "+0x4000000" bei Bildern (.png) weglasse, ...
Interessant. 0x04000000 ist WS_CLIPSIBLINGS und sollte sich laut MSDN nur auf das Zeichnen von überlappenden Controls auswirken.
User avatar
Gucky_87
Posts: 375
Joined: 03 Jul 2014, 05:09

Re: Icons (.ico) in Exe einbetten?

30 Jun 2017, 16:13

Diese Picture Controls überlappen sich bei dem Script auch.
Ich habe 3 Bilder, die exakt übereinander liegen.
Das eine zeigt "on", das andere "off" und das oberste ist ein halbtransparentes Quadrat, das per MouseOver ein- und ausgeschaltet wird.

Das merkwürdige:
Im AHK Script läuft es einwandfrei, in der compilierten EXE hapert es mit der Transparenz.
Sie ist sichtbar, aber jedes Mal, wenn ich über ein Bild fahre und das Auswahlquadrat angezeigt wird, überlagert sich dessen Farbe, bis es nicht mehr transparent ist (oraktisch).
Auch ein +Redraw hilft nichts.

zur Not bau ich mir aber für jedes Bild 3 nicht transparente Bilder, geht ja auch.

Gucky.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 57 guests