Around and About .NET World

Il blog di Marco Minerva
posts - 1671, comments - 2232, trackbacks - 2135

My Links

News

Contattami su Live Messenger:


MCTS: Windows, Web, Distributed Applications & SQL Server

MCPD: Enterprise Applications

Tag Cloud

Archives

Post Categories

Links

Recuperare le icone contenute in un file

Ogni versione di Windows è caratterizzata da un nuovo stile per le icone di sistema. Se la nostra applicazione fa uso di queste icone, utilizzando il Platform Invoke è possibile recuperare tali risorse direttamente dai file di Windows, in modo che il programma adatti il proprio stile grafico a quello del sistema su cui è in esecuzione:

[DllImport("shell32.dll", EntryPoint = "ExtractIconA")] private static extern IntPtr ExtractIcon(IntPtr hInst, string lpszExeFileName, int nIconIndex); [DllImport("user32.dll")] private static extern int DestroyIcon(IntPtr hIcon); public Image GetIcon(string fileName, int iconNumber) { IntPtr hInstance = Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]); IntPtr hIcon = ExtractIcon(hInstance, fileName, iconNumber); Bitmap bitmap = Bitmap.FromHicon(hIcon); DestroyIcon(hIcon); return bitmap; }

La funzione GetIcon restituisce un oggetto di tipo Bitmap che rappresenta l'icona estratta dal file specificato. Ad esempio, per ottenere l'icona dell'unità di sistema di Windows Vista si deve utilizzare la seguente istruzione:

pictureBox1.Image = GetIcon("imageres.dll", 30);

Dove 30 è la posizione dell'icona nel file (l'indice è a base 0).

Print | posted on Wednesday, April 4, 2007 12:43 PM | Filed Under [ C# ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET