Estoy desarrollando un sistema de automatización y una de sus características es ejecutar aplicaciones desde la línea de comandos (quiero decir, automáticamente sin intervención humana).
En Windows 7 podría ejecutar todo lo que quisiera desde una llamada de línea de comandos, ¿hay alguna forma similar de hacer lo mismo con Windows 8 y también con las aplicaciones Metro instaladas?
Respuesta1
¡Sí! Encontre un camino...
Residencia enestecódigo fuente ("Abrir una aplicación Metro Style desde la aplicación de escritorio"), me di cuenta de que podía llamar a las aplicaciones metro tal como normalmente las ejecutamos manualmente. Quiero decir, si presionas Ctrl+ Escy vas a la pantalla de metro, puedes simplemente escribir el nombre de la aplicación de metro, como "tienda", por ejemplo, presionas Entery listo, la aplicación de metro se está ejecutando. En base a esto, creé un VBScript muy simple para realizar exactamente estos pasos automáticamente:
Establecer objShell = WScript.CreateObject("WScript.Shell")
objShell.SendKeys "^{ESC}"
WScript.Sueño 1000
objShell.SendKeys WScript.Arguments.Item(0)
WScript.Sueño 1000
objShell.SendKeys "{ENTRAR}"
Guarde esto como "metro.vbs" y llámelo desde la línea de comandos con el nombre de la aplicación metro en el primer argumento:
tienda metro.vbs
Así es, de forma muy sencilla y optimizada.
PD: Todos los créditos dados aAl-Khuzaei, el usuario del sitio Codeplex que creó el código relacionado. Gracias.
Respuesta2
La siguiente publicación de blog y el código de soporte le muestran cómo hacer esto con IApplicationActivationManager en PowerShell.
Afortunadamente, pude encontrar algo de código enDesbordamiento de pilaque mostró cómo usar esto en C# (la publicación también enumera la información de registro que describiré en este artículo). Después de algunos ajustes en el código y la sintaxis de Add-Type, pude exponer la función que necesitaba en PowerShell. Después de eso, sólo fue cuestión de envolver la función en algo que se pareciera a PowerShell.
El código se puede encontrar encódigo posh.
Respuesta3
Descubrí otra forma de hacerlo y escribí un artículo rápido sobre ello enhttp://www.itsjustwhatever.com/2012/10/28/launch-windows-8-metro-apps-from-a-desktop-shortcut-or-command-line/
La versión corta: crea un acceso directo que apunte a bingnews://. Puedes ver si hace lo que quieres. Si es así, hay más instrucciones para obtener los nombres en el sitio web.
Respuesta4
Encontré una manera de ejecutar aplicaciones universales de Windows que se descargaron a través de la Tienda Windows o están preinstaladas. Cada aplicación universal de Windows 8/10 tiene un AUMID
nombre que significa "ID de modelo de usuario de aplicación".
Potencia ShellComando para obtener todos los AUMID:
get-StartApps
Producción:
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 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 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 ...
Ahora puedes iniciar cualquier aplicación universal a través de su AUMID de esta manera:
explorer shell:appsfolder\[AUMID]
Por ejemplo, si desea ejecutar Skype
:
explorer shell:appsfolder\Microsoft.SkypeApp_kzf8qxf38zg5c!App