C#学习教程:如何使用C#检查安装程序的位置分享


如何使用C#检查安装程序的位置

我需要按程序名称(添加或删除程序中显示的名称)检查程序的安装位置。 什么是最好的方法,以便它适用于所有语言。

看一下注册表

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall 

只需迭代所有子键,然后查看值DisplayNameInstallLocation 。 在这里你可以找到你想要的信息以及更多;-)

为了增加Oliver的答案,我在静态方法中包含了这个检查。

 public static bool IsProgramInstalled(string programDisplayName) { Console.WriteLine(string.Format("Checking install status of: {0}", programDisplayName)); foreach (var item in Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall").GetSubKeyNames()) { object programName = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + item).GetValue("DisplayName"); Console.WriteLine(programName); if (string.Equals(programName, programDisplayName)) { Console.WriteLine("Install status: INSTALLED"); return true; } } Console.WriteLine("Install status: NOT INSTALLED"); return false; } 

看看这些链接

使用Windows Installer清点产品和修补程序

MsiGetProductInfoEx函数

您可以使用WMI类来实现此目的。 但前提条件是

在示例代码下方执行此操作

上述就是C#学习教程:如何使用C#检查安装程序的位置分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

  string queryString = "SELECT Name, ProcessId, Caption, ExecutablePath" + " FROM Win32_Process"; SelectQuery query = new SelectQuery(queryString); ManagementScope scope = new System.Management.ManagementScope(@"\.rootCIMV2"); ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); ManagementObjectCollection processes = searcher.Get(); foreach(ManagementObject mObj in processes) { var name = mObj ["Name"].ToString(); var ProcessId = Convert.ToInt32(mObj ["ProcessId"]); var Caption = mObj ["Caption"].ToString(); var Path = mObj ["ExecutablePath"].ToString(); } 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/960223.html

发表评论

邮箱地址不会被公开。 必填项已用*标注