Launching Windows Store Apps On Stream Deck

Exploring the realm of application launches from a dedicated hardware control panel.

By Den Delimarsky in Hackery

January 21, 2021

Now Playing

Til The Light Goes Out
Lindsey Stirling

Artemis (2019)

I just recently got a Stream Deck - it’s a wonderful tool to automate some of the more boring (read: routine) tasks. Literally with a click of a button I can kick off a bunch of automation. Apparently it can do everything but launch Windows Store applications.

This is a bit of a problem, because I use several apps in that category - Spotify, Trello, and Slack, to name a few. Unlike your typical executable, Windows Store applications do not have an EXE file you can point Stream Deck to, and it won’t run shell commands out-of-the-box. I can’t even point the tool to a shortcut that launches a Windows Store application. What if we try a bit of a hack with shell:AppsFolder?

Trello highlighted in the applications folder

We have Trello there. Right-clicking on the icon and creating a shortcut (it will default to Desktop) will easily allow me to point Stream Deck software to it and launch the application. But is there an alternative, that does not require me to deal with shortcuts?

Right-clicking on the shortcut gives a clue for what I need to look for to do an application launch:

Shortcut properties in Windows Explorer

There is the application ID, but it would be insufficient to paste it in the Stream Deck configuration UI to start the app - it will do nothing. Besides, the full application ID is not even visible in the dialog, and there is no way to easily grab it from there. Luckily, there is a command that can be executed in PowerShell, that will produce a list of existing AppX/MSIX packages, and I can run it in the Terminal:

1
Get-AppxPackage > apps.txt

This, in turn, will produce a text file, called apps.txt, that will contain the list. Within that list, I can Ctrl+F to find Trello (as an example):

Installation of Trello on Windows

This is helpful already! The problem is in the fact that I still don’t have any kind of executable that I can point to. Or do I? I have the full package ID that I can probably pass to some other process that can launch it. That process is explorer.exe, and it requires me to pass the AppX ID as such:

1
start explorer.exe shell:AppsFolder\45273LiamForsyth.PawsforTrello_7pb5ddty8z1pa!trello

I can literally copy and paste this command into a Batch (.bat) script, and then point a button on the Stream Deck to it. For all intents and purposes, a Batch file is just like any other executable.

Notice, however, that there is an exclamation mark after the package ID, that contains the string trello - what is that? If you follow the InstallLocation from the Get-AppxPackage output, you will land in the application folder. This “magic” string is the application ID that you can grab from AppxManifest.xml.

And before you ask, no, you can’t launch the Trello.exe or a similar executable from within the application folder directly.

That’s it - with a Batch script, you should be able to quickly launch a Windows Store application without having to try to fiddle with shortcuts. You can spend 5 minutes doing something that could be done in 10 seconds.

Want to get more notes like the above? Subscribe to The Den!

A monthly newsletter about product management, engineering, and tinkering with code.

Feedback

Have any thoughts? Let me know on Twitter!