Проблемы C# Powerpoint SlideShowEnd
-
20-08-2019 - |
Вопрос
Я создаю приложение C#, которое воспроизводит слайд-шоу Powerpoint.После завершения слайд-шоу я хочу остановить PowerPoint и снова вернуться к своей программе.У меня проблема в том, что мне нужно щелкнуть в конце слайд-шоу, чтобы вернуться в программу...
Есть ли способ отключить ожидание щелчка?
private void ShowPresentation()
{
String strPresentation, strPic;
strPresentation = Application.StartupPath + "\\testje.ppt";
bool bAssistantOn;
//PowerPoint.Application objApp;
PowerPoint.Presentations objPresSet;
PowerPoint._Presentation objPres;
PowerPoint.Slides objSlides;
PowerPoint._Slide objSlide;
PowerPoint.TextRange objTextRng;
PowerPoint.Shapes objShapes;
PowerPoint.Shape objShape;
PowerPoint.SlideShowWindows objSSWs;
PowerPoint.SlideShowTransition objSST;
PowerPoint.SlideShowSettings objSSS;
PowerPoint.SlideRange objSldRng;
Graph.Chart objChart;
//Create a new presentation based on a template.
objApp = new PowerPoint.Application();
objApp.SlideShowBegin += new Microsoft.Office.Interop.PowerPoint.EApplication_SlideShowBeginEventHandler(powerpnt_SlideShowBegin);
objApp.SlideShowEnd += new Microsoft.Office.Interop.PowerPoint.EApplication_SlideShowEndEventHandler(powerpnt_SlideShowEnd);
objApp.SlideShowNextSlide += new Microsoft.Office.Interop.PowerPoint.EApplication_SlideShowNextSlideEventHandler(powerpnt_SlideShowNextSlide);
objApp.Visible = MsoTriState.msoTrue;
objPresSet = objApp.Presentations;
objPres = objPresSet.Open(strPresentation, MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
objSlides = objPres.Slides;
//Prevent Office Assistant from displaying alert messages:
bAssistantOn = objApp.Assistant.On;
objApp.Assistant.On = false;
//Run the Slide show from slides 1 thru 3.
objSSS = objPres.SlideShowSettings;
objSSS.StartingSlide = 1;
objSSS.EndingSlide = objSlides.Count;
objSSS.Run();
}
private void powerpnt_SlideShowEnd(Microsoft.Office.Interop.PowerPoint.Presentation Pres)
{
objApp.Quit();
}
Короче говоря, SlideShowEnd срабатывает только тогда, когда воспроизводится последний слайд и я нажимаю на презентацию.Я хочу, чтобы SlideShowEnd запускался при воспроизведении последнего слайда...
Решение
В настройках PowerPoint есть опция: Закончите черной стороной. Вы можете попытаться проверить, существует ли это в COM, и использовать его.
Не связан с StackOverflow