Csharp/C#教程:在C#中获取已安装程序的exe名称?分享


在C#中获取已安装程序的exe名称?

我用它来获取程序名称,但我需要exe名称。 我怎么找到它们?

string SoftwareKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products"; RegistryKey rk = default(RegistryKey); rk = Registry.LocalMachine.OpenSubKey(SoftwareKey); //string skname = null; string sname = string.Empty; foreach (string skname in rk.GetSubKeyNames()) { try { sname = Registry.LocalMachine.OpenSubKey(SoftwareKey).OpenSubKey(skname).OpenSubKey("InstallProperties").GetValue("DisplayName").ToString(); listBox1.Items.Add(sname); } catch (Exception ex) { MessageBox.Show(ex.Message); } } 

我想这样做:

 System.Diagnostics.Process.Start("Name.exe"); 

运行程序。

安装程序没有,实际上也不知道实际的可执行文件。 它只知道安装包 – .MSI文件。

为了获取可执行文件的名称(是的,许多“程序”由许多.EXE文件组成),您需要询问.MSI文件。

在Windows中,程序通常由msi文件安装,并且单个程序包可以安装多个exe。 确实有时程序是由setup.exe安装的,但它们只是一个提取真实msi文件的包装器。

某些供应商(如InstallShield)可能会将setup.exe存储在本地硬盘中的某处,以防用户需要再次启动setup.exe以进行修改卸载。 但是,这是供应商特定的实现。

由于缺乏对细节的澄清,您可以在本地驱动器上获取.exe:

 var allExePaths = from drive in Environment.GetLogicalDrives() from exePath in Directory.GetFiles(drive, "*.exe", SearchOption.AllDirectories) select exePath; 

如果您正在寻找特定的产品,请提供更多详细信息,了解您要寻找的产品。 使用注册表列出已安装的程序似乎不是您想要做的,所以请更具体。

上述就是C#学习教程:在C#中获取已安装程序的exe名称?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1011423.html

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