如何從VB.net中找到已安裝應用程序的路徑,如果我知道應用程序exe文件的名稱? 謝謝!查找應用程序路徑
查找應用程序路徑
回答
如果你的意思是任何應用程序(不是運行的應用程序),那麼除了在硬盤上搜索該文件的名稱外,沒有別的辦法。
如果你至少可以確信它在Program Files文件夾中,這應該會給你你所需要的。
string[] files = System.IO.Directory.GetFiles(
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles),
"Yourexe.exe", System.IO.SearchOption.AllDirectories);
這將返回到Program Files文件夾中具有該名稱的所有文件的路徑的字符串數組。
如果您不能假定它在Program Files中,那麼您可以替換任何目錄。
string rootDirectory = System.IO.DriveInfo.GetDrives()[0].RootDirectory.FullName;
string[] files = System.IO.Directory.GetFiles(
rootDirectory,
"Yourexe.exe", System.IO.SearchOption.AllDirectories);
這將搜索整個主硬盤驅動器。再次,您可以用變量代替任何根路徑。
應該指出的是,這些選項相對較慢;不幸的是,如果不知道更多關於可能安裝的信息,則無法快速完成此操作。
這是如何找到正在執行的程序集的路徑,如果這是你在找什麼?
String strPath = System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
[Visual Basic]
Dim strPath As String = System.IO.Path.GetDirectoryName(_
System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
該鏈接將告訴你如何找到其他文件的路徑,如果你知道文件的名稱:
http://csharp.net-tutorials.com/file-handling/file-and-directory-information/
具體而言,這裏是從上面的鏈接的代碼片段找到可執行目錄中的文件:
FileInfo[] subFiles = di.GetFiles("*.exe", SearchOption.AllDirectories);
您可以用可執行文件的名稱替換:「* .exe」。
如果您的代碼在application.exe中執行,您可以通過調用Assembly.GetExecutingAssembly().Location
來獲取文件的位置(application.exe)。
如果你指的是應用程序的啓動路徑:
Application.StartupPath()
- 注:以上將無法正常工作,如果你想通過引用的程序集來訪問它
如果您指的是通過名稱搜索另一個應用程序,那麼我認爲沒有內置任何內容。您必須遍歷本地計算機上的文件。
如果我的理解正確,你想找到一個安裝在你的機器上的應用程序,但不是必需的。正在運行的應用程序?如果是這樣,你可以檢查註冊表...
對不起,這是在C#中,我不熟悉VB.Net。
public string GetApplicationPath(string appname)
{
using(Microsoft.Win32.RegistryKey key = Microsoft.Win32.RegistryKey.OpenRemoteBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, ""))
{
using(Microsoft.Win32.RegistryKey subkey = key.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\" + appname))
{
if(subkey == null)
return "";
object path = subkey.GetValue("Path");
if(path!=null)
return (string)path;
}
}
return "";
}
然後,您可以通過使用稱之爲:
路徑字符串= GetApplicationPath( 「Myexename.exe」);
正如其他人已經提到,如果你正在尋找自己的路徑,這是很容易的。如果你需要一個arbitary運行的應用程序的路徑,你可以嘗試這樣的事:
var procList = Process.GetProcesses().Where(process => process.ProcessName.Contains("notepad"));
foreach (var process in procList)
{
Console.WriteLine("Path to {0}: {1}", process.ProcessName, Path.GetDirectoryName(process.MainModule.FileName));
}
當您需要了解過程中的一些其他的信息,你應該看看到Process class。
如果您正在尋找的應用程序未運行,您可以嘗試搜索Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
。
或者您可以在註冊表路徑HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
內嘗試搜索以列出所有程序控制面板 - 添加/刪除程序。
如果所有這些步驟都無助於找到您想要的應用程序,那麼除了全面掃描硬盤驅動器外,沒有其他方法(據我所知)。
- 1. 用於web應用程序的JPF(Java路徑查找程序)
- 2. 企業庫FileConfigurationSource查找調用應用程序的路徑
- 3. 如何檢查路徑是應用程序的緩存路徑?
- 4. 從Web方法內部查找應用程序路徑
- 5. 需要查找Web應用程序路徑
- 6. 如何查找在ASP.NET應用程序的路徑
- 7. Django應用程序路徑
- 8. 應用程序路徑
- 9. 查找C:\程序路徑(不是腳本路徑)
- 10. 查找路徑
- 11. 使用序言查找路徑
- 12. 查找與路徑
- 13. 默認應用程序路徑使用
- 14. 如何使用C查找應用程序包(NSBundle)中文件的路徑?
- 15. 查找給定路徑的根路徑
- 16. 用指定路徑啓動MAC查找程序窗口
- 17. 使用beanshell的Jmeter http路徑值查找程序
- 18. 在Cocoa應用程序中設置.dylib路徑的路徑
- 19. Dropwizard路徑:獲取應用程序中的所有路徑
- 20. libwnck如何找到應用程序/窗口的圖標路徑
- 21. 找到安裝的應用程序的路徑Ubuntu
- 22. C#裝飾應用程序路徑
- 23. Grails測試應用程序類路徑
- 24. 保存UIImage在應用程序路徑
- 25. 重寫應用程序路徑ASP.NET C#
- 26. 獲取應用程序的路徑
- 27. wxWidgets:獲取應用程序路徑
- 28. XML應用程序設置路徑
- 29. 動態應用程序路徑
- 30. 運行ASP.NET應用程序的路徑
你究竟是什麼意思? – SLaks 2010-04-23 13:18:52