Funktionreferenz


_WinAPI_ShellExtractIcon

Beschreibung anzeigen in

Extrahiert das Icon mit den festgelegten Abmessungen von der festgelegten Datei

#include <WinAPIShellEx.au3>
_WinAPI_ShellExtractIcon ( $sIcon, $iIndex, $iWidth, $iHeight )

Parameter

$sIcon Pfad und Name der Datei von der das Icon extrahiert werden soll
$iIndex Der 0-basierende Index des zu extrahierenden Icons. Falls dieser Wert eine negative Zahl ist, extrahiert diese Funktion
das Icon dessen Ressourcen-ID identisch ist mit dem absoluten Wert von $iIndex.
$iWidth gewünschte horizontale Icongröße.
$iHeight gewünschte vertikale Icongröße.

Rückgabewert

Erfolg: das Handle des extrahierten Icons.
Fehler: 0.

Bemerkungen

Falls das Icon mit den festgelegten Abmessungen in der Datei nicht gefunden wurde, wird das nächstgelegene Symbol ausgewählt und auf die festgelegten Abmessungen geändert.
Am Ende sollte man das Icon mit der Funktion _WinAPI_DestroyIcon() zerstören.

Verwandte Funktionen

_WinAPI_DestroyIcon

Siehe auch

Suche nach SHExtractIcons in der MSDN Bibliothek.

Beispiel

#include <GUIConstantsEx.au3>
#include <SendMessage.au3>
#include <StaticConstants.au3>
#include <WinAPIIcons.au3>
#include <WinAPIShellEx.au3>

Global Const $STM_SETIMAGE = 0x0172

Local $Index = 0, $Total = _WinAPI_ExtractIconEx(@SystemDir & '\shell32.dll', -1, 0, 0, 0)

Local $hForm = GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 160, 160)
Local $Button = GUICtrlCreateButton('Next', 50, 130, 70, 23)
Local $Icon = GUICtrlCreateIcon(@SystemDir & '\shell32.dll', 0, 69, 54, 32, 32)
Local $hIcon = GUICtrlGetHandle(-1)
GUISetState(@SW_SHOW)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $Button
            $Index += 1
            If $Index > $Total - 1 Then
                $Index = 0
            EndIf
            _WinAPI_DestroyIcon(_SendMessage($hIcon, $STM_SETIMAGE, 1, _WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', $Index, 32, 32)))
    EndSwitch
WEnd