windows 如何获取应用程序的安装路径?

8mmmxcuj  于 2023-08-07  发布在  Windows
关注(0)|答案(6)|浏览(270)

在使用C#的Windows中,我如何从我的项目中获取软件的安装路径(例如,考虑NUnit或任何其他软件,如MS word等)**?还有如何设置路径变量,我们在环境变量中设置,这样我们就可以运行应用程序,只需在命令提示符。
就像如果我在“C:\Program Files”中安装NUnit,我可以通过在cmd提示符中给出'NUnit'来运行它,但如果我在不同的位置安装,我不能这样做。我需要从我的项目中获取NUnit或安装在我的系统(具有Windows XP)中的任何其他软件的位置或路径。
编辑:就像我可以从注册表中得到安装程序的路径。HKEY_CURRENT_USER->软件

stszievb

stszievb1#

从注册表中提取值的步骤如以下代码段所示。您可能已经知道,应用程序没有放置安装信息的标准规则。下面显示的步骤是基于COM的应用程序,其中应用程序必须以合理的标准方式提供本地可执行路径。
对于非com应用程序,请检查是否可以从已安装的应用程序缓存中提取某些数据。
我讨厌承认解决方案并不像我希望的那样优雅。每个子键必须连续打开,而单一方法打开不起作用。

//string hiveName = @"CLSID"; // for 64 bit COM 7applications
string hiveName = @"WOW6432Node\CLSID"; // for 32 bit COM applications
using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(hiveName))

{
  if (key != null) {
      using (RegistryKey key2 = key.OpenSubKey("{<YourAppGUID>}"))
  {
  if (key2 != null) {
    using (RegistryKey key3 = key2.OpenSubKey("LocalServer32"))
  {
  if (key3 != null) {
    return key3.GetValue("").ToString();
  }
}

字符串

kognpnkq

kognpnkq2#

使用系统和应用程序类。这会给予你各种各样的信息。
例如:应用程序。可执行路径
它还提供了方法来做你想做的事情。
编辑:另请参阅注册表读/写说明here

pieyvz9o

pieyvz9o3#

Application.ExecutablePath (includes filename)
Application.StartupPath (not includes filename)

字符串
这将为您提供应用程序启动的路径。希望这将是安装路径。

flseospp

flseospp4#

string appFileName = Environment.GetCommandLineArgs()[0];

字符串
将为您提供可执行文件的完整路径

string directory = Path.GetDirectoryName(appFileName);


解压缩目录。

string envPath = Environment.GetEnvironmentVariable("PATH");
Environment.SetEnvironmentVariable(envPath + ";" + yourPath);


编辑当前进程的PATH环境变量。

kadbb459

kadbb4595#

Application.StartupPath用于获取C#中的安装位置。

ldfqzlk8

ldfqzlk86#

就像如果我在“C:\Program Files”中安装Nunit,我可以通过在cmd提示符中给出“nunit”来运行它,但如果我安装在不同的位置,我就不能这样做了。
可能你使用的是Windows Vista,它可以在程序文件中搜索,但不会在其他文件夹中搜索。
在使用C#的Windows中,如何获取软件的安装路径(例如考虑nunit)。
这取决于您如何安装应用程序。安装程序知道路径,您可以编写安装程序将该路径写入某个地方,例如注册表。
还有如何设置路径变量,我们在环境变量中设置,这样我们就可以运行应用程序,只需在命令提示符。
How do I get and set Environment variables in C#?

相关问题