如何在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