rubix123 Posted February 17, 2014 Share Posted February 17, 2014 (edited) Hello, I am trying to get the PowerPoint COM event SlideShowBegin() to fire. I have tried everything I can think of and have read documentation on it and looked at samples. Everything seems to be setup correctly. Please Help.expandcollapse popup#include <Misc.au3> #include <Powerpoint.au3> ;------------------------------------------------------------- ;-----------------------Variables----------------------------- HotKeySet("{BACKSPACE}", "Terminate") $obj = ObjCreate("PowerPoint.Application") $oEvent = ObjEvent($obj, "SlideEvent_") $slideStart = 1 ;------------------------------------------------------------- ;-----------------------Functions----------------------------- Func Terminate() Send("{ESC}") Sleep(500) WinClose("[REGEXPTITLE:CheckInTraining]") WinClose("[REGEXPTITLE:VLC]") Run(@DesktopDir & "\Automated Presentation\EndScript.bat") EndFunc Func setSlideShow() With $obj.ActivePresentation.SlideShowSettings .RangeType = 2 .StartingSlide = $slideStart .LoopUntilStopped = False .Run EndWith ;$obj.SlideShowWindows(1).View.GoToSlide($slideStart) Sleep(25000) Send ("S") EndFunc Func resetStartSlide() Sleep(1000) $slideStart = $obj.SlideShowWindows (1).View.Slide.SlideIndex MsgBox(0,"Slide", $slideStart) $obj.ActivePresentation.Close Sleep(2000) EndFunc Func SlideEvent_SlideShowBegin($Pres) With $Pres.SlideShowSettings .StartingSlide = 3 EndWith EndFunc ;------------------------------------------------------------- ;--------------------------Main------------------------------- Example() Func Example() While 1 ;$objPPT = _PPT_PowerPointApp() ;$objPresOpen = _PPT_PresentationOpen($objPPT,@DesktopDir ;& "\Automated Presentation\Checkintraining.pptx") ;Local $hDLL = DllOpen("user32.dll") $obj.Presentations.Open(@DesktopDir & "\Automated Presentation\CheckInTraining.pptx") Sleep(4000) WinActivate("[REGEXPTITLE:CheckInTraining]") Sleep(3500) setSlideShow() resetStartSlide() Sleep(2000) ShellExecute(@DesktopDir & "\Automated Presentation\FASPictures1.mp4") Sleep(1000) WinActivate("[REGEXPTITLE:VLC]") Send ("{f}") Sleep(15000) Send ("{f}") WinClose("[REGEXPTITLE:VLC]") Sleep(3000) WEnd DllClose($hDLL) EndFunc ;==>Example Edited February 17, 2014 by Melba23 Added tags Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 17, 2014 Moderators Share Posted February 17, 2014 rubix123,Welcome to the AutoIt forum. When you post code please use Code tags - see here how to do it. Then you get a scrolling box and syntax colouring as you can see above now I have added the tags. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
rubix123 Posted February 17, 2014 Author Share Posted February 17, 2014 Oh ok. Thx! Link to comment Share on other sites More sharing options...
water Posted February 17, 2014 Share Posted February 17, 2014 Can you please give us some more information? Which version of PowerPoint do you run? Which version of AutoIt do you run? My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
rubix123 Posted February 17, 2014 Author Share Posted February 17, 2014 AutoIt version 3.3.10.2 PowerPoint 2010 Link to comment Share on other sites More sharing options...
water Posted February 17, 2014 Share Posted February 17, 2014 Can you please add this line as first line to function SlideEvent_SlideShowBegin? MsgBox(0, "", "Function SlideEvent_SlideShowBegin started") My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
rubix123 Posted February 17, 2014 Author Share Posted February 17, 2014 Nothing. It doesn't display the message at all when the Slide Show first begins. Just continues to go through the normal slide presentation. Link to comment Share on other sites More sharing options...
water Posted February 17, 2014 Share Posted February 17, 2014 I can't test at the moment, need to wait till I'm in my office again. Why do you need to grab the event at all? Can't you set the starting slide after you have opened the presentation? My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
rubix123 Posted February 17, 2014 Author Share Posted February 17, 2014 Well to tell the truth I am trying to run a slide show presentation where it stops on a slide after so many seconds. Then opens another file and has that displayed for so many seconds and so on until it comes back to the presentation. So, basically this will be an infinite loop, but when it makes it back to the presentation I want it to resume where it left off. I was trying to just get an event to fire so to tell power point that when it gets to the last slide to actually set the starting slide back to one. SlideShowBegin() was just a test to see if I could get the event to work. I will use SlideShowEnd() in the code once I can get the event to work. The code currently opens and closes PowerPoint thus always starting the slide show back at slide 1. If I set a range then it could continiously loop within that range for however many seconds I have it. So, I need to tell it to set the starting slide in the range to 1 when it reaches the end. Hope this is more descriptive and not too confusing. Link to comment Share on other sites More sharing options...
rubix123 Posted February 27, 2014 Author Share Posted February 27, 2014 Still no progress. I have followed the documentation on ObjEvents and have setup everything in my code that would seem to be identical to the example, but with no events firing. Someone please help. Link to comment Share on other sites More sharing options...
rubix123 Posted February 27, 2014 Author Share Posted February 27, 2014 $oEvent = ObjEvent($obj, "SlideEvent_") If @error Then MsgBox(0,"", @error) EndIf So this might stir up an answer. When I added this code (the IF statement) a message box appears with a -2147316576 as the message. This would indicate a failure that sets the @error flag to a non-zero, right? If so, then what am I doing wrong? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now