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