如何在注册表项中搜索特定值?
例如,我想在中搜索XXX
HKEY_CLASSES_ROOT\Installer\Products
Run Code Online (Sandbox Code Playgroud)
C#中的任何代码示例都将受到赞赏,
谢谢
Gal*_*ian 11
在这里帮忙......
微软有一个很棒的(但不是很知名的)工具 - 名为LogParser
它使用SQL引擎查询所有类型的基于文本的数据,如Registry,Filesystem,eventlog,AD等...要从C#中使用,您需要使用以下命令从Logparser.dll COM服务器构建Interop程序集(调整LogParser.dll路径)命令.
tlbimp "C:\Program Files\Log Parser 2.2\LogParser.dll"
/out:Interop.MSUtil.dll
Run Code Online (Sandbox Code Playgroud)
以下是一个小样本,演示了如何查询\ HKLM\SOFTWARE\Microsoft树中的值'VisualStudio'.
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25071 次 |
| 最近记录: |