如何使用C#进行PPT展示。
先明确下需要达到的目标:
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展示。相关推荐
- 山西师范大学数学与计算机学院宿舍,数计学院宿舍文化节之PPT展示大赛决赛圆满结束...
随着宿舍文化节系列活动的深入展开,6月17日晚7点,我院"我爱我家,我建我家"宿舍文化节之PPT展示大赛决赛在科学会堂A710报告厅拉开帷幕,经初赛选出的11个优秀宿舍在此角逐,评 ...
- jupyter notebook 用PPT展示代码 +插入图片
jupyter notebook 用PPT展示代码 +插入图片 假设我们已经安装了anaconda,此时有jupyter notebook, 1.为了用ppt显示代码,我们需要pip install ...
- android新手 ppt展示 画板 AsyncTask异步(room数据库 快速本地查询) 数据保存及动态更新
最近做了一款软件,功能不大, 展示ppt和画图, 但是融合了很多知识 ,还包含一些逻辑, 成功运行, 很适合新手, 但说到底小项目包含不了android整套知识, 所以还需要大家自己去慢慢扩展- 欢迎 ...
- 前端开发---ppt展示页面评论区展示
1. 工程地址:https://github.com/digitalClass/web_page 网站发布地址: http://115.28.30.25:8029/ 2. 由于后端同学希望按照 sta ...
- C语言实验系统PPT展示,c语言第四谭浩强机实验课件.ppt
c语言第四谭浩强机实验课件.ppt 名人名言,"人最宝贵的东西是生命,生命属于我们只有一次.人的一生应当这样度过当他回首往事时,他不因虚度年华而悔恨,也不因碌碌无为而羞愧.这样在他临死的时候 ...
- 机械制造作业考研题目答案分享——金属切削课题研讨ppt展示
PRESENTATION TOPIC: PROBLEMS IN HIGH SPEED CUTTING AND MICRO-CUTTING.这是一次课题研讨的ppt制造的素材稿,里面介绍了高速切削和微纳 ...
- 建构主义“鱼牛的故事”PPT展示
- 30页PPT展示数字经济创新如何助力乡村振兴
2018年6月23-24日,"中国电子商务促进乡村振兴高峰会议"在江苏省沭阳县举办,大会由浙江大学中国农村发展研究院.阿里研究院.沭阳县人民政府共同主办. 来自国家农业农村部.国务 ...
- ppt讲解中的过渡_PPT教程:缩放定位功能详解
编按:如果有个PPT要你边演讲.边实操讲解某些技巧,也就是演示模式和普通视图之间来回切换,你是否会为了寻找某一章节而出现慌乱呢?这就是今天要讲的PPT缩放定位功能,让你的演讲内容随心所欲,点到哪,跳到 ...
最新文章
- spring 基于XML的申明式AspectJ通知的执行顺序
- Powershell管理系列(五)修改AD账号属性
- HttpClient post 与get
- mapreduce 丢数据_大数据之MapReduce详解
- 若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是( )?
- PandasSQL语法归纳总结,真的太全了
- c语言迪思卡尔算法,【论文】数字化的意匠_数字化设计与造型的认知学反思_谭峥.pdf...
- python写空气质量提醒_Python数据可视化:2018年空气质量分析
- Ansible初级应用
- Cookie的过期时间设置
- 萤火虫(FA)算法(附完整Matlab代码,可直接复制)
- 聚焦数字经济新基建,复杂美再获认可
- uniapp使用苹果支付
- 【xctf之easyphp】
- 7年iOS开发经验,教你写一份脱颖而出的简历,进入大厂机会翻3倍!
- linode购买服务器
- 人工智能:第十章 机器视觉
- html跳转qq浏览器,导入其他书签
- 原码、反码、补码的互相转换
- Android获取当前位置(GPS和网络定位)
热门文章
- python自动测试a_python自动化单元测试
- python脚本绘图_python实现画图工具
- android 智能家居 pdf,智能家居项目化教程.pdf
- Jdb命令 The Java Debugger
- 安卓学习笔记21:常用控件 - 列表视图
- Java Web学习笔记12:CKEditor在线编辑器
- 【BZOJ1084】【codevs2454】最大子矩阵,DP
- 【英语学习】【Daily English】U13 Holiday L01 I have been waiting for it for ages!
- 【英语学习】【Daily English】U11 Work L02 Just be honest
- 【英语学习】【WOTD】wiseacre 释义/词源/示例