Control Presentations with Cortana
I'm working on a use case where I want to control Powerpoint Presentations(on Microsoft PowerPoint and Apple Keynote) using Cortana.
I've been looking for quite some time now for resources that I could leverage to learn from and implement the same.
The closest I could get to is this series of two articles:
- Controlling Powerpoint Slideshow With Alexa
- Controlling Powerpoint Slides With Alexa and Websocket
But the issue with this is, it's using slideshow which hasn't been updated for quite some time now and also doesn't support later versions of Keynote and Powerpoint. And mine is an enterprise level use case so the package can't be relied upon with the kind of support that it has right now.
I also had a look at Cortana Skills Kit Website but wasn't able to find anything substantial in this direction.
So the question is, is there a reliable library that I could leverage to do this? Or does Cortana Skills Kit have the capabilities to control local running instances of Powerpoint?
I'd really appreciate it if someone could point me in the right direction regarding this.
UPDATE:
- I tried achieving this by developing a PowerPoint Add-In. But then when I dived deeper, I go to know that PowerPoint Add-Ins are of the following types:

I, on the other hand, want something that could work in the Presenter mode. And I didn't find anything related to that. Basically, Contextual Mail Add-In is only for Outlook and Outlook Web. Task Pane and Content Add-In is for UI based Add-Ins. But I want a UI-less Add-In that could work and control my presentation in Presenter Mode. I tried looking for Add-In Commands but couldn't find anything related to that.
- I also tried having a look at Office URI Schemes as suggested by Micromuncher, but I couldn't find a way to navigate from one slide to the other using these schemes.
ms-office powerpoint office-addins cortana cortana-skills-kit
add a comment |
I'm working on a use case where I want to control Powerpoint Presentations(on Microsoft PowerPoint and Apple Keynote) using Cortana.
I've been looking for quite some time now for resources that I could leverage to learn from and implement the same.
The closest I could get to is this series of two articles:
- Controlling Powerpoint Slideshow With Alexa
- Controlling Powerpoint Slides With Alexa and Websocket
But the issue with this is, it's using slideshow which hasn't been updated for quite some time now and also doesn't support later versions of Keynote and Powerpoint. And mine is an enterprise level use case so the package can't be relied upon with the kind of support that it has right now.
I also had a look at Cortana Skills Kit Website but wasn't able to find anything substantial in this direction.
So the question is, is there a reliable library that I could leverage to do this? Or does Cortana Skills Kit have the capabilities to control local running instances of Powerpoint?
I'd really appreciate it if someone could point me in the right direction regarding this.
UPDATE:
- I tried achieving this by developing a PowerPoint Add-In. But then when I dived deeper, I go to know that PowerPoint Add-Ins are of the following types:

I, on the other hand, want something that could work in the Presenter mode. And I didn't find anything related to that. Basically, Contextual Mail Add-In is only for Outlook and Outlook Web. Task Pane and Content Add-In is for UI based Add-Ins. But I want a UI-less Add-In that could work and control my presentation in Presenter Mode. I tried looking for Add-In Commands but couldn't find anything related to that.
- I also tried having a look at Office URI Schemes as suggested by Micromuncher, but I couldn't find a way to navigate from one slide to the other using these schemes.
ms-office powerpoint office-addins cortana cortana-skills-kit
add a comment |
I'm working on a use case where I want to control Powerpoint Presentations(on Microsoft PowerPoint and Apple Keynote) using Cortana.
I've been looking for quite some time now for resources that I could leverage to learn from and implement the same.
The closest I could get to is this series of two articles:
- Controlling Powerpoint Slideshow With Alexa
- Controlling Powerpoint Slides With Alexa and Websocket
But the issue with this is, it's using slideshow which hasn't been updated for quite some time now and also doesn't support later versions of Keynote and Powerpoint. And mine is an enterprise level use case so the package can't be relied upon with the kind of support that it has right now.
I also had a look at Cortana Skills Kit Website but wasn't able to find anything substantial in this direction.
So the question is, is there a reliable library that I could leverage to do this? Or does Cortana Skills Kit have the capabilities to control local running instances of Powerpoint?
I'd really appreciate it if someone could point me in the right direction regarding this.
UPDATE:
- I tried achieving this by developing a PowerPoint Add-In. But then when I dived deeper, I go to know that PowerPoint Add-Ins are of the following types:

