Как я могу найти конкретное значение в разделах реестра?Как найти определенное значение в ключах реестра
Например, я хочу искать XXX в
HKEY_CLASSES_ROOT\Installer\Products
любой образец кода в C# будет оценено,
благодаря
Как я могу найти конкретное значение в разделах реестра?Как найти определенное значение в ключах реестра
Например, я хочу искать XXX в
HKEY_CLASSES_ROOT\Installer\Products
любой образец кода в C# будет оценено,
благодаря
Помощь here ...
Microsoft имеет большой (но не хорошо известный) инструмент для этого - LogParser
Он использует механизм SQL для запроса всех типов текстовых данных, таких как Registry, Файловая система, журнал событий, AD и т. Д. Для использования с C# вам необходимо построить сборку Interop из Logarser . dll COM-сервер, используя следующий (настроить путь LogParser.dll) .
tlbimp "C:\Program Files\Log Parser 2.2\LogParser.dll"
/out:Interop.MSUtil.dll
Ниже приведен небольшой пример, который иллюстрирует, как для запроса Значение 'VisualStudio' в \ HKLM \ SOFTWARE \ Microsoft дерева.
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();
}
}
}
В случае, если вы не хотите, чтобы принять зависимость от LogParser (как мощный, как это): Я хотел бы взглянуть на Microsoft.Win32.RegistryKey
класса (MSDN). Используйте OpenSubKey
, чтобы открыть HKEY_CLASSES_ROOT \ Installer \ Products, а затем позвонить GetSubKeyNames
, чтобы получить имена разделов.
Откройте каждую из них, позвоните по номеру GetValue
по интересующей вас ценности (ProductName, я думаю) и сравните результат с тем, что вы ищете.
это только просматривает значения реестра, есть ли способ поиска ключа реестра? Я попытался заменить `Value` на` KeyName`, не работал. благодаря – 2017-04-17 02:39:53