Как программно вызвать действие во время слайд-шоу powerpoint?

Я автоматизирую сценарий Powerpoint с помощью Coded UI и VSTO. В презентации Powerpoint я создал параметр 'Action' для формы, чтобы запустить блокнот. Во время показа слайдов мне нужно вызвать это действие, нажав на "текст/фигуру", чтобы она открыла 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();

Это запустит слайд-шоу для презентации и будет показан 1-й слайд, "где параметры действия определены на форме". Теперь как я могу автоматически запустить notepad.exe через API? К сожалению, кодированный UI не может обнаружить объекты на слайде. Поэтому опция щелчка мышью в UI может быть невозможна.

[Редактировать] Удалось немного продвинуться вперед. Я получил объект формы во время показа слайдов. Это расширение приведенного выше кода.

PowerPoint.SlideShowWindow oSsWnd = objPPT.ActivePresentation.SlideShowWindow;
PowerPoint.Shape oShape = oSsWnd.View.Slide.Shapes[1];
16
задан satya 29 January 2012 в 12:58
поделиться