Récupération des applications "ouvrir avec..." d'un fichier (d'une extension)

Contenu du snippet

Cette fonction retourne la liste des applications (en fait la liste des commandes Shell) pour lancer le type de fichier concerné (on fournit l'extension du fichier).
Cette liste correspond aux applications présentes dans le menu contextuel "Ouvrir avec..." d'Explorer lorsque l'on fait un clic droit sur un fichier.

Source / Exemple :


Public Function GetOpenWithApp(ByVal Extension As String) As List(Of String)
        Dim hsubKeyExt, hSubKeyApp As RegistryKey
        GetOpenWithApp = New List(Of String)

        'Récupération des noms d'applications liés à l'extension
        hsubKeyExt = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\." & Extension & "\OpenWithList")
        If Not hsubKeyExt Is Nothing Then
            Dim sApplication As String
            Dim Cles() As String = hsubKeyExt.GetValueNames

            For Each sApplication In Cles
                sApplication = hsubKeyExt.GetValue(sApplication)
                'Récupération de la commande pour lancer cette application
                hSubKeyApp = Registry.ClassesRoot.OpenSubKey("Applications\" & sApplication & "\shell\open\command")
                If Not hSubKeyApp Is Nothing Then
                    GetOpenWithApp.Add(hSubKeyApp.GetValue(""))
                    hSubKeyApp.Close()
                End If
            Next
            hsubKeyExt.Close()
        End If
    End Function

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.