如何使用C#进行PPT展示。

您所在的位置:网站首页 网页嵌入ppt播放 如何使用C#进行PPT展示。

如何使用C#进行PPT展示。

2024-01-13 08:16| 来源: 网络整理| 查看: 265

 

先明确下需要达到的目标:

1、可以使用C#程序(WinForm和WPF)打开一个PPT文件,并且可以切换到展示模式

2、可以程序的控制PPT的动作。例如上一页下一页等。

3、程序可以获得PPT展示的信息。例如播放到了第几页。

4、可以将PPT展示的窗口嵌入到自己的界面中。

5、程序可以获得该页的文档内容。(里面的链接,视频,文字等)

0、准备工作

首先要添加

Microsoft.Office.Interop.PowerPoint

office

两个引用,在安装了Office以后一般情况就已经有了。

声明一下成员

 

这是几乎需要用到的所有成员。

1、打开PPT文件,并展示

(1)打开PPT文件

objPresSet = objApp.Presentations; objPres = objPresSet.Open(strTemplate, MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);

程序运行这两句以后,Office软件就自动的达开了。

(2)进入展示模式

objSlides = objPres.Slides; int[] SlideIdx = new int[3]; for (int i = 0; i < 3; i++) SlideIdx[i] = i + 1; objSldRng = objSlides.Range(SlideIdx); objSST = objSldRng.SlideShowTransition; objSST.AdvanceOnTime = MsoTriState.msoTrue; objSST.AdvanceTime = 3; objSST.EntryEffect = PowerPoint.PpEntryEffect.ppEffectBoxOut; objSSS = objPres.SlideShowSettings; //如过你不想循环放映就把TRUE改成FALSE. objSSS.LoopUntilStopped = MsoTriState.msoFalse; objSSS.StartingSlide = 1; objSSS.EndingSlide = objSlides.Application.ActivePresentation.Slides.Count; objSSS.Run(); //Wait for the slide show to end.

这段代码来源为:http://blog.sina.com.cn/s/blog_609388b70100fny6.html 然后进行了稍许的修改。

运行到objSSS.Run()后PPT进入到了播放模式。

(3)获取到PPT展示情况的信息。

objApp中有提供了很多事件,例如展示到下一页,展示开始,展示结束等。这里举例如何获取现在正在播放第几个页面。

objApp.SlideShowNextSlide += objApp_SlideShowNextSlide;

为objApp的滑倒下一页面添加事件处理函数。(需要注意是,这个事件在演示着切换页面的时候触发,无论他是进入下一页还是上一页)

void objApp_SlideShowNextSlide(PowerPoint.SlideShowWindow Wn) { int p = Wn.View.CurrentShowPosition; textBox1.BeginInvoke(new MethodInvoker(()=>textBox1.Text = p.ToString())); }

事件处理函数的参数是当前展示的页面。可以读取到一些相关的信息,例如正在展示第几个页面。这里获取到了正在展示页面的位置,并将其显示在窗口上。

(4)将PPT展示的窗口嵌入到自己的界面中

在事件处理函数中返回这个PPT展示的串口,Wn.HWDN就是现实窗口的句柄。

获得了这个句柄以后就可以使用Windows API中的SetParent函数将这个窗口绑到自己的窗口中来。

(5)获取制定页面的内容

有两个方法可以获得制定页面的制定内容。

一种是使用OpenXML

另一种是继续使用Office提供的COM接口。

具体的获得方法我将在另外一篇文章中详细的介绍。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3