Because of my recent exploration of trying to automate MS Photos to open a specified image
it has made me learn a little about store apps and the way we can work with them, or at lease launch them.
Today, I thought I’d demonstrate a simple way we can provide the ability to launch such Store Apps with a single line of code. The one Procedure to rule them all!
Enum MSStoreAppName
MSStoreAppName_Unset
AvailableNetworks
Calculator
Calendar
Camera
Cast
Chat
Clock
Cortana
FeedbackHub
GetHelp
GrooveMusic
Mail
Maps
MicrosoftEdge
MicrosoftNews
MicrosoftSolitaireCollection
MicrosoftStore
MicrosoftWhiteboard
MoviesTV
MSNWeather
NotificationCenter
Onenote
Paint3D
People
PeopleSettings
Photos
Project
Settings
SnippingTool
SnippingToolScreenSnip
Tips
WeatherBing
WeatherMS
WindowsSecurity
End Enum
'---------------------------------------------------------------------------------------
' Procedure : MSStoreApp_Launch
' Author : Daniel Pineault, CARDA Consultants Inc.
' Website : http://www.cardaconsultants.com
' Purpose : Launch the specified MS Store App
' Copyright : The following is release as Attribution-ShareAlike 4.0 International
' (CC BY-SA 4.0) - https://creativecommons.org/licenses/by-sa/4.0/
' Req'd Refs: Late Binding -> none required
' Dependencies: MSStoreAppName Enum
'
' Input Variables:
' ~~~~~~~~~~~~~~~~
' lMSApp : Enum specifying the App to launch
'
' Usage:
' ~~~~~~
' MSStoreApp_Launch Onenote
'
' MSStoreApp_Launch Calculator
'
' Revision History:
' Rev Date(yyyy-mm-dd) Description
' **************************************************************************************
' 1 2023-04-18 Initial Release
'---------------------------------------------------------------------------------------
Sub MSStoreApp_Launch(lMSApp As MSStoreAppName)
On Error GoTo Error_Handler
Dim sCmd As String
Select Case lMSApp
Case MSApp_Unset
Case AvailableNetworks
sCmd = "ms-availablenetworks:"
Case Calculator
sCmd = "calculator:"
Case Calendar
sCmd = "outlookcal:"
Case Camera
sCmd = "microsoft.windows.camera:"
Case Cast
sCmd = "ms-settings-connectabledevices:devicediscovery"
Case Chat
sCmd = "ms-chat"
Case Clock
sCmd = "ms-clock:"
Case Cortana
sCmd = "ms-cortana:"
Case FeedbackHub
sCmd = "feedback-hub:"
Case GetHelp
sCmd = "ms-contact-support:"
Case GrooveMusic
sCmd = "mswindowsmusic:"
Case Mail
sCmd = "outlookmail:"
Case Maps
sCmd = "bingmaps:"
Case MicrosoftEdge
sCmd = "microsoft-edge:"
Case MicrosoftNews
sCmd = "bingnews:"
Case MicrosoftSolitaireCollection
sCmd = "xboxliveapp-1297287741:"
Case MicrosoftStore
sCmd = "ms-windows-store:"
Case MicrosoftWhiteboard
sCmd = "ms-whiteboard-cmd:"
Case MoviesTV
sCmd = "mswindowsvideo:"
Case MSNWeather
sCmd = "msnweather:"
Case NotificationCenter
sCmd = "ms-actioncenter:"
Case Onenote
sCmd = "onenote:"
Case Paint3D
sCmd = "ms-paint:"
Case People
sCmd = "ms-people:"
Case PeopleSettings
sCmd = "ms-people:settings"
Case Photos
sCmd = "ms-photos:"
Case Project
sCmd = "ms-settings-displays-topology:projection"
Case Settings
sCmd = "ms-settings:"
Case SnippingTool
sCmd = "ms-ScreenSketch:"
Case SnippingToolScreenSnip
sCmd = "ms-screenclip:"
Case Tips
sCmd = "ms-get-started:"
Case WeatherBing
sCmd = "bingweather:"
Case WeatherMS
sCmd = "msnweather:"
Case WindowsSecurity
sCmd = "windowsdefender:"
End Select
If sCmd <> "" Then
CreateObject("WScript.Shell").Run sCmd, 0, False
End If
Error_Handler_Exit:
On Error Resume Next
Exit Sub
Error_Handler:
MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _
"Error Source: MSStoreApp_Launch" & vbCrLf & _
"Error Number: " & Err.Number & vbCrLf & _
"Error Description: " & Err.Description & _
Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _
, vbOKOnly + vbCritical, "An Error has Occurred!"
Resume Error_Handler_Exit
End Sub
It is a hard concept to understand, but Microsoft has 2 distinct types of applications now, and the above is for interacting with the Store Apps.
More Apps You Say
- Facebook => fb:
- Twitter => twitter:
- …
So just because I haven’t included it above does not mean it isn’t available! Google is your friend to extend things even further.
Using PowerShell, I extracted a listing from my PC of the installed Store Apps should this help you expand upon my sample even further.
Get-AppXPackage -AllUsers | Format-Table #Basic list of installed Store Apps
My PC is a base install as I don’t install or use Store App (at least not knowingly!). So if it is in the listing below, there is a good chance it is available on any Windows 10 machine and thus safe to use.
Package Available Protocols ------------------------------------------------------------------------------------------------ king.com.CandyCrushFriends fb1726560560955678, fb1811564719060444, myling king.com.CandyCrushSaga fb467854729958013, fb347882848562911, candycrushsaga, fb210831918949520 MAGIX.MusicMakerJam com-magix-mmjam Microsoft.549981C3F5F10 ms-cortana2 Microsoft.AAD.BrokerPlugin ms-aad-brokerplugin Microsoft.BingNews msnnews, bingnews, msnews Microsoft.BingTranslator translatorflight Microsoft.BingWeather bingweather, msnweather Microsoft.DesktopAppInstaller ms-appinstaller Microsoft.ECApp ms-eyecontrolspeech Microsoft.GetHelp ms-contact-support Microsoft.Getstarted ms-get-started Microsoft.Messaging sms, ms-chat Microsoft.Microsoft3DViewer com.microsoft.3dviewer, armodelviewing Microsoft.MicrosoftEdge microsoft-edge-holographic, ms-xbl-3d8b930f, http, microsoft-edge... Microsoft.MicrosoftJigsaw xboxliveapp-1297292166 Microsoft.MicrosoftMahjong xboxliveapp-1297290225 Microsoft.MicrosoftMinesweeper xboxliveapp-1297290226 Microsoft.MicrosoftSolitaireCollection microsoftsolitairecollection, xboxliveapp-1297287741 Microsoft.MicrosoftSudoku xboxliveapp-1297292189 Microsoft.MixedReality.Portal ms-holographicfirstrun Microsoft.MSPaint ms-paint Microsoft.Office.OneNote onenote, onenote-cmd Microsoft.OneConnect ms-mobileplans Microsoft.People ms-people, tel Microsoft.Print3D com.microsoft.print3d Microsoft.RemoteDesktop ms-rd Microsoft.ScreenSketch ms-screensketch Microsoft.StorePurchaseApp ms-xbet-survey Microsoft.Studios.Wordament xboxliveapp-534004979 Microsoft.Windows.Apprep.ChxApp ms-apprep Microsoft.Windows.CloudExperienceHost ms-device-enrollment, ms-cxh Microsoft.Windows.OOBENetworkCaptivePortal ms-oobenetwork Microsoft.Windows.OOBENetworkConnectionFlow ms-oobenetwork Microsoft.Windows.ParentalControls ms-wpc Microsoft.Windows.Photos ms-wcrv, ms-wpdrmv, ms-photos, microsoft.windows.photos.crop... Microsoft.Windows.Search ms-search, ms-newsandinterests Microsoft.Windows.SecHealthUI windowsdefender Microsoft.Windows.ShellExperienceHost ms-penworkspace, ms-insights, ms-meetnowflyout, ms-actioncenter Microsoft.Windows.XGpuEjectDialog ms-xgpueject Microsoft.WindowsAlarms ms-clock Microsoft.WindowsCalculator calculator, ms-calculator Microsoft.WindowsCamera microsoft.windows.camera, microsoft.windows.camera.picker, microsoft.windows.camera.multipicker microsoft.windowscommunicationsapps outlookcal, ms-unistore-email, mailto, outlookmail... Microsoft.WindowsFeedbackHub windows-feedback, feedback-hub, insiderhub Microsoft.WindowsMaps bingmaps, ms-walk-to, ms-drive-to, ms-default-location Microsoft.WindowsStore ms-windows-store, zune, microsoftvideo, ms-windows-store2 Microsoft.Xbox.TCUI xbox-tcui Microsoft.XboxApp xbox-gamehub, xbox-settings, xbox-profile, xbox-lfg... Microsoft.XboxGameCallableUI xbox-tcui Microsoft.XboxGameOverlay ms-gamebarservices Microsoft.XboxGamingOverlay ms-gamebar, ms-gamingoverlay Microsoft.XboxSpeechToTextOverlay ms-sttoverlay Microsoft.ZuneMusic mswindowsmusic Microsoft.ZuneVideo mswindowsvideo MicrosoftWindows.Client.CBS ms-inputapp, ms-screenclip windows.immersivecontrolpanel ms-settings Windows.PrintDialog ms-print-addprinter, ms-print-printjobs
This is a listing of App exposing protocols. So I have purposely omitted all the other Apps that do not provide a protocols to interact with them. So yes, not all App make themselves open to automation, but as you can see for yourself, a lot do.
What Else Can I Do With Store Apps?
The fact of the matter is it depends on the App and what the developers exposed. The above is the simplest and universal launching of an App, but some app allow for passing a file to load at the startup, or URL, a specific menu to open, … To know what is possible you’ll have to dig online and try to find support documentation which can be very difficult. What I have found, after finally cracking the nut, is that searching for a term like “ms-photos: uri”, so the name of the App and URI returns the best results. The key term is URI (once you know that searching becomes a lot easier)!
And you’ll get results like:


For instance, the ms-settings app allows passing a multitude of URIs to open a huge variety of menu/forms:
- Apps – Startup apps => ms-settings:startupapps
- Accounts – Email & app accounts => ms-settings:emailandaccounts
- System – About => ms-settings:about
- Time and language – Region => ms-settings:regionformatting
- so on and so forth
Take a look at the following for a more complete listing of the available ms-settings URIs: