110,535
社区成员
发帖
与我相关
我的任务
分享
static void Main(string[] args)
{
string regMain = "Software//Microsoft//Windows//CurrentVersion//Uninstall";
string[] subKey = { "DisplayName" };
ManagementClass mClass = new ManagementClass(@"//" + "计算机名orIP" + @"/root/DEFAULT:StdRegProv");
mClass.Scope.Options.Password = "password";//密码
mClass.Scope.Options.Username = "Administrator";//用户名
mClass.Scope.Options.Authority = "NTLMDOMAIN:DOMAIN";//如果是本机用户,则填写DOMAIN;域用户,则填写所在域
object[] method_args = new object[] { 0x80000002, regMain, null };
object result = mClass.InvokeMethod("EnumKey", method_args);//得到所有子键
string[] sAppList = (String[])method_args[2];//保存子键
foreach (string sName in sAppList)
{
ManagementBaseObject inParams = mClass.GetMethodParameters("GetStringValue");
inParams["hDefKey"] = 0x80000002;
inParams["sSubKeyName"] = regMain + @"/" +sName;
inParams["sValueName"] = "DisplayName";
ManagementBaseObject curRes = mClass.InvokeMethod("GetStringValue", inParams, null);//得到显示名
if (curRes["sValue"] != null)
{
string keyValue = curRes["sValue"].ToString();
Console.WriteLine(keyValue);//列出所有软件名
}
}
Console.ReadKey();
}