Estou desenvolvendo um sistema de automação e um de seus recursos é executar aplicativos a partir da linha de comando (quer dizer, automaticamente, sem intervenção humana).
No Windows 7 eu poderia executar tudo o que quisesse a partir de uma chamada de linha de comando. Existe alguma maneira semelhante de fazer o mesmo com o Windows 8 com também os aplicativos Metro instalados nele?
Responder1
Sim! Eu encontrei um caminho...
Baseado emessecódigo-fonte ("Abrir um aplicativo Metro Style no aplicativo Desktop"), percebi que poderia chamar os aplicativos Metro da mesma forma que normalmente executamos manualmente. Quer dizer, se você apertar Ctrl+ Esce for para a tela do metro, você pode simplesmente digitar o nome do app do metrô, como "loja" por exemplo, apertar Entere pronto, o app do metrô está rodando. Com base nisso criei um VBScript bem simples para executar exatamente essas etapas automaticamente:
Definir objShell = WScript.CreateObject("WScript.Shell")
objShell.SendKeys "^{ESC}"
WScript.Sleep 1000
objShell.SendKeys WScript.Arguments.Item(0)
WScript.Sleep 1000
objShell.SendKeys "{ENTER}"
Salve como "metro.vbs" e chame-o na linha de comando com o nome do aplicativo metro no primeiro argumento:
loja metro.vbs
É isso, de forma muito simples e otimizada.
PS: Todos os créditos foram dados aAl-Khuzaei, o usuário do site Codeplex que criou o código relacionado. Obrigado.
Responder2
A postagem de blog a seguir e o código de suporte mostram como fazer isso com IApplicationActivationManager no PowerShell.
Felizmente, consegui encontrar algum código emEstouro de pilhaque mostrou como usar isso em C# (a postagem também listou as informações de registro que descreverei neste artigo). Depois de alguns ajustes no código e na sintaxe Add-Type, consegui expor a função necessária no PowerShell. Depois disso, foi apenas uma questão de agrupar a função em algo semelhante ao PowerShell.
O código pode ser encontrado emcódigo postal.
Responder3
Acabei de descobrir outra maneira de fazer isso e escrevi um artigo rápido sobre isso emhttp://www.itsjustwhatever.com/2012/10/28/launch-windows-8-metro-apps-from-a-desktop-shortcut-or-command-line/
A versão resumida: crie um atalho que aponte para bingnews:// Você pode ver se ele faz o que deseja. Nesse caso, há mais instruções para obter os nomes no site.
Responder4
Encontrei uma maneira de executar aplicativos universais do Windows baixados da Windows Store ou pré-instalados. Cada aplicativo universal do Windows 8/10 possui um AUMID
que significa 'ID do modelo do usuário do aplicativo'.
PowerShellComando para obter todos os AUMID:
get-StartApps
Saída:
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 ...
Agora, você pode iniciar qualquer aplicativo universal por meio de seu AUMID assim:
explorer shell:appsfolder\[AUMID]
Por exemplo, se você deseja executar Skype
:
explorer shell:appsfolder\Microsoft.SkypeApp_kzf8qxf38zg5c!App