如何在c#中找到已安装软件的执行路径,例如媒体播放器,vlc播放器。我只需要找到他们的执行路径。如果我有一个vlc播放器安装在我的D驱动器。我如何找到VLC.exe的路径从我的C#编码如何找到已安装软件的执行路径
2
A
回答
2
此方法适用于位于其在Windows路径变量定义的文件夹中的任何可执行:
string pathToExe = LocateEXE("example.exe");
喜欢的Fredrik的方法只找到路径:
private string LocateEXE(String filename)
{
String path = Environment.GetEnvironmentVariable("path");
String[] folders = path.Split(';');
foreach (String folder in folders)
{
if (File.Exists(folder + filename))
{
return folder + filename;
}
else if (File.Exists(folder + "\\" + filename))
{
return folder + "\\" + filename;
}
}
return String.Empty;
}
然后如下使用它对于某些可执行文件
0
8
使用C#代码,你可以找到一些excutables的路径是这样的:
private const string keyBase = @"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths";
private string GetPathForExe(string fileName)
{
RegistryKey localMachine = Registry.LocalMachine;
RegistryKey fileKey = localMachine.OpenSubKey(string.Format(@"{0}\{1}", keyBase, fileName));
object result = null;
if (fileKey != null)
{
result = fileKey.GetValue(string.Empty);
}
fileKey.Close();
return (string)result;
}
使用它是这样的:
string pathToExe = GetPathForExe("wmplayer.exe");
然而,它可能很好,你想要的应用程序没有应用程序路径键。
+0
谢谢,这是我需要的。 – 2017-07-18 20:36:06
0
This stackoverflow.com article描述了如何获取与特定文件扩展名关联的应用程序。
也许你可以使用这种技术来获得与特定扩展名相关的应用程序,例如avi或wmv--无论是Medial Player还是您的情况下的VLC播放器?
0
我使用了CurrentVersion \ Installer \ Folders注册表项。只需传入产品名称。
private string GetAppPath(string productName)
{
const string foldersPath = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders";
var baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
var subKey = baseKey.OpenSubKey(foldersPath);
if (subKey == null)
{
baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32);
subKey = baseKey.OpenSubKey(foldersPath);
}
return subKey != null ? subKey.GetValueNames().FirstOrDefault(kv => kv.Contains(productName)) : "ERROR";
}
相关问题
- 1. 如何找到IronPython的安装路径
- 2. 从已安装的包中获取执行文件的路径?
- 3. 将python setup.py安装到替代路径中找不到已安装的软件包
- 4. VB.NET/C#查找已安装的软件名称和应用程序路径后如何找到exe名称
- 5. 如何更正NodeJS找不到已安装的软件包?
- 6. 获取已安装软件的路径c#.net
- 7. 安装bower如何找到软件包?
- 8. 可执行的JAR安装路径
- 9. 从MATLAB找到已安装程序的路径?
- 10. 确定yum软件包安装到的路径
- 11. 如何找到安装到android的USB路径?
- 12. 如何在Symbain 3rd版本中安装已安装的软件?
- 13. Pycharm无法找到已安装的软件包:keras
- 14. 安装软件包安装是否也更新已安装的软件包
- 15. 如何从已安装的NPM软件包运行脚本?
- 16. 如何找到安装Ruby Gem的路径(即Gem.lib_path c.f. Gem.bin_path)
- 17. 如何在控制台上找到已安装的nuget软件包?
- 18. 如何在Android Studio安装路径中找到Android-SDK
- 19. 安装debian软件包以执行安装操作
- 20. 我如何在Linux中找到安装的软件的位置?
- 21. 安装路径
- 22. NuGet软件包在安装时返回`路径中的非法字符.`安装
- 23. 节点NPM windows文件路径太长,安装软件包
- 24. 如何执行软件包安装位置
- 25. 已安装软件的unix注册表
- 26. 如何为已安装的python包使用自定义路径
- 27. 运行软件包安装时找不到头文件
- 28. 如何安装Scala软件
- 29. 已安装Logstash插件但未找到
- 30. 如何查找正在执行的Word或Excel文件的文件路径(例如文件 - 微软Word)。 С#
你的意思是你想通过注册表? – annakata 2009-05-26 10:08:23
是的我怎么能从c# – Arunachalam 2009-05-26 10:09:04