沒有註冊表的幫助,我怎麼知道MySQL是否安裝?我試圖通過C#在Windows機器上確定它。如何檢測MySQL是否安裝?
我發現,涉及查詢註冊表的解決方案,但我不想靠這個。 C#中是否有任何函數用於確定當前安裝的軟件?
沒有註冊表的幫助,我怎麼知道MySQL是否安裝?我試圖通過C#在Windows機器上確定它。如何檢測MySQL是否安裝?
我發現,涉及查詢註冊表的解決方案,但我不想靠這個。 C#中是否有任何函數用於確定當前安裝的軟件?
假設你還需要訪問MySQL(AOT只知道有關它的存在),你可以
您可以通過WMI執行此操作:您需要的類是Win32_Product
。
這真的容易在PowerShell中:
Get-WmiObject -Class Win32_Product
會得到安裝的產品,然後您可以過濾列表。
在C#中,嘗試System.Management
命名空間:
public bool CheckForMySQLServer()
{
string query = "SELECT Name FROM Win32_Product WHERE Name LIKE '%MySQL Server%'";
var searcher = new ManagementObjectSearcher(query);
var collection = searcher.Get();
return collection.Count > 0;
}
注意,這是令人髮指的慢 - 接管我的電腦上一分鐘 - 但如果你需要,你可以得到的版本號字符串的保持(見收集項目上的GetText()
方法)。
你想完成什麼? – Matten 2011-12-29 12:15:59
@Matten:應該是更清楚現在... – 2011-12-29 12:16:55
功能在C#中確定當前已安裝的軟件......如果這一功能將檢索信息...登記 – 2011-12-29 12:22:32