如果没有注册表的帮助,我如何知道是否安装了MySQL?我试图通过C#在Windows机器上确定这个。
我找到了一个涉及查询注册表的解决方案,但我不想依赖于此。 C#中是否有用于确定当前安装的软件的功能?
答案 0 :(得分:2)
您可以通过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()
方法)。
答案 1 :(得分:0)
假设你还需要访问MySQL(a.o.t。只知道它的存在)你可以
答案 2 :(得分:0)
检查MySQL安装注册表项:
bool IsMySqlInstalled()
{
return Registry.LocalMachine.OpenSubKey(@"SOFTWARE\MySQL AB") != null;
}
有关创建密钥的MySQL详细信息,可以在here的“更改注册表”部分下找到:
MySQL Installation Wizard(MySQL安装向导)在Windows XP中创建一个Windows注册表项。 典型的安装情况,位于 HKEY_LOCAL_MACHINE \ SOFTWARE \ MySQL AB。