欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#通过windows注册表获取软件清单的方法

程序员文章站 2023-12-10 19:52:04
本文实例讲述了c#通过windows注册表获取软件清单的方法。分享给大家供大家参考。具体如下: foreach (string softwarename in o...

本文实例讲述了c#通过windows注册表获取软件清单的方法。分享给大家供大家参考。具体如下:

foreach (string softwarename in object.softwarelist())
{
  textbox.text += softwarename + environment.newline;
}
////////////////////////////////////////////////////////////////////////
/// <summary>
/// windows系统获取软件列表
/// </summary>
/// <returns>string [] softwarelist</returns>
public string [] softwarelist()
{
 string[] softwarelist = null;
 //动态数组
 arraylist list = new arraylist();
 try
 {
  //打开注册列表卸载选项
  //software\microsoft\windows\currentversion\uninstall
  registrykey key = microsoft.win32.registry.localmachine.opensubkey("software\\microsoft\\windows\\currentversion\\uninstall");
  if (key != null)//如果系统禁止访问则返回null
  {
   foreach (string subkeyname in key.getsubkeynames())
   {
    //打开对应的软件名称
    registrykey subkey = key.opensubkey(subkeyname);
    if (subkey != null)
    {
     string softwarename = subkey.getvalue("displayname", "nothing").tostring();
     //如果没有取到,则不存入动态数组
     if (softwarename != "nothing")
     {
      list.add(softwarename);
     }
    }
   }
   //强制转换成字符串数组,防止被修改数据溢出
   softwarelist = (string[])list.toarray(typeof(string));
  }
 }
 catch (exception err)
 {
  console.writeline("出错信息:" + err.tostring());
 }
 return softwarelist;
}

希望本文所述对大家的c#程序设计有所帮助。