Récupérer le chemin d’installation du fichier à partir du registre

Je crée un utilitaire WPF qui doit accéder au registre de la machine locale pour connaître le chemin d’installation du programme.

J’ai navigué vers la clé via Regedit et il donne un nom, un type et des données. Dans les données, il indique le chemin d’installation, je souhaite extraire le chemin d’installation.

Je sais que je dois accéder à cette clé dans le registre:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ App Chemins \

alors je dois accéder à un dossier dans cette clé avec les informations concernant le chemin d’installation.

J’ai résolu mon problème, à tous ceux qui veulent une solution à l’avenir si vous êtes toujours bloqué après cela, envoyez-moi un message, j’ai trouvé qu’il était difficile de trouver les ressources.

RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\App Paths\myexe.exe"); ssortingng regFilePath = null; object objRegisteredValue = key.GetValue(""); registeredFilePath = value.ToSsortingng(); 

Pour lire les clés de registre, vous devez utiliser la classe Microsot.Windows.RegistryKey , la classe Registry peut ouvrir la clé de registre.

Cette question m’a été très utile. Je suis venu avec une classe d’assistance, voulant jouer avec les nouveaux Tuples.

Exemple d’utilisation:

 public ssortingng SkypeExePath => InstalledApplicationPaths.GetInstalledApplicationPath( "lync.exe" ); 

La classe:

 public static class InstalledApplicationPaths { public static ssortingng GetInstalledApplicationPath( ssortingng shortName ) { var path = GetInstalledApplicationPaths().SingleOrDefault( x => x?.ExectuableName.ToLower() == shortName.ToLower() )?.Path; return path; } public static IEnumerable<(string ExectuableName, string Path)?> GetInstalledApplicationPaths() { using ( RegistryKey key = Registry.LocalMachine.OpenSubKey( @"Software\Microsoft\Windows\CurrentVersion\App Paths" ) ) { foreach ( var subkeyName in key.GetSubKeyNames() ) { using ( RegistryKey subkey = key.OpenSubKey( subkeyName ) ) { yield return (subkeyName, subkey.GetValue( "" )?.ToSsortingng()); } } } } }