Extraire et Afficher une Icone d'un fichier dll, exe

Contenu du snippet

// à déclarer dans la partie Interface
Function PickIconDlgW(OwnerWnd: HWND; lpstrFile: PWideChar; var nMaxFile: LongInt; var lpdwIconIndex: LongInt): LongBool; stdcall; external
'SHELL32.DLL' index 62; 


Implementation
Uses ShellApi;  // pour  ExtractIconExW
 

// Utilisation :
Procedure TfrmMain.btn_ChangeIconeClick(Sender: TObject);
Var
  FileName :  array[0..MAX_PATH - 1] of WideChar;
  Size, Index: LongInt;
  hLargeIcon, hSmallIcon : HIcon;
Begin
  Size := MAX_PATH;
  StringToWideChar('%SystemRoot%\system32\Shell32.dll', FileName, MAX_PATH);
  // ouvre le Dialogue Changer d'Icône
  If PickIconDlgW(Self.Handle, FileName, Size, Index) Then
    If (Index <> -1) Then
    If ExtractIconExW( FileName, Index, hLargeIcon, hSmallIcon, 1) > 0 Then
    Begin
      // on change l'icône de la fiche principale
      Icon.Handle := hSmallIcon;
      // et on dessine le LargeIcone sur la fiche
      DrawIcon(Canvas.Handle, 10, 10, hLargeIcon);
      // Et on libère la mémoire
      DestroyIcon(hLargeIcon);
      DestroyIcon(hSmallIcon);
    End;
End;



Compatibilité : Delphi 5

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.