这里所说的是将PPT的播放嵌入到自己的程序中,用代码控制PPT的播放。感兴趣的朋友可以了解一下,代码可以【下载】
目录
1、播放PPT
包安装:
库引用:
using ppt = Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core;
共用变量:
public ppt.Presentation objPrs { get; private set; }
具体代码:
ObjApp = new ppt.Application();
var objPresSet = ObjApp.Presentations;
string url = pptFile.Text;
objPrs = objPresSet.Open(url, MsoTriState.msoTrue, MsoTriState.msoTrue, MsoTriState.msoFalse);
objPrs.Saved = MsoTriState.msoTrue;
//进入播放模式
var objSlides = objPrs.Slides;
objSss = objPrs.SlideShowSettings;
objSss.LoopUntilStopped = MsoTriState.msoCTrue;
objSss.StartingSlide = 1;
objSss.EndingSlide = objSlides.Count;
objSss.ShowPresenterView = MsoTriState.msoTrue;
objSss.ShowType = ppt.PpSlideShowType.ppShowTypeKiosk;//全屏播放
//objSss.ShowType = ppt.PpSlideShowType.ppShowTypeSpeaker;//双屏播放
//objSss.ShowType = ppt.PpSlideShowType.ppShowTypeWindow;//窗口播放1
//objSss.ShowType = ppt.PpSlideShowType.ppShowTypeWindow2;//窗口播放2
sw = objSss.Run();//开始播放,出现窗口
sw.Width = 480;
sw.Height = 270;
sw.Top = -24;
sw.Left = 0;
pvm = sw.HWND;//记录这个播放窗口的句柄
OSlideShowView = objPrs.SlideShowWindow.View;//后续用来播放控制、获取当前页码
ObjApp.SlideShowNextSlide += ObjApp_SlideShowNextSlide;//注册 监听换页 事件。
2、将PPT播放窗口嵌入自己的程序
//以下PPT播放是窗口window类型的
IntPtr PPThwnd = FindWindow("PPTFrameClass", "PowerPoint 幻灯片放映 - [" + ObjPrs.FullName + "] - PowerPoint");
//以下全屏窗口的:
//IntPtr PPThwnd = FindWindow("ScreenClass", "PowerPoint 幻灯片放映 - [" + ObjPrs.FullName + "]");
IntPtr hwnd = panel1.Handle; //容器句柄
SetParent(PPThwnd, hwnd);//嵌入
this.Activate();