如何使用 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);