Hi,
ich will Icons anzeigen lassen.
Diese werden aus der reg ausgelesen.
"Leider" nimmt AutoIT eine andere Art der Nummervergabe als Windows :comp2:
Bei Windows wird das erste Icon der shell32.dll mit "0" bezeichnet.
Bei allen anderen folgenden Icons erhöht sich die ID um jeweils 1.
Bei AutoIT sind die IDs nicht forlaufend.
Wie kann ich dennoch das Icon korrekt darstellen lassen.
Danke
Hier ein Beispiel (es soll eigentlich die CD erscheinen)
Spoiler anzeigen
#include <GUIConstants.au3>
#include <Array.au3>
$GUI = GUICreate("Test", 1000, 980, -1, -1)
$beenden = GuiCtrlCreateButton ("beenden", 820, 70, 50, 50, $BS_ICON)
GUICtrlCreateLabel(" beenden", 817, 40, -1, -1, BitOR($WS_BORDER, $SS_CENTERIMAGE))
GUICtrlSetBkColor(-1, 0xB0E0E6)
GUICtrlSetImage ($beenden, "shell32.dll", 28)
$reg = "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AudioCD\DefaultIcon"
[/autoit] [autoit][/autoit] [autoit]$reg_hinten = ""
[/autoit] [autoit][/autoit] [autoit]$icon_reg = RegRead($reg, $reg_hinten)
$icon = GUICtrlCreateIcon("", 0, 50, 50, 50, 50, BitOR($SS_NOTIFY,$WS_GROUP))
If StringInStr($icon_reg, ",") Then
$icon_split = StringSplit($icon_reg, ",")
$icon_name = $icon_split[1]
$icon_id = $icon_split[2]
Else
$icon_name = $icon_reg
$icon_id = ""
EndIf
MsgBox(0,"",$icon_name & "|" & $icon_id & "|", 2)
GUICtrlSetImage($Icon, $icon_name, $icon_id)
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Select
Case $msg = $beenden
Exit
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd