如何在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. 如何從安裝的軟件中找到路徑?1
- 2. 找到檢測到的軟件包的安裝路徑
- 3. R,找到已安裝的軟件包
- 4. 檢查已安裝的軟件包,如果未找到安裝
- 5. 如何找到IronPython的安裝路徑
- 6. 從已安裝的包中獲取執行文件的路徑?
- 7. 如何找到InfiniBand安裝路徑
- 8. 將python setup.py安裝到替代路徑中找不到已安裝的軟件包
- 9. 如何更正NodeJS找不到已安裝的軟件包?
- 10. VB.NET/C#查找已安裝的軟件名稱和應用程序路徑後如何找到exe名稱
- 11. 獲取已安裝軟件的路徑c#.net
- 12. 可執行的JAR安裝路徑
- 13. 可執行文件找不到路徑
- 14. 從MATLAB找到已安裝程序的路徑?
- 15. 如何使用PowerShell標識已安裝應用程序的可執行路徑?
- 16. 如何查看已安裝軟件的安裝說明和自制軟件?
- 17. 確定yum軟件包安裝到的路徑
- 18. 如何在Symbain 3rd版本中安裝已安裝的軟件?
- 19. 如何找到安裝到android的USB路徑?
- 20. 獲取已安裝作曲軟件包的文件系統路徑
- 21. Anaconda環境未找到已安裝的軟件包
- 22. Pycharm無法找到已安裝的軟件包:keras
- 23. 安裝軟件包安裝是否也更新已安裝的軟件包
- 24. 如何從已安裝的NPM軟件包運行腳本?
- 25. 安裝德爾福服務的可執行文件的路徑
- 26. 如何查找運行已安裝的軟件名稱和版本處理
- 27. 如何找到安裝Ruby Gem的路徑(即Gem.lib_path c.f. Gem.bin_path)
- 28. 如何在控制檯上找到已安裝的nuget軟件包?
- 29. libtool安裝保留了可執行文件的臨時路徑
- 30. 如何查找給定軟件是否已安裝,以及是否未安裝如何使用PowerShell安裝它?
你的意思是你想通過註冊表? – annakata 2009-05-26 10:08:23
是的我怎麼能從c# – Arunachalam 2009-05-26 10:09:04