How can I open a Windows 10 app with a python script?
Solution 1
import os
os.system('start D:\\bharat\\sqldeveloper.exe')
For Windows cmd this [start path/app.exe] will open the app
so just use the full path of the exe of required file (make sure to use \\
in path while writing python script)
Solution 2
Finally, I found a way to run Windows Universal apps which downloaded via Windows Store or preinstalled.
Each Windows 10 Universal app has an AUMID
which stands for 'Application User Model ID'.
PowerShell Command to get all AUMID:
get-StartApps
Output:
PS C:\> get-StartApps Name AppID ---- ----- Skype Microsoft.SkypeApp_kzf8qxf38zg5c!App Snip & Sketch Microsoft.ScreenSketch_8wekyb3d8bbwe!App Mail microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.w... Calendar microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.w... Movies & TV Microsoft.ZuneVideo_8wekyb3d8bbwe!Microsoft.ZuneVideo OneNote for Windows 10 Microsoft.Office.OneNote_8wekyb3d8bbwe!microsoft.onenoteim Photos Microsoft.Windows.Photos_8wekyb3d8bbwe!App Video Editor Microsoft.Windows.Photos_8wekyb3d8bbwe!SecondaryEntry Maps Microsoft.WindowsMaps_8wekyb3d8bbwe!App Alarms & Clock Microsoft.WindowsAlarms_8wekyb3d8bbwe!App Voice Recorder Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe!App Feedback Hub Microsoft.WindowsFeedbackHub_8wekyb3d8bbwe!App Xbox Game Bar Microsoft.XboxGamingOverlay_8wekyb3d8bbwe!App Camera Microsoft.WindowsCamera_8wekyb3d8bbwe!App Microsoft Store Microsoft.WindowsStore_8wekyb3d8bbwe!App Weather Microsoft.BingWeather_8wekyb3d8bbwe!App Cortana Microsoft.549981C3F5F10_8wekyb3d8bbwe!App Instagram Facebook.InstagramBeta_8xx8rvfyw5nnt!Instagram ...
So now, you can start any universal app via its AUMID like this:
explorer shell:appsfolder\[AUMID]
For example, if you want to execute Skype
:
explorer shell:appsfolder\Microsoft.SkypeApp_kzf8qxf38zg5c!App
Now it's the time to back to Python:
>>> import os
>>> os.system('start explorer shell:appsfolder\Microsoft.BingWeather_8wekyb3d8bbwe!App')
The Windows Weather
App will execute.
Happy Coding
Klaus Mana
Updated on June 04, 2022Comments
-
Klaus Mana almost 2 years
So, as you may know there are certain apps on Windows that can be installed from the app store, and are classified as Windows Trusted Apps. I am not sure, but I think these do not use the classic .exe format. So I am writing a python script to automate some stuff when I start my pc, and I need to start a certain Windows App, but I don't know how to do this as I don't know what I need to start to do so, and I also do not know where these files are located. Anyone can help?
-
Eryk Sun almost 7 yearsIs it enough to manually create a shell shortcut out of the virtual
shell:appsfolder
and have your script run it viaos.startfile
? Or do you need to fully automate finding the app'sIDList
in order to shell execute it? -
Klaus Mana almost 7 years@eryksun the issue I am having is that I totally do not know where the file is actually located...
-
Eryk Sun almost 7 yearsYou're not supposed to reference these apps by the executable. Eventually there is one of one sort or another -- typically in a subdirectory of the hidden system folder
%ProgramFiles%\WindowsApps
. Some apps support a URL protocol, likebingnews:
, that you can use in Explorer or cmd'sstart
. Otherwise you need the application user model ID (AUMID) for use with theIApplicationActivationManager
COM interface. If you create a shortcut (i.e. a .lnk file) on your desktop from one of the apps inshell:appsfolder
it contains the AUMID, and you can useos.startfile
to run the shortcut. -
Klaus Mana almost 7 years@eryksun thanks for the reply and explanation!
-
-
btc4cash almost 6 yearsThis is not working. Windows 10 app cannot be ran from cmd like this. I tried with Instagram.
-
Casey over 4 yearsThe command
start D:\\bharat\\sqldeveloper.exe
doesn't work on Win10 CLI, only Powershell, and even with that, you have to runstart
first, thenD:\\bharat\\sqldeveloper.exe
. Another issue isos.system()
is not the recommended way to do this. The better option issubprocess.call()
to spawn a new process. Lastly, in Python3, the double-slashes are not required when a real string is prefaced withr
, as inr'D:\bharat\sqldeveloper.exe'
. This keeps syntax as close to bash as possible, so no need to escape the forward slash. -
Praveen over 3 yearsthis does not work with some apps like camera, photos etc
-
Hacker over 2 yearsThis is crazy good.