我想根据 outlook 是否打开在我的应用程序中执行特定操作。
我试过这段代码,但它总是返回 false。
CLSID clsid;
HRESULT hr = CLSIDFromProgID(_T("Outlook.Application"), &clsid);
if (hr != S_OK)
return false;
IUnknown *pUnknown = NULL;
hr = GetActiveObject(clsid, 0, &pUnknown);
return (hr == S_OK);
谁能告诉我如何在 C++ 中检查“Outlook”是否打开。
最佳答案
据我所知,C++ 标准在这种情况下无济于事,因为您的问题是特定于操作系统的。
如果您使用的是 Windows 操作系统,则可以使用“WinAPI”。
以下是一些步骤。以下步骤的代码可在以下 MSDN 链接中找到。您可以根据需要修改代码。
https://msdn.microsoft.com/en-us/library/windows/desktop/ms682623(v=vs.85).aspx
调用“EnumProcesses”。将返回进程 ID 列表。
使用“EnumProcesses”返回的进程 ID 遍历每个进程。
- 然后使用“OpenProcess”和“GetModuleBaseName”找到进程的名称,如上面的 MSDN 链接所示。
- 在上述步骤(第 3 步)返回的进程名称中搜索字符串“Outlook”。
这是我知道的粗略方法。
关于c++ - 如何在 C++ 中检查 Microsoft Outlook 是否打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42801547/