I, on the other hand, want something that could work in the Presenter mode. And I didn't find anything related to that. Basically, Contextual Mail Add-In is only for Outlook and Outlook Web. Task Pane and Content Add-In is for UI based Add-Ins. But I want a UI-less Add-In that could work and control my presentation in Presenter Mode. I tried looking for Add-In Commands but couldn't find anything related to that.
- I also tried having a look at Office URI Schemes as suggested by Micromuncher, but I couldn't find a way to navigate from one slide to the other using these schemes.
ms-office powerpoint office-addins cortana cortana-skills-kit
I'm working on a use case where I want to control Powerpoint Presentations(on Microsoft PowerPoint and Apple Keynote) using Cortana.
I've been looking for quite some time now for resources that I could leverage to learn from and implement the same.
The closest I could get to is this series of two articles:
- Controlling Powerpoint Slideshow With Alexa
- Controlling Powerpoint Slides With Alexa and Websocket
But the issue with this is, it's using slideshow which hasn't been updated for quite some time now and also doesn't support later versions of Keynote and Powerpoint. And mine is an enterprise level use case so the package can't be relied upon with the kind of support that it has right now.
I also had a look at Cortana Skills Kit Website but wasn't able to find anything substantial in this direction.
So the question is, is there a reliable library that I could leverage to do this? Or does Cortana Skills Kit have the capabilities to control local running instances of Powerpoint?
I'd really appreciate it if someone could point me in the right direction regarding this.
UPDATE:
- I tried achieving this by developing a PowerPoint Add-In. But then when I dived deeper, I go to know that PowerPoint Add-Ins are of the following types:

