Я могу автоматизировать сценарий Powerpoint с использованием кодированного пользовательского интерфейса и VSTO. В моей презентации PowerPoint я создал настройку "Действие" для формы для запуска блокнота. Во время показа слайдов мне нужно вызвать это действие, нажав на "текст/фигуру", чтобы он открыл файл notepad.exe. Может ли кто-нибудь помочь мне, как добиться этого. Я написал следующий код.
//To launch Powepoint
PowerPoint.Application objPPT = new PowerPoint.Application();
objPPT.Visible = Office.MsoTriState.msoTrue;
//Add new presentation
PowerPoint.Presentations oPresSet = objPPT.Presentations;
PowerPoint.Presentation oPres = oPresSet.Add(Office.MsoTriState.msoTrue);
//Add a slide
PowerPoint.Slides oSlides = oPres.Slides;
PowerPoint.Slide oSlide = oSlides.Add(1, PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
//Add text
PowerPoint.TextRange tr = oSlide.Shapes[1].TextFrame.TextRange;
tr.Text = "Launch notepad";
tr.Select();
//Add Action settings on the shape
oSlide.Shapes[1].ActionSettings[PowerPoint.PpMouseActivation.ppMouseClick].Action = PowerPoint.PpActionType.ppActionRunProgram;
oSlide.Shapes[1].ActionSettings[PowerPoint.PpMouseActivation.ppMouseClick].Run = "c:\\windows\\notepad.exe";
//start slideshow
objPPT.ActivePresentation.SlideShowSettings.Run();
Это запустит слайд-шоу для презентации, и будет отображаться первый слайд, где будут определены параметры действия в форме. Теперь, как я могу запустить notepad.exe автоматически через API? к сожалению, кодированный пользовательский интерфейс не может обнаружить объекты в слайде. Таким образом, пользовательский интерфейс мыши может быть недоступен.
[Изменить] Способный немного продвинуться вперед. Во время слайд-шоу у меня есть объект формы. Это расширение для вышеуказанного кода.
PowerPoint.SlideShowWindow oSsWnd = objPPT.ActivePresentation.SlideShowWindow;
PowerPoint.Shape oShape = oSsWnd.View.Slide.Shapes[1];