Hallo,
vielleicht hat ja jemand schon etwas Ähnliches gesehen oder weiss woran es liegt und ob es eine Lösung gibt.
Ich habe eine GUI erstellt mit Eingabefeldern, Auswahlmenüs, Checkboxen und Buttons. Alles funktioniert tadellos, schon seit Jahren :-).
Jetzt wollte ich, zur Verschönerung, ein Logo einfügen und fand heraus, dass ich das wohl schon vor einer Weile gemacht habe (ich werde alt!).
Allerdings wird dieses Logo unter Windows PE (egal welche Version 3.x oder neuer und ob es 32 bit oder 64 bit ist) nicht angezeigt (ich fühl mich noch älter, dass ich das jetzt erst bemerke...).
Starte ich aber die gleiche GUI unter Windows 7 (32bit/64bit) oder Windows 10, so ist das Logo da.
Die Einbindung erfolgt über:
Es liegt auch nicht am Dateityp, da ich schon diverse Typen ausprobiert habe (JPG, PNG, BMP, in verschiedenen Kompressionsstufen und Farbtiefen)
Meine Vermutung ist, es fehlt irgendeine Lib (oder dessen Registrierung?) in Windows PE, jetzt ist nur die Frage, welche?
Aus Spass habe ich jetzt meine kleine GUI auch mal auf Servern gestartet W2K8 R2 und W2K12 R2 (mit und ohne "Run as admin"), auf beiden das gleiche Problem, auch hier wird das Logo nicht angezeigt.
Nebenbei interessant ist auch, dass sich die Dateigröße meiner EXE nicht ändert, wenn ich verschieden große Bilder einfüge. Ich nehme ich an, dass das Bild in irgendeiner festen Form in der EXE eingebunden ist, vermutlich, durch die Fenstergröße in GUICreate, egal, ob das Bild größer ist als das Fenster oder nicht, der Rest wird abgeschnitten.
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstantsEx.au3>
$Form1 = GUICreate("Test-GUI", 619, 390, -1, -1)
GUISetBkColor(0xFFFFFF)
$Pic1 = GUICtrlCreatePic("C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ASP.NETWebAdminFiles\Images\help.jpg", 8, 7, 0, 0) ; 2K groß
;$Pic1 = GUICtrlCreatePic("C:\Windows\Web\Wallpaper\Theme1\img13.jpg", 8, 7, 0, 0) ; 1,2 MB groß
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Alles anzeigen
mfg
Axel