Sto automatizzando uno scenario Powerpoint utilizzando l'interfaccia utente codificata & VSTO. Nella mia presentazione in PowerPoint ho creato un'impostazione "Azione" su una forma per avviare il blocco note. Durante la presentazione devo richiamare questa azione facendo clic sul 'testo/forma' in modo che apra notepad.exe. Qualcuno potrebbe aiutarmi a raggiungere questo obiettivo. Ho scritto il seguente codice.Come richiamare un'azione durante la presentazione powerpoint a livello di programmazione?
//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();
Questo lancerà la presentazione per la presentazione e la prima slide 'in cui le impostazioni di azione sono definiti sulla forma' sarà visualizzato. Ora come posso lanciare notepad.exe automaticamente attraverso le API? sfortunatamente l'interfaccia utente codificata non è in grado di rilevare oggetti in una diapositiva. Quindi un'opzione di clic del mouse dell'interfaccia utente potrebbe non essere possibile.
[Modifica] In grado di fare progressi un po '. Ho ottenuto oggetti di forma durante la presentazione. Questa è l'estensione al codice sopra.
PowerPoint.SlideShowWindow oSsWnd = objPPT.ActivePresentation.SlideShowWindow;
PowerPoint.Shape oShape = oSsWnd.View.Slide.Shapes[1];
Sono poco chiaro su cosa stai cercando di realizzare. Se si desidera creare una presentazione, avviarla nella visualizzazione presentazione e quindi avviare Blocco note, perché farlo tramite PowerPoint? Chiedi al tuo codice di aprire il blocco note dopo aver creato e lanciato lo spettacolo PPT. –
Questo è uno scenario di automazione per verificare che l'azione funzioni correttamente. Quindi devo fare in questo modo solo – satya
vedo. Non conosco alcun modo per automatizzare un clic su una particolare forma o punto sullo schermo. –