【C#】获取已安装的应用名称、启动路径、安装位置、产品代码、卸载字符串等

这篇具有很好参考价值的文章主要介绍了【C#】获取已安装的应用名称、启动路径、安装位置、产品代码、卸载字符串等。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

代码

   /// <summary>
    /// Windows信息
    /// </summary>
    public partial class WindowsInfo
    {

        private static List<AppInfo> GetInstalledAppInfos()
        {
            List<AppInfo> appInfos = new List<AppInfo>();
            string SameApp = "";

            void AddApp(RegistryKey subkey, string keyName)
            {
                string displayIcon = subkey.GetValue("DisplayIcon") as string;
                if (string.IsNullOrWhiteSpace(displayIcon)) displayIcon = string.Empty;

                string installLocation = subkey.GetValue("InstallLocation") as string;
                if (string.IsNullOrWhiteSpace(installLocation)) installLocation = string.Empty;

                string displayName = subkey.GetValue("DisplayName") as string;
                if (string.IsNullOrWhiteSpace(displayName)) displayName = string.Empty;

                string uninstallString = subkey.GetValue("UninstallString") as string;
                if (string.IsNullOrWhiteSpace(uninstallString)) uninstallString = string.Empty;

                var app = new AppInfo(displayName, displayIcon, installLocation, keyName, uninstallString);

                if (appInfos.Exists(a => a.ToString() == app.ToString()))
                {
                    SameApp += app.ToString() + "\r\n";
                }
                else
                {
                    appInfos.Add(app);
                }
            }

            using (RegistryKey key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", false))
            {
                foreach (String keyName in key.GetSubKeyNames())
                {
                    RegistryKey subkey = key.OpenSubKey(keyName);
                    AddApp(subkey, keyName);
                }
            }

            using (var key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", false))
            {
                foreach (String keyName in key.GetSubKeyNames())
                {
                    RegistryKey subkey = key.OpenSubKey(keyName);
                    AddApp(subkey, keyName);
                }
            }

            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall", false))
            {
                foreach (String keyName in key.GetSubKeyNames())
                {
                    RegistryKey subkey = key.OpenSubKey(keyName);

                    AddApp(subkey, keyName);
                }
            }

            return appInfos;
        }

    }

    /// <summary>
    /// APP信息
    /// </summary>
    public class AppInfo
    {
        public AppInfo(string name, string displayIcon, string installLocation, string productCode, string uninstallString)
        {
            DisplayName = name;
            DisplayIcon = displayIcon;
            InstallLocation = installLocation;
            ProductCode = productCode;
            UninstallString = uninstallString;
        }

        /// <summary>
        /// 显示名称
        /// </summary>
        public string DisplayName { get; set; }
        /// <summary>
        /// 启动路径
        /// </summary>
        public string DisplayIcon { get; set; }
        /// <summary>
        /// 安装位置
        /// </summary>
        public string InstallLocation { get; set; }
        /// <summary>
        /// 产品代码或名称
        /// </summary>
        public string ProductCode { get; set; }
        /// <summary>
        /// 卸载字符串
        /// </summary>
        public string UninstallString { get; set; }

        public override string ToString()
        {
            return $"Name:{DisplayName}---Icon:{DisplayIcon}---Loc:{InstallLocation}---Code:{ProductCode}---UnStr:{UninstallString}";
        }
    }

例子

 var installedAppInfos = WindowsInfo.GetInstalledAppInfos();

参考

c#获取系统已安装软件列表(32,64位均可使用)_zhoyuwo的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-643617.html

到了这里,关于【C#】获取已安装的应用名称、启动路径、安装位置、产品代码、卸载字符串等的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包