如何使用 OLE 自动化启动 OneNote 并将其带到前台?
How to launch OneNote and bring it to the foreground using OLE automation?
我一直在努力使用 OLE 自动化将 OneNote 带到前台。当我 运行 以下代码时,OneNote 在后台加载,我无法将它带到前台。我在尝试启动并将 Word、Excel、PowerPoint 和 Edge 置于前台时没有遇到任何问题,但是 OneNote 的行为有所不同。关于 OneNote 使用 OLE 自动化的信息非常少,一些页面不再存在。
如有任何帮助,我们将不胜感激。您可以从 here
下载 Onenote14-x86.h 文件
#include "stdafx.h"
#include "onenote14-x86.h"
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
IApplication* piOneNote;
CoCreateInstance(__uuidof(Application), NULL, CLSCTX_LOCAL_SERVER, __uuidof(IApplication), (void**)&piOneNote);
if(piOneNote)
{
BSTR temp;
HRESULT hr = piOneNote->GetHierarchy(NULL, hsNotebooks, &temp);
}
}
您可以通过此调用创建一个新的windows
piOneNote->NavigateTo(NULL, NULL, VARIANT_TRUE);
我一直在努力使用 OLE 自动化将 OneNote 带到前台。当我 运行 以下代码时,OneNote 在后台加载,我无法将它带到前台。我在尝试启动并将 Word、Excel、PowerPoint 和 Edge 置于前台时没有遇到任何问题,但是 OneNote 的行为有所不同。关于 OneNote 使用 OLE 自动化的信息非常少,一些页面不再存在。
如有任何帮助,我们将不胜感激。您可以从 here
下载 Onenote14-x86.h 文件#include "stdafx.h"
#include "onenote14-x86.h"
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
IApplication* piOneNote;
CoCreateInstance(__uuidof(Application), NULL, CLSCTX_LOCAL_SERVER, __uuidof(IApplication), (void**)&piOneNote);
if(piOneNote)
{
BSTR temp;
HRESULT hr = piOneNote->GetHierarchy(NULL, hsNotebooks, &temp);
}
}
您可以通过此调用创建一个新的windows
piOneNote->NavigateTo(NULL, NULL, VARIANT_TRUE);