【调用PowerPoint的COM接口时,如何隐藏PowerPoint窗口的弹出】

Lings 2009-12-05 05:44:47
本人想通过VC调用PowerPoint的接口来操作PPT文档,一切都好,可就是解析的时候调用open函数,会弹出PowerPoint的窗口,再然后将窗口隐藏,代码:



_Application *g_app = NULL;
_Presentation *g_pPresentation;
Presentations *pPresentations = NULL;
Slides *g_pSlides;

HRESULT hr;

// COM环境初始化
hr = CoInitialize(NULL);

if (FAILED(hr))
{
return;
}

// 创建Application类,返回_Application接口
hr = CoCreateInstance(__uuidof(PowerPoint::Application),
NULL,
CLSCTX_LOCAL_SERVER,
__uuidof(PowerPoint::_Application),
(LPVOID *)&g_app);

g_app->put_Visible(msoTrue); // 显示Powerpoint窗口
// 此处如果不让PowerPoint窗口弹出,后面的操作都没法进行
g_app->put_WindowState(ppWindowMinimized); // 窗口最小化

g_app->get_Presentations(&pPresentations); // 获取Presentaions类

//打开PPT文件,返回_Presentation接口
pPresentations->Open(_bstr_t(pptPath), msoFalse, msoFalse, msoTrue, &g_pPresentation);

g_pPresentation->get_Slides(&g_pSlides); // 获取Slides

long count = 0;
g_pSlides->get_Count(&count);

// 遍历每张Slide





g_app->put_Visible(msoTrue); // 显示Powerpoint窗口
// 此处如果不让PowerPoint窗口弹出,后面的操作都没法进行

我不知道为什么会这样,我觉得弹出来很不爽,我见过有些PPT处理软件,也打开了PowerPoint的进程,但是没见到窗口弹出,不知道是如何实现的,望各位大侠帮忙啊!感激不尽!如果有解决方案,本人再加200分
...全文
406 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lings 2009-12-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 waistcoat14 的回复:]
你不显示参数应该这么写:
pPresentations->Open(_bstr_t(pptPath), msoFalse, msoFalse,msoFalse, &g_pPresentation);
[/Quote]

弹出PowerPoint的窗口不是在此处,是:

g_app->put_Visible(msoTrue); // 显示Powerpoint窗口
// 此处如果不让PowerPoint窗口弹出,后面的操作都没法进行


你说的做法是没有效果的,能帮我再看看吗?谢谢
WaistCoat14 2009-12-06
  • 打赏
  • 举报
回复
你不显示参数应该这么写:
pPresentations->Open(_bstr_t(pptPath), msoFalse, msoFalse, msoFalse, &g_pPresentation);

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