Extrait une icône de dimension spécifiée dans le fichier spécifié
#include <WinAPIShellEx.au3>
_WinAPI_ShellExtractIcon ( $sIcon, $iIndex, $iWidth, $iHeight )
$sIcon | Chemin et nom du fichier à partir duquel l'icône doit être extraite. |
$iIndex | L'index de base 0 de l'icône à extraire. Si cette valeur est un nombre négatif, la fonction extrait l'icône dont l'identifiant de ressources est égal à la valeur absolue de $iIndex. |
$iWidth | Taille horizontale de l'icône recherchée. |
$iHeight | Taille verticale de l'icône recherchée. |
Succès: | Retourne le handle de l'icône extraite. |
Échec: | Retourne 0. |
Si l'icône de la dimension spécifié est introuvable dans le fichier, la fonction choisit l'icône appropriée la plus proche et la modifie en la dimension spécifiée.
Lorsque vous avez fini d'utiliser l'icône, détruisez-là en utilisant la fonction _WinAPI_DestroyIcon().
Consultez SHExtractIcons dans la librairie MSDN.
#include <GUIConstantsEx.au3> #include <SendMessage.au3> #include <StaticConstants.au3> #include <WinAPIIcons.au3> #include <WinAPIShellEx.au3> Local $iIndex = 0, $iTotal = _WinAPI_ExtractIconEx(@SystemDir & '\shell32.dll', -1, 0, 0, 0) Local $hForm = GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 160, 160) Local $idButton = GUICtrlCreateButton('Next', 50, 130, 70, 23) Local $idIcon = GUICtrlCreateIcon(@SystemDir & '\shell32.dll', 0, 69, 54, 32, 32) Local $hIcon = GUICtrlGetHandle(-1) GUISetState(@SW_SHOW) Local $iMsg Do $iMsg = GUIGetMsg() if $iMsg = $idButton Then $iIndex += 1 If $iIndex > $iTotal - 1 Then $iIndex = 0 _WinAPI_DestroyIcon(_SendMessage($hIcon, $STM_SETIMAGE, 1, _WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', $iIndex, 32, 32))) EndIf Until $iMsg = $GUI_EVENT_CLOSE