本專題概要編程
引言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),這樣咱們就能夠輕鬆實現用手機來遙控咱們演講文稿了,若是有時間的話,也會研究下手機的藍牙編程技術,實現了確定會在博客中向你們分享的,若是其餘朋友提早實現了的,也不要忘記在博客分享給你們了。