DevAdmin Blog

Blog di Ermanno Goletto (Microsoft MVP Directory Services - MCITP - MCTS - MCSA - MCP)
posts - 887, comments - 447, trackbacks - 13

My Links

News

Avatar

Curriculum Vitae

Visualizza il profilo di Ermanno Goletto su LinkedIn


Il contenuto di questo blog e di ciascun post viene fornito “così come é”, senza garanzie, e non conferisce alcun diritto. Questo blog riporta il mio personale pensiero che non riflette necessariamente il pensiero del mio datore di lavoro.

Logo Creative Commons Deed


Logo SysAdmin.it SysAdmin.it Staff


Logo TechNet Forum TechNet Italia @ForumTechNetIt Follow TechNet Forum on Twitter


Logo MVP


Ermanno Goletto Follow ermannog on Twitter

Article Categories

Archives

Post Categories

Blogs

Friends

Knowledge Base

MVP Sites

Resources

Ricavare l'icona associata ad un file

Con il .NET Framework 1.0 e 1.1 un modo era ricorrere all'api SHGetFileInfo come descritto nel seguente:
http://support.microsoft.com/kb/319340/en-us

Con l'introduzione del metodo ExtractAssociatedIcon del .Net framework 2.0 è possibile ottenere lo stesso risultato tramite l'utilizzo del registry evitando così l'utilizzo di PInvoke:

    Public Shared Function GetFileExtensionIcon(ByVal fileExtension As String) As System.Drawing.Icon
        Dim defaultIconFile As String = Nothing

        Dim keyExtension As Microsoft.Win32.RegistryKey

        keyExtension = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey("." & fileExtension)

        If keyExtension IsNot Nothing Then
            'Lettura program name
            Dim programName As String
            programName = keyExtension.GetValue(String.Empty).ToString

            'Lettura program default icon
            Dim keyProgramDefaultIcon As Microsoft.Win32.RegistryKey
            keyProgramDefaultIcon = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey( _
                programName & "\DefaultIcon")

            If keyProgramDefaultIcon IsNot Nothing Then
                Dim defaultIconValue As String
                defaultIconValue = keyProgramDefaultIcon.GetValue(String.Empty).ToString
                defaultIconFile = defaultIconValue.Split(","c)(0)
            End If
        End If

        'Impostazione a icona di default nel caso non sia stata trovata
        If String.IsNullOrEmpty(defaultIconFile) Then
            defaultIconFile = System.IO.Path.Combine(System.Environment.SystemDirectory, "shell32.dll")
        End If

        Return System.Drawing.Icon.ExtractAssociatedIcon(defaultIconFile)
    End Function

Print | posted on Wednesday, June 14, 2006 10:28 AM | Filed Under [ Links Code, Snippets & Scripts .NET ]

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 6 and 5 and type the answer here:

Powered by:
Powered By Subtext Powered By ASP.NET