【发布时间】:2011-05-14 13:25:14
【问题描述】:
如何以编程方式检测当前系统上是否已安装 MSMQ?
我正在使用 C++,但其他语言的答案仍然会有所帮助。
(VS2008、WinXP 及以上)
【问题讨论】:
如何以编程方式检测当前系统上是否已安装 MSMQ?
我正在使用 C++,但其他语言的答案仍然会有所帮助。
(VS2008、WinXP 及以上)
【问题讨论】:
您可以简单地要求 COM 创建MSMQQueueInfo 对象的实例。如果成功,则说明 MSMQ 已安装。
#include <atlbase.h>
#include <mqoai.h>
#include <iostream>
using namespace std;
int main()
{
auto error = CoInitializeEx(0, COINIT_MULTITHREADED | COINIT_DISABLE_OLE1DDE);
if (FAILED(error))
{
wcout << L"You've got bigger problems" << endl;
}
else
{
CComPtr<IMSMQQueueInfo> info;
error = info.CoCreateInstance(__uuidof(MSMQQueueInfo));
if (SUCCEEDED(error))
{
wcout << L"MSMQ is installed" << endl;
}
}
}
【讨论】:
您还可以检查注册表项是否存在:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ。如果密钥存在,则安装 MSMQ。
【讨论】: