本专题概要编程
引言ide
实现思路工具
遥控幻灯片程序的实现this
小结spa
1、引言对象
记得老师讲课的时候,常常会用PPT遥控翻页笔来遥控幻灯片来给咱们讲课,当时以为很是有趣,因为这段时间接触了VSTO相关的开发,了解到了Office的相关产品都公开了一些API来让咱们对Office产品进行二次开发,这时候我就想,能不能用PowerPoint公开的对象来制做一个遥控幻灯片的程序呢?在本专题就向你们介绍下这个小工具的实现思路和效果。事件
2、实现思路开发
既然要实现的程序是遥控幻灯片,这样咱们就须要先得到幻灯片应用程序的,在PowerPoint对象模型中,Microsoft.Office.Interop.PowerPoint.Application表明Powerpoint应用程序,这点和Word、Excel和Outlook都是同样的。源码
得到了幻灯片应用程序对象以后,以后咱们就须要得到幻灯片对象,由于咱们遥控的是幻灯片,在PowerPoint对象模型中也提供了幻灯片对象,即Microsoft.Office.Interop.PowerPoint.Slide。因为幻灯片又是存在于演示文稿中的,因此咱们要想得到幻灯片对象,就须要先得到演示文稿对象,Microsoft.Office.Interop.PowerPoint.Presentation 就是表明演示文稿对象。博客
得到幻灯片对象以后,咱们就能够利用幻灯片对象的Select方法来进行幻灯片的切换,然而在阅读模式的状况下,不能用Select方法来进行翻页,此时须要另外一种方式来实现,即调用 Microsoft.Office.Interop.PowerPoint.SlideShowView对象的First,Next,Last,Previous方法来进行幻灯片翻页。
上面列出来的就是该工具的实现思路,其实思路很是的简单,为了帮助你们更形象地理解PowerPoint的对象模型,下面就用一张图来介绍PowerPoint中对象与真真的幻灯片的一个对象关系(从下面的图中也能够体会到面向对象编程,就是把看到的东西抽象出一个个对象):
下面一张是阅读模式下程序中实现翻页功能与在幻灯片中的对应关系:
3、遥控幻灯片程序的实现
有了上面的解释,咱们再看下面的实现代码时,相信你们确定不会以为有任何难道了,下面就直接贴出部分的实现的代码(这样可让你们参看代码本身去实现剩余的部分,固然在文章的最后也会提供所有源码的下载):
/// <summary>
/// 检查是否打开幻灯片程序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
privatevoid btnCheck_Click(object sender, EventArgs e)
{
// 必须先运行幻灯片,下面才能得到PowerPoint应用程序,不然会出现异常
// 得到正在运行的PowerPoint应用程序
try
{
pptApplication = Marshal.GetActiveObject("PowerPoint.Application") as PPt.Application;
// 成功获取了PowerPoint程序时,使UI按钮可用
this.btnFirst.Enabled = true;
this.btnNext.Enabled = true;
this.btnPrev.Enabled = true;
this.btnLast.Enabled = true;
}
catch
{
MessageBox.Show("请先启动遥控的幻灯片", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
}
if (pptApplication != null)
{
//得到演示文稿对象
presentation = pptApplication.ActivePresentation;
// 得到幻灯片对象集合
slides = presentation.Slides;
// 得到幻灯片的数量
slidescount = slides.Count;
// 得到当前选中的幻灯片
try
{
// 在普通视图下这种方式能够得到当前选中的幻灯片对象
// 然而在阅读模式下,这种方式会出现异常
slide = slides[pptApplication.ActiveWindow.Selection.SlideRange.SlideNumber];
}
catch
{
// 在阅读模式下出现异常时,经过下面的方式来得到当前选中的幻灯片对象
slide = pptApplication.SlideShowWindows[1].View.Slide;
}
}
}
// 第一页事件
privatevoid btnFirst_Click(object sender, EventArgs e)
{
try
{
// 在普通视图中调用Select方法来选中第一张幻灯片
slides[1].Select();
slide = slides[1];
}
catch
{
// 在阅读模式下使用下面的方式来切换到第一张幻灯片
pptApplication.SlideShowWindows[1].View.First();
slide = pptApplication.SlideShowWindows[1].View.Slide;
}
}
下面就看看该遥控程序的运行效果是如何的:
4、小结
到这里本专题的介绍就介绍就结束,其实本程序最好是放在手机客户端,这样咱们就能够利用手机来对咱们的幻灯片进行翻页了,这样就和激光笔的效果就是同样的了,这里就给你们先提供一个思路吧,我相信若是要在手机客户端实现的话,确定就须要蓝牙编程的技术或者WiFi编程的技术来获取笔记本电脑的幻灯片应用程序,只要咱们成功在手机客户端获取了PowerPoint应用程序对象的话,后面的实现过程就和本程序的实现方式就基本同样的,然而咱们同时打开笔记本的蓝牙和手机的蓝牙(也能够利用WiFi),这样咱们就能够轻松实现用手机来遥控咱们演讲文稿了,若是有时间的话,也会研究下手机的蓝牙编程技术,实现了确定会在博客中向你们分享的,若是其余朋友提早实现了的,也不要忘记在博客分享给你们了。