C#实现读取注册表监控当前操作系统已安装软件变化的方法

本文实例讲述了C#实现读取注册表监控当前操作系统已安装软件变化的方法。分享给大家供大家参考。具体实现方法如下:

private static HybridDictionary GetSoftName()
{
 string strSoftName = string.Empty;
 HybridDictionary hdSoftName = new HybridDictionary();
 /*对注册表节点"Software/Microsoft/Windows/CurrentVersion/Uninstall"下的内容进行操作。
 RegistryKey Registry 为注册表操作类*/
 using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall", false))
 {
  if (key != null)
  {
   foreach (string keyName in key.GetSubKeyNames())
   {
    using (RegistryKey key2 = key.OpenSubKey(keyName, false))
    {
     if (key2 != null)
     {
      string softwareName = Convert.ToString(key2.GetValue("DisplayName"));//获取DisplayName,如存在值,则系统中安装有该软件
      //string installLocation = key2.GetValue("InstallLocation", "").ToString();//软件安装路径
      if (!string.IsNullOrEmpty(softwareName))
      {
       if (!hdSoftName.Contains(softwareName))
       {
        hdSoftName.Add(softwareName, string.Empty);//将软件名作为集合的key
       }
      }
     }
    }
   }
  }
 }
 return hdSoftName;
}

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

(0)

相关推荐

  • C#操作注册表的方法

    using Microsoft.Win32 ; 1.读取指定名称的注册表的值 复制代码 代码如下: private string GetRegistData(string name) { string registData; RegistryKey hkml = Registry.LocalMachine; RegistryKey software = hkml.OpenSubKey("SOFTWARE",true); RegistryKey aimdir = software.Ope

  • c#读写注册表示例分享

    复制代码 代码如下: //写注册表RegistryKey regWrite;//往HKEY_CURRENT_USER主键里的Software子键下写一个名为"Test"的子键//如果Test子键已经存在系统会自动覆盖它regWrite = Registry.CurrentUser.CreateSubKey("Software\\Test");//往Test子键里添两条数据项,一条名为"Name",另一条名为"Sex"//值分别

  • C#操作注册表的方法详解

    本文实例讲述了C#操作注册表的方法.分享给大家供大家参考,具体如下: 下面我们就来用.NET下托管语言C#注册表操作,主要内容包括:注册表项的创建,打开与删除.键值的创建(设置值.修改),读取和删除.判断注册表项是否存在.判断键值是否存在. 准备工作: 1. 要操作注册表,我们必须要引入必要的命名空间: 复制代码 代码如下: using Microsoft.Win32; 在这个命名空间里面包含了许多注册表相关的类,足够我们使用了~~ 2. 命名空间里面提供了一个类:RegistryKey 利用它

  • 使用C#在注册表中保存信息的例子

    写出来,方便记忆,以后要用,可以直接改改就能用. 复制代码 代码如下: using System; namespace Backend{    public class RegistryStorage    {        public static PageVisibility OpenAfterStart()        {            Microsoft.Win32.RegistryKey registryKey;            PageVisibility visi

  • C#设置软件开机自动运行的方法(修改注册表)

    本文实例讲述了C#设置软件开机自动运行的方法.分享给大家供大家参考,具体如下: #region /// <summary> /// 开机启动项 /// </summary> /// <param name="Started">是否启动</param> /// <param name="name">启动值的名称</param> /// <param name="path"

  • WinForm通过操作注册表实现限制软件使用次数的方法

    本文实例讲述了WinForm通过操作注册表实现限制软件使用次数的方法.分享给大家供大家参考,具体如下: 1.创建注册表文件: 打开记事本,输入一些内容: REGEDIT4 [HKEY_CURRENT_USER/Software/MyRegDataApp] "UseTime"="10" 保存为"RegData.reg" 2.创建winform项目 引用名称空间 using Microsoft.Win32 ; 在Form中激活load事件,并添加代码

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

    本文实例讲述了C#通过windows注册表获取软件清单的方法.分享给大家供大家参考.具体如下: foreach (string SoftwareName in Object.SoftwareList()) { textBox.Text += SoftwareName + Environment.NewLine; } //////////////////////////////////////////////////////////////////////// /// <summary> ///

  • C# WinForm中禁止改变窗口大小的方法

    本文介绍在使用C#开发WinForm窗体程序时,如何设置窗体的大小不能被改变. 我们在开发一个窗体(WinForm)程序时,所有的控件都部署在程序界面上了,如果这时来把窗体的大小调整一下,那界面就难看了.怎么设置窗体大小不能被修改呢? 在Form类下面有一个FormBorderStyle的字段,我们可以通过设置它的值来让窗体不能被拉大拉小.FormBorderStyle的值设置为FormBorderStyle.FixedSingle或Fixed3D时,窗体大小是不能被改变的. 当然,还有一种情况

  • C# 注册表 操作实现代码

    其中第二级目录包含了五个预定义主键分别是:HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_CONFIG. 下面我们来分别解释这5个类的作用 HKEY_CLASSES_ROOT该主键包含了文件的扩展名和应用程序的关联信息以及Window Shell和OLE用于储存注册表的信息.该主键下的子键决定了在WINDOWS中如何显示该类文件以及他们的图标,该主键是从HKEY_LCCAL_MACHIN

  • C#设置自定义文件图标实现双击启动(修改注册表)

    程序生成的自定义文件,比如后缀是.test 这种文件怎么直接启动打开程序,并打开本文件呢 1.双击打开 2.自定义的文件,有图标显示 3.自定义的文件,点击右键有相应的属性 后台代码:(如何在注册表中修改信息) //工具启动路径 string toolPath = System.Windows.Forms.Application.StartupPath + "\\邮件小工具.exe"; string extension = SptdConst.FileExtension; string

  • C#读写注册表的思路及代码

    NET框架在Microsoft.Win32名字空间中提供了两个类来操作注册表:Registry和RegistryKey.这两个类都是密封类不允许被继承.下面我们分别来介绍这两个类.Registry类提供了7个公共的静态域,分别代表7个基本主键(其中两个在XP系统中没有)分别是:  Registry.ClassesRoot 对应于HKEY_CLASSES_ROOT主键 Registry.CurrentUser 对应于HKEY_CURRENT_USER主键 Registry.LocalMachine

随机推荐