I, on the other hand, want something that could work in the Presenter mode. And I didn't find anything related to that. Basically, Contextual Mail Add-In is only for Outlook and Outlook Web. Task Pane and Content Add-In is for UI based Add-Ins. But I want a UI-less Add-In that could work and control my presentation in Presenter Mode. I tried looking for Add-In Commands but couldn't find anything related to that.
- I also tried having a look at Office URI Schemes as suggested by Micromuncher, but I couldn't find a way to navigate from one slide to the other using these schemes.
ms-office powerpoint office-addins cortana cortana-skills-kit
ms-office powerpoint office-addins cortana cortana-skills-kit
edited Nov 14 '18 at 7:19
SiddAjmera
asked Nov 12 '18 at 13:59
SiddAjmeraSiddAjmera
13.5k31137
13.5k31137
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The slideshow approach seems really fragile, though it is highly cool.
Pretty much all versions of PowerPoint support automation. But with DDE being mostly dead, and OLE seeming inappropriate in the Cloud, it would be nice to automate some behaviors without extensive coding.
Once upon a time, you could add a reference to an id or index to the file i.e. myPresentation.ppt#4 to show slide 4, but this no longer works.
How this should be done; a protocol handler that automates PowerPoint. Does this exist? Kind of. Right now you can use deep linking in a limited way on most platforms.
https://docs.microsoft.com/en-us/office/client-developer/office-uri-schemes
https://docs.microsoft.com/en-us/office/client-developer/integration/integrate-with-office-from-android-applications
But right now this just lets us open for viewing or editing a presentation without saying what page. So... about the only thing we can do is lobby our friends at Microsoft to consider this as part of their new strategy.
However, Cortana will support it when it exists.
- https://docs.microsoft.com/en-us/cortana/skills/launch-apps-from-skills
Thanks for your answer. And what about Apple Keynote?
– SiddAjmera
Nov 13 '18 at 5:00
I haven't been an Apple dev in years... but I haven't found anything on deep linking. BUT ... slideshare has an API - and you can upload powerpoint and keynote to slideshare ... slideshare.net/developers
– Micromuncher
Nov 14 '18 at 0:06
I did try using Office Add-Ins but the issue is, the Add-In will only be active in Edit Mode while I'm trying to make it work in Presenter Mode.
– SiddAjmera
Nov 14 '18 at 6:43
So the paths open to you, as I see it, are 1/ create protocol handlers on whatever platform you support that drive the app that renders your slideshow, or 2/ use a cloud/weh based solution that supports either presentation rendering or automates "screen scraping". For slideshare, you can add /<pagenum> to any presentation to show that page. They have a controls library for javascript, but it looks like it only supports control of a presentation embedded in your web page...
– Micromuncher
Nov 14 '18 at 16:18
That's exactly the issue. If it were just a web-based thing, there would have been some way or the other to deal with it. But it's not. So I'm still stuck.
– SiddAjmera
Nov 14 '18 at 16:20
|
show 4 more comments
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53263729%2fcontrol-presentations-with-cortana%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The slideshow approach seems really fragile, though it is highly cool.
Pretty much all versions of PowerPoint support automation. But with DDE being mostly dead, and OLE seeming inappropriate in the Cloud, it would be nice to automate some behaviors without extensive coding.
Once upon a time, you could add a reference to an id or index to the file i.e. myPresentation.ppt#4 to show slide 4, but this no longer works.
How this should be done; a protocol handler that automates PowerPoint. Does this exist? Kind of. Right now you can use deep linking in a limited way on most platforms.
https://docs.microsoft.com/en-us/office/client-developer/office-uri-schemes
https://docs.microsoft.com/en-us/office/client-developer/integration/integrate-with-office-from-android-applications
But right now this just lets us open for viewing or editing a presentation without saying what page. So... about the only thing we can do is lobby our friends at Microsoft to consider this as part of their new strategy.
However, Cortana will support it when it exists.
- https://docs.microsoft.com/en-us/cortana/skills/launch-apps-from-skills
Thanks for your answer. And what about Apple Keynote?
– SiddAjmera
Nov 13 '18 at 5:00
I haven't been an Apple dev in years... but I haven't found anything on deep linking. BUT ... slideshare has an API - and you can upload powerpoint and keynote to slideshare ... slideshare.net/developers
– Micromuncher
Nov 14 '18 at 0:06
I did try using Office Add-Ins but the issue is, the Add-In will only be active in Edit Mode while I'm trying to make it work in Presenter Mode.
– SiddAjmera
Nov 14 '18 at 6:43
So the paths open to you, as I see it, are 1/ create protocol handlers on whatever platform you support that drive the app that renders your slideshow, or 2/ use a cloud/weh based solution that supports either presentation rendering or automates "screen scraping". For slideshare, you can add /<pagenum> to any presentation to show that page. They have a controls library for javascript, but it looks like it only supports control of a presentation embedded in your web page...
– Micromuncher
Nov 14 '18 at 16:18
That's exactly the issue. If it were just a web-based thing, there would have been some way or the other to deal with it. But it's not. So I'm still stuck.
– SiddAjmera
Nov 14 '18 at 16:20
|
show 4 more comments
The slideshow approach seems really fragile, though it is highly cool.
Pretty much all versions of PowerPoint support automation. But with DDE being mostly dead, and OLE seeming inappropriate in the Cloud, it would be nice to automate some behaviors without extensive coding.
Once upon a time, you could add a reference to an id or index to the file i.e. myPresentation.ppt#4 to show slide 4, but this no longer works.
How this should be done; a protocol handler that automates PowerPoint. Does this exist? Kind of. Right now you can use deep linking in a limited way on most platforms.
https://docs.microsoft.com/en-us/office/client-developer/office-uri-schemes
https://docs.microsoft.com/en-us/office/client-developer/integration/integrate-with-office-from-android-applications
But right now this just lets us open for viewing or editing a presentation without saying what page. So... about the only thing we can do is lobby our friends at Microsoft to consider this as part of their new strategy.
However, Cortana will support it when it exists.
- https://docs.microsoft.com/en-us/cortana/skills/launch-apps-from-skills
Thanks for your answer. And what about Apple Keynote?
– SiddAjmera
Nov 13 '18 at 5:00
I haven't been an Apple dev in years... but I haven't found anything on deep linking. BUT ... slideshare has an API - and you can upload powerpoint and keynote to slideshare ... slideshare.net/developers
– Micromuncher
Nov 14 '18 at 0:06
I did try using Office Add-Ins but the issue is, the Add-In will only be active in Edit Mode while I'm trying to make it work in Presenter Mode.
– SiddAjmera
Nov 14 '18 at 6:43
So the paths open to you, as I see it, are 1/ create protocol handlers on whatever platform you support that drive the app that renders your slideshow, or 2/ use a cloud/weh based solution that supports either presentation rendering or automates "screen scraping". For slideshare, you can add /<pagenum> to any presentation to show that page. They have a controls library for javascript, but it looks like it only supports control of a presentation embedded in your web page...
– Micromuncher
Nov 14 '18 at 16:18
That's exactly the issue. If it were just a web-based thing, there would have been some way or the other to deal with it. But it's not. So I'm still stuck.
– SiddAjmera
Nov 14 '18 at 16:20
|
show 4 more comments
The slideshow approach seems really fragile, though it is highly cool.
Pretty much all versions of PowerPoint support automation. But with DDE being mostly dead, and OLE seeming inappropriate in the Cloud, it would be nice to automate some behaviors without extensive coding.
Once upon a time, you could add a reference to an id or index to the file i.e. myPresentation.ppt#4 to show slide 4, but this no longer works.
How this should be done; a protocol handler that automates PowerPoint. Does this exist? Kind of. Right now you can use deep linking in a limited way on most platforms.
https://docs.microsoft.com/en-us/office/client-developer/office-uri-schemes
https://docs.microsoft.com/en-us/office/client-developer/integration/integrate-with-office-from-android-applications
But right now this just lets us open for viewing or editing a presentation without saying what page. So... about the only thing we can do is lobby our friends at Microsoft to consider this as part of their new strategy.
However, Cortana will support it when it exists.
- https://docs.microsoft.com/en-us/cortana/skills/launch-apps-from-skills
The slideshow approach seems really fragile, though it is highly cool.
Pretty much all versions of PowerPoint support automation. But with DDE being mostly dead, and OLE seeming inappropriate in the Cloud, it would be nice to automate some behaviors without extensive coding.
Once upon a time, you could add a reference to an id or index to the file i.e. myPresentation.ppt#4 to show slide 4, but this no longer works.
How this should be done; a protocol handler that automates PowerPoint. Does this exist? Kind of. Right now you can use deep linking in a limited way on most platforms.
https://docs.microsoft.com/en-us/office/client-developer/office-uri-schemes
https://docs.microsoft.com/en-us/office/client-developer/integration/integrate-with-office-from-android-applications
But right now this just lets us open for viewing or editing a presentation without saying what page. So... about the only thing we can do is lobby our friends at Microsoft to consider this as part of their new strategy.
However, Cortana will support it when it exists.
- https://docs.microsoft.com/en-us/cortana/skills/launch-apps-from-skills
edited Nov 12 '18 at 21:31
answered Nov 12 '18 at 21:13
MicromuncherMicromuncher
475114
475114
Thanks for your answer. And what about Apple Keynote?
– SiddAjmera
Nov 13 '18 at 5:00
I haven't been an Apple dev in years... but I haven't found anything on deep linking. BUT ... slideshare has an API - and you can upload powerpoint and keynote to slideshare ... slideshare.net/developers
– Micromuncher
Nov 14 '18 at 0:06
I did try using Office Add-Ins but the issue is, the Add-In will only be active in Edit Mode while I'm trying to make it work in Presenter Mode.
– SiddAjmera
Nov 14 '18 at 6:43
So the paths open to you, as I see it, are 1/ create protocol handlers on whatever platform you support that drive the app that renders your slideshow, or 2/ use a cloud/weh based solution that supports either presentation rendering or automates "screen scraping". For slideshare, you can add /<pagenum> to any presentation to show that page. They have a controls library for javascript, but it looks like it only supports control of a presentation embedded in your web page...
– Micromuncher
Nov 14 '18 at 16:18
That's exactly the issue. If it were just a web-based thing, there would have been some way or the other to deal with it. But it's not. So I'm still stuck.
– SiddAjmera
Nov 14 '18 at 16:20
|
show 4 more comments
Thanks for your answer. And what about Apple Keynote?
– SiddAjmera
Nov 13 '18 at 5:00
I haven't been an Apple dev in years... but I haven't found anything on deep linking. BUT ... slideshare has an API - and you can upload powerpoint and keynote to slideshare ... slideshare.net/developers
– Micromuncher
Nov 14 '18 at 0:06
I did try using Office Add-Ins but the issue is, the Add-In will only be active in Edit Mode while I'm trying to make it work in Presenter Mode.
– SiddAjmera
Nov 14 '18 at 6:43
So the paths open to you, as I see it, are 1/ create protocol handlers on whatever platform you support that drive the app that renders your slideshow, or 2/ use a cloud/weh based solution that supports either presentation rendering or automates "screen scraping". For slideshare, you can add /<pagenum> to any presentation to show that page. They have a controls library for javascript, but it looks like it only supports control of a presentation embedded in your web page...
– Micromuncher
Nov 14 '18 at 16:18
That's exactly the issue. If it were just a web-based thing, there would have been some way or the other to deal with it. But it's not. So I'm still stuck.
– SiddAjmera
Nov 14 '18 at 16:20
Thanks for your answer. And what about Apple Keynote?
– SiddAjmera
Nov 13 '18 at 5:00
Thanks for your answer. And what about Apple Keynote?
– SiddAjmera
Nov 13 '18 at 5:00
I haven't been an Apple dev in years... but I haven't found anything on deep linking. BUT ... slideshare has an API - and you can upload powerpoint and keynote to slideshare ... slideshare.net/developers
– Micromuncher
Nov 14 '18 at 0:06
I haven't been an Apple dev in years... but I haven't found anything on deep linking. BUT ... slideshare has an API - and you can upload powerpoint and keynote to slideshare ... slideshare.net/developers
– Micromuncher
Nov 14 '18 at 0:06
I did try using Office Add-Ins but the issue is, the Add-In will only be active in Edit Mode while I'm trying to make it work in Presenter Mode.
– SiddAjmera
Nov 14 '18 at 6:43
I did try using Office Add-Ins but the issue is, the Add-In will only be active in Edit Mode while I'm trying to make it work in Presenter Mode.
– SiddAjmera
Nov 14 '18 at 6:43
So the paths open to you, as I see it, are 1/ create protocol handlers on whatever platform you support that drive the app that renders your slideshow, or 2/ use a cloud/weh based solution that supports either presentation rendering or automates "screen scraping". For slideshare, you can add /<pagenum> to any presentation to show that page. They have a controls library for javascript, but it looks like it only supports control of a presentation embedded in your web page...
– Micromuncher
Nov 14 '18 at 16:18
So the paths open to you, as I see it, are 1/ create protocol handlers on whatever platform you support that drive the app that renders your slideshow, or 2/ use a cloud/weh based solution that supports either presentation rendering or automates "screen scraping". For slideshare, you can add /<pagenum> to any presentation to show that page. They have a controls library for javascript, but it looks like it only supports control of a presentation embedded in your web page...
– Micromuncher
Nov 14 '18 at 16:18
That's exactly the issue. If it were just a web-based thing, there would have been some way or the other to deal with it. But it's not. So I'm still stuck.
– SiddAjmera
Nov 14 '18 at 16:20
That's exactly the issue. If it were just a web-based thing, there would have been some way or the other to deal with it. But it's not. So I'm still stuck.
– SiddAjmera
Nov 14 '18 at 16:20
|
show 4 more comments
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53263729%2fcontrol-presentations-with-cortana%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown