Aide here ...
Microsoft a excellent (mais pas bien connu) outil pour ce - appelé LogParser
Il utilise un moteur SQL pour interroger toutes sortes de données textuelles comme le Registre, le Système de fichiers, le journal des événements, AD etc ... Pour être utilisable depuis C#, vous devez construire un assemblage interop à partir du Logparser . Serveur COM dll utilisant suivant (ajuster le chemin LogParser.dll) commande.
tlbimp "C:\Program Files\Log Parser 2.2\LogParser.dll"
/out:Interop.MSUtil.dll
Voici un petit échantillon, qui illustre comment interroger la valeur 'VisualStudio' dans le répertoire \ HKLM \ SOFTWARE \ Microsoft arbre.
using System;
using System.Runtime.InteropServices;
using LogQuery = Interop.MSUtil.LogQueryClass;
using RegistryInputFormat = Interop.MSUtil.COMRegistryInputContextClass;
using RegRecordSet = Interop.MSUtil.ILogRecordset;
class Program
{
public static void Main()
{
RegRecordSet rs = null;
try
{
LogQuery qry = new LogQuery();
RegistryInputFormat registryFormat = new RegistryInputFormat();
string query = @"SELECT Path from \HKLM\SOFTWARE\Microsoft where
Value='VisualStudio'";
rs = qry.Execute(query, registryFormat);
for(; !rs.atEnd(); rs.moveNext())
Console.WriteLine(rs.getRecord().toNativeString(","));
}
finally
{
rs.close();
}
}
}
Cela ne concerne que les valeurs de registre, y a-t-il un moyen de rechercher la clé de registre? J'ai essayé de remplacer 'Value' avec' KeyName' ne fonctionnait pas. Merci –