GUICtrlCreateIcon mit png-Datei

  • GUICtrlCreateIcon kann man auf eine ico- oder bmp-Datei anwenden.

    Was kann ich ein Icon mit einer png-Datei erzeugen?

    Recht vielen Dank schon einmal für eine Antwort.

  • Ich weiß nicht, wie du das meinst.

    Es geht mir darum, ein Control zu erzeugen, welches ein Handel zurückgibt, auf das ich mich später beziehen kann. Z.B. durch anklicken mit der Maus.

  • Ich glaube oh-ha meint damit, dass du aus der .png ein .ico machen sollst. Eigentlich willst du ja aber die .png so wie sie ist in einem Ctrl verwenden.


    Ich vermute, dass UEZ dafür eine Funktion hat (wahrscheinlich sogar 5 verschiedene für jeden nur erdenklicken Ctrltyp + GUIs). Habe auch etwas gegoogelt, aber nicht die richtige gefunden (nur eine die das komplette Fenster benutzt um eine .png anzuzeigen). Ich bin leider nicht fit mit Winapi & Sendmessage, sonst würde ich die 3 Zeilen selbst aufschreiben...


    lg

    M

  • Vielen Dank für eure Antworten!!!


    oh-ha

    IrfanView habe ich auch installiert und habe jetzt kapiert, wie du das meinst.

    Mir würde nur nicht gefallen, eine andere Software in mein Problem einzubinden. Würde wahrscheinlich auch verlangsamen.

    Aber wenn alles andere nicht geht, müsste ich das wohl so machen.


    Mars

    Es muss nicht sein, dass ich "die .png so wie sie ist", verwenden muss.

    Winapi ist leider auch nicht so mein Ding.


    Bitnugger

    Die Funktion _GuiCtrlSetImageEx ist mir beim Googeln auch schon über den Weg gelaufen. Blos in meinem Autoit3.3.8.1 gibt es sie nicht. Ich hatte früher auch schon Autoit3.3.12.0 installiert, musste das aber wieder verwerfen, weil dort der Befehl FileRead so verändert wurde, dass man beispielsweise eine Bitmap-Datei nicht mehr einlesen konnte - so wie sie ist. Sie wird in Hex-Zeichen umgewandelt. Aber von dem Ordner "C:\Program Files (x86)\AutoIt3" hatte ich mir damals einen Backup zurückbehalten. Aber _GuiCtrlSetImageEx ist dort auch nicht enthalten.

    Aber Dein Link zu _GuiCtrlSetImageEx hat mir insofern geholfen, als dort im Beispiel GuiCtrlSetImageEx.au3 die Funktion _GuiCtrlSetImageEx explizit ausgewiesen ist.

    Damit werde ich nun erst einmal weiterexperimentieren.


    Ich werde mich dann wieder zurückmelden.


    Nochmals vielen Dank euch allen.

    Gruß Dieter

  • Ich komme nicht weiter. Wen ich das Example unter

      _GuiCtrlSetImageEx

    abarbeiten möchte, kommt diese STDOUT:


    >"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "D:\Programmdaten\Desktop\CreateIcon\Example.au3" /UserParams

    +>16:59:14 Starting AutoIt3Wrapper v.16.612.1119.0 SciTE v.3.6.6.0 Keyboard:00000407 OS:WIN_81/ CPU:X64 OS:X64 Environment(Language:0407) CodePage:0 utf8.auto.check:4

    +> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Users\ffff\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\ffff\AppData\Local\AutoIt v3\SciTE

    >Running AU3Check (3.3.10.2) from:C:\Program Files (x86)\AutoIt3 input:D:\Programmdaten\Desktop\CreateIcon\Example.au3

    ! Au3check doesn't support input files encoded as UTF8 with BOM: D:\Programmdaten\Desktop\CreateIcon\Example.au3

    D:\Programmdaten\Desktop\CreateIcon\Example.au3 - 1 error(s), 0 warning(s)

    !>16:59:14 AU3Check ended. Press F4 to jump to next error.rc:2

    +>16:59:14 AutoIt3Wrapper Finished.

    >Exit code: 2 Time: 0.5582


    Mit

    Au3check doesn't support input files encoded as UTF8 with BOM

    weiß ich nichts anzufangen.

  • History


    AutoIt:

    3.3.14.0 (10th July, 2015) (Release)


    Au3Check:

    • Fixed: False error report on COM variable.
    • Fixed: False error report on With statement.
    • Added: Support of UTF8 with BOM files.

    Fazit: Dein AutoIt (Au3Check) ist zu alt... also entweder eine aktuellere Version installieren, oder die Datei (das Example) als UTF-8 ohne BOM speichern.



    Siehe auch hier: BOM

  • musste das aber wieder verwerfen, weil dort der Befehl FileRead so verändert wurde, dass man beispielsweise eine Bitmap-Datei nicht mehr einlesen konnte - so wie sie ist. Sie wird in Hex-Zeichen umgewandelt.

    Wie sieht denn deiner Meinung nach eine (Bitmap)-Datei aus, so wie sie ist :?:

    Meinst du den Schwachsinn, den ein (zum Lesen von Text-Dateien gedachter) Editor ausspuckt, weil dieser krampfhaft versucht eine binäre Datei als Text zu interpretieren?

    Kannst du doch haben:


    Wenn du bestimmte Aufgaben mit FileRead vorhast, ist primär wichtig, die Datei im entsprechenden Modus zu öffnen! Dazu sollte man einfach mal einen Blick auf die Parameterbeschreibungen der Funktion werfen.

    Deine obige Aussage zu FileRead ist definitiv falsch.

  • Wie sieht denn deiner Meinung nach eine (Bitmap)-Datei aus, so wie sie ist :?:

    Jedes Zeichen ( 8 Bit) in der Datei sollte, wenn es eingelesen ist, auch wieder als ein Zeichen mit den gleichen Bits erscheinen.

    Beispielsweise soll also des Zeichen 10001111 hexadezimal als 0x8F erscheinen und nicht (wie bei Autoit3.3.12.0) als zwei Zeichen 0x3846 ("8F").


    Ich werde als nächstes das neuste Autoit installieren und dann weitersehen.

    Im Sommer arbeite ich viel im Garten, deshalb entschuldgt bitte, wenn meine Reaktionrn nur zögerlich erfolgen.

    Ich melde mich wieder.

    Dank und Gruß an euch alle

    Dieter

  • Ich habe jetzt die neuste Version von Autoit installiert.

    Nun habe ich wieder das gleiche Problem: Wie kann ich eine Bitmap-Datei einlesen?

    Ich habe beispielsweise die Datei

    rot.bmp

    und möchte sie mit dem Programm

    Test.au3

    einlesen. Die Datei besitzt eine Länge von 306 Bytes und genau dies 306 Bytes will ich so einlesen. Eingelesen werden aber 614 Zeichen. Jedes Byte wird nämlich in Form von zwei Hexadezimal-Ziffern ins Textformat konvertiert.

    Was kann ich tun?

    Wie bereits gesagt, klappte das unter Autoit 3.3.8.1 noch einwandfrei. Wen es interessiert: ich habe noch einen Backup der Setup-Datei von Autoit 3.3.8.1 und kann diesen zur Verfügung stellen.

  • Es macht auch gar keinen Sinn, eine Datei mit binären Daten in einem Texteditor anzeigen zu lassen.

    Im besten Fall versucht der Editor die Daten irgendwie als Zeichen darzustellen. Im schlechtesten Fall bricht er die Darstellung beim Nullbyte ab.

    Also wenn eine Darstellung, dann in einem Programm, dass die Daten als Bytefolge darstellen kann, meist im Hexadezimalformat (z.B. HxD "https://mh-nexus.de/de/"). Man kann aber auch AutoIt dafür verwenden: