Update: The add-in described in this post is no longer available. The concept of controlling PowerPoint over a network overlaps with functionality used in Vista’s multi-screen background generation product, CanvasMaster, released in 2001.
I’ve managed to create an add-in for PowerPoint 2007 that allows presentations to be controlled over the network. The app is pretty basic, but is particularly useful for automating demos or integrating PowerPoint content playback with other systems. Below is a screenshot of the add-in toolbar:
As it’s name suggests, the little light bulb labeled ‘Control Enabled’ toggles the add-in on or off. When enabled, the add-in will listen for network requests on the UDP port configured under the ‘Configure’ icon. When a packet is received, it is parsed by the network command processor and the enclosed command is executed. The ‘Supported Commands’ icon on the toolbar opens a dialog which shows the available commands for the installed version of the add-in. At the time of this writing (build 1.0.6), the available commands are as follows:
Pretty simple, eh? While its true that the generic control protocol in this add-in lends itself to pretty much any network enabled controller, I originally started working on the concept as a solution for us internally to tightly integrate PowerPoint presentation playback with Spyder scripting loops at trade shows. The first attempts didn’t really go anywhere, as the available PowerPoint interop capabilities from Visual Studio were fairly cryptic.
A month or two ago I was emailing with a friend over at InformationsTeknik (Hi Rene!) who was looking to build the same sort of application, and so I made an unfinished sample project that had this basic functionality. A few sleepless nights later, and voila, I have it wrapped up into a redistributable installer.
I was hoping to have my website finished enough to share a link to the associated project page, but it still has a little way to go, and so while I’m using my site to host the installer download, I’ll have to come back and update this page later with a link to a full-blown project page. In the mean time you can download from the link below:
Download the PowerPoint 2007 Network Controller (Version 1.0.6)
Control Client / Test Utility Application
When the PowerPoint network controller is installed, a client application will be added to the start menu which can be used to send commands to a machine running the PowerPoint add-in. This can be either the local machine or another PC on the network. To run this application, look in the programs folder under the start menu for ‘PowerPoint Network Control’. A debug window on the right side of the application shows transmit and receive messages in real-time; you’ll notice that every command sent to the PowerPoint add-in will result in a response. Users building custom control applications to interact with the add-in can use this window to see the specific responses that will be returned from the add-in for any given command.
Using Spyder to Control PowerPoint
Well if you’ve read this far into the blog and you have a Spyder system, this will be a little bonus. Spyder can easily control PowerPoint when used with the network controller add-in by simply creating a few network command function keys. The screen shots below should be self-explanatory; a network function key is generated to ‘wrap’ each of the available control commands. These function keys can be executed directly, or (more importantly) can be linked into script cues to tightly couple command key recalls with the PowerPoint content. It’s like having a SourceMaster for PowerPoint!
Big Disclaimer: This software is not maintained or supported by my employer, Vista Systems. Please do not try to contact Vista for technical support for this application. Post any questions or comments on this blog post, and I’ll try to get back to you as time permits. I’ve used this software quite a few times now, and it’s worked flawlessly. If your planning to use it for anything ‘mission critical’, make sure you do your own adequate testing in your environment before going live with it.
Next Slide Function Key
Previous Slide Function Key
Home Function Key
What’s Next for this Project?
I think it makes pretty clear sense to add the ability to load, start, and stop presentations remotely using network clients communicating through the add-in. Currently the add-in requires that the PowerPoint presentation being controlled be manually started before the commands will work. If you have ideas about how to make this better, or have any comments about the project, post them in the comments for this post.