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

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接口。

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

转载于:https://www.cnblogs.com/zy8095/p/3731948.html

如何使用C#进行PPT展示。相关推荐

  1. 山西师范大学数学与计算机学院宿舍,数计学院宿舍文化节之PPT展示大赛决赛圆满结束...

    随着宿舍文化节系列活动的深入展开,6月17日晚7点,我院"我爱我家,我建我家"宿舍文化节之PPT展示大赛决赛在科学会堂A710报告厅拉开帷幕,经初赛选出的11个优秀宿舍在此角逐,评 ...

  2. jupyter notebook 用PPT展示代码 +插入图片

    jupyter notebook 用PPT展示代码 +插入图片 假设我们已经安装了anaconda,此时有jupyter notebook, 1.为了用ppt显示代码,我们需要pip install ...

  3. android新手 ppt展示 画板 AsyncTask异步(room数据库 快速本地查询) 数据保存及动态更新

    最近做了一款软件,功能不大, 展示ppt和画图, 但是融合了很多知识 ,还包含一些逻辑, 成功运行, 很适合新手, 但说到底小项目包含不了android整套知识, 所以还需要大家自己去慢慢扩展- 欢迎 ...

  4. 前端开发---ppt展示页面评论区展示

    1. 工程地址:https://github.com/digitalClass/web_page 网站发布地址: http://115.28.30.25:8029/ 2. 由于后端同学希望按照 sta ...

  5. C语言实验系统PPT展示,c语言第四谭浩强机实验课件.ppt

    c语言第四谭浩强机实验课件.ppt 名人名言,"人最宝贵的东西是生命,生命属于我们只有一次.人的一生应当这样度过当他回首往事时,他不因虚度年华而悔恨,也不因碌碌无为而羞愧.这样在他临死的时候 ...

  6. 机械制造作业考研题目答案分享——金属切削课题研讨ppt展示

    PRESENTATION TOPIC: PROBLEMS IN HIGH SPEED CUTTING AND MICRO-CUTTING.这是一次课题研讨的ppt制造的素材稿,里面介绍了高速切削和微纳 ...

  7. 建构主义“鱼牛的故事”PPT展示

  8. 30页PPT展示数字经济创新如何助力乡村振兴

    2018年6月23-24日,"中国电子商务促进乡村振兴高峰会议"在江苏省沭阳县举办,大会由浙江大学中国农村发展研究院.阿里研究院.沭阳县人民政府共同主办. 来自国家农业农村部.国务 ...

  9. ppt讲解中的过渡_PPT教程:缩放定位功能详解

    编按:如果有个PPT要你边演讲.边实操讲解某些技巧,也就是演示模式和普通视图之间来回切换,你是否会为了寻找某一章节而出现慌乱呢?这就是今天要讲的PPT缩放定位功能,让你的演讲内容随心所欲,点到哪,跳到 ...

最新文章

  1. spring 基于XML的申明式AspectJ通知的执行顺序
  2. Powershell管理系列(五)修改AD账号属性
  3. HttpClient post 与get
  4. mapreduce 丢数据_大数据之MapReduce详解
  5. 若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是( )?
  6. PandasSQL语法归纳总结,真的太全了
  7. c语言迪思卡尔算法,【论文】数字化的意匠_数字化设计与造型的认知学反思_谭峥.pdf...
  8. python写空气质量提醒_Python数据可视化:2018年空气质量分析
  9. Ansible初级应用
  10. Cookie的过期时间设置
  11. 萤火虫(FA)算法(附完整Matlab代码,可直接复制)
  12. 聚焦数字经济新基建,复杂美再获认可
  13. uniapp使用苹果支付
  14. 【xctf之easyphp】
  15. 7年iOS开发经验,教你写一份脱颖而出的简历,进入大厂机会翻3倍!
  16. linode购买服务器
  17. 人工智能:第十章 机器视觉
  18. html跳转qq浏览器,导入其他书签
  19. 原码、反码、补码的互相转换
  20. Android获取当前位置(GPS和网络定位)

热门文章

  1. python自动测试a_python自动化单元测试
  2. python脚本绘图_python实现画图工具
  3. android 智能家居 pdf,智能家居项目化教程.pdf
  4. Jdb命令 The Java Debugger
  5. 安卓学习笔记21:常用控件 - 列表视图
  6. Java Web学习笔记12:CKEditor在线编辑器
  7. 【BZOJ1084】【codevs2454】最大子矩阵,DP
  8. 【英语学习】【Daily English】U13 Holiday L01 I have been waiting for it for ages!
  9. 【英语学习】【Daily English】U11 Work L02 Just be honest
  10. 【英语学习】【WOTD】wiseacre 释义/词源/示例