Recherche parmi les données d'icône ou de curseur, l'icône ou le curseur qui correspond le mieux au périphérique d'affichage en cours
#include <WinAPIIcons.au3>
_WinAPI_LookupIconIdFromDirectoryEx ( $pData [, $bIcon = True [, $iXDesiredPixels = 0 [, $iYDesiredPixels = 0 [, $iFlags = 0]]]] )
$pData | Les données de répertoire de l'icône ou du curseur. Parce que cette fonction ne valide pas les données de la ressource, elle provoque une erreur de protection générale (GP) ou retourne une valeur indéfinie si $pData ne pointe pas sur des données de ressource valides. |
$bIcon | [optionnel] Indique si la fonction doit rechercher une icône ou un curseur, les valeurs valides sont: True - La fonction doit rechercher une icône (par défaut). False - La fonction doit rechercher un curseur. |
$iXDesiredPixels | [optionnel] La largeur désirée, en pixels, de l'icône ou curseur. Si ce paramètre est zéro (par défaut), la fonction utilise la valeur métrique du système. |
$iYDesiredPixels | [optionnel] La hauteur désirée, en pixels, de l'icône ou curseur. Si ce paramètre est zéro (par défaut), la fonction utilise la valeur métrique du système. |
$iFlags | [optionnel] Ce paramètre peut prendre l'une ou plusieurs des valeurs suivantes: $LR_DEFAULTCOLOR (par défaut) $LR_MONOCHROME |
Succès: | Retourne un entier, identifiant de ressource, pour l'icône ou le curseur qui correspond le mieux au périphérique d'affichage en cours. |
Échec: | Retourne 0, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur. |
Le répertoire de l'icône est chargé à partir d'un fichier de ressources avec le type de resource $RT_GROUP_ICON (ou $RT_GROUP_CURSOR ),et un nom de ressource en nombre entier de l'icône spécifique à charger.
_WinAPI_LookupIconIdFromDirectoryEx() retourne un identifiant entier qui est le nom de la ressource de l'icône qui correspond le mieux au périphérique d'affichage en cours.
Consultez LookupIconIdFromDirectoryEx dans la librairie MSDN.
#include <APIResConstants.au3> #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <StaticConstants.au3> #include <WinAPIIcons.au3> #include <WinAPIRes.au3> ; Charge resources.dll en mémoire Local $hInstance = _WinAPI_LoadLibraryEx(@ScriptDir & '\Extras\Resources.dll', $LOAD_LIBRARY_AS_DATAFILE) If Not $hInstance Then MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Erreur', @ScriptDir & '\Extras\Resources.dll n''existe pas.') Exit EndIf ; Charge la ressource RT_GROUP_ICON à partir de la bibliothèque Resources.dll Local $hResource = _WinAPI_FindResource($hInstance, $RT_GROUP_ICON, 1) Local $hData = _WinAPI_LoadResource($hInstance, $hResource) Local $pData = _WinAPI_LockResource($hData) ; Recherche un nom de ressource entier pour l'icône qui correspond le mieux à la taille spécifiée (48x48) Local $iIcon = _WinAPI_LookupIconIdFromDirectoryEx($pData, 1, 48, 48) ; Charge la ressource RT_ICON à partir de la bibliothèque Resources.dll $hResource = _WinAPI_FindResource($hInstance, $RT_ICON, $iIcon) Local $iSize = _WinAPI_SizeOfResource($hInstance, $hResource) $hData = _WinAPI_LoadResource($hInstance, $hResource) $pData = _WinAPI_LockResource($hData) ; Crée une icône à partir de la ressource Local $hIcon = _WinAPI_CreateIconFromResourceEx($pData, $iSize) ; Décharge Resources.dll de la mémoire _WinAPI_FreeLibrary($hInstance) ; Crée une GUI GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 128, 128) GUICtrlCreateIcon('', 0, 40, 40, 48, 48) GUICtrlSendMsg(-1, $STM_SETIMAGE, 1, $hIcon) GUISetState(@SW_SHOW) Do Until GUIGetMsg() = $GUI_EVENT_CLOSE