如何使用OLE自动化启动OneNote并将其置于前台?

问题描述

我一直在努力使用OLE自动化将OneNote带到前台。当我运行以下代码时,OneNote将在后台加载,而我无法将其带到前台。尝试启动并将Word,Excel,PowerPoint和Edge放在前台时,我没有任何问题,但是OneNote的行为有所不同。关于使用OLE自动执行OneNote的信息很少,并且某些页面不再存在。

任何帮助将不胜感激。您可以从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);

 } 
 }

解决方法

您可以通过此调用创建新窗口

piOneNote->NavigateTo(NULL,NULL,VARIANT_TRUE);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...