Como executo um aplicativo Metro a partir da linha de comando no Windows 8?

20

Estou desenvolvendo um sistema de automação e um de seus recursos é executar aplicativos a partir da linha de comando (quero dizer, automaticamente sem intervenção humana).

No Windows 7, eu poderia executar tudo o que eu queria em 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?

Diogo
fonte
No Windows 8, é há uma linha de comando?
22812 Ian Boyd
11
sim, basta digitar cmd na interface do metro e executá-lo.
Diogo
Você está usando o VS?
Soandos
2
FWIW, você pode querer se concentrar no PowerShell. O pacote AppX inclui vários cmdlets para gerenciar aplicativos Metro (consulte Get-Help Appxpara obter detalhes), embora eu não tenha encontrado nada para executá-los no momento.
Indrek
11
Pelo que sei, você não pode executar aplicativos Metro na linha de comando. Espero que alguém conheça algumas soluções / hack.
Corporate Geek

Respostas:

12

sim! Eu encontrei um caminho...

Com base nesse código-fonte ("Abrir um aplicativo Metro Style a partir do aplicativo Desktop"), percebi que podia chamar os aplicativos Metro da mesma maneira que normalmente executamos manualmente. Quero dizer, se você pressionar Ctrl+ Esce for para a tela do metro, basta digitar o nome do aplicativo, como "loja", por exemplo, pressionar Entere pronto, o aplicativo está em execução. Com base nisso, criei um VBScript muito simples para executar exatamente essas etapas automaticamente:

Defina objShell = WScript.CreateObject ("WScript.Shell")

objShell.SendKeys "^ {ESC}"

WScript.Sleep 1000

objShell.SendKeys WScript.Arguments.Item (0)

WScript.Sleep 1000

objShell.SendKeys "{ENTER}"

Salve isso como "metro.vbs" e chame-o na linha de comando com o nome do aplicativo metro no primeiro argumento:

loja metro.vbs

É isso, de maneira muito simples e otimizada.

PS: Todos os créditos concedidos a AlKhuzaei , o usuário do site Codeplex que criou o código relacionado. Obrigado.

Diogo
fonte
Ah, eu estava pensando a mesma coisa. Solução interessante. O único problema é se você tiver dois programas com o mesmo nome, como as versões Metro e desktop do Evernote instaladas. Qual é lançado com o acima? Deve haver outra maneira, já que o Visual Studio pode iniciar o aplicativo que você está desenvolvendo.
21712 Jim McKeeth
Eu acho que porque o ctrl + esc abrirá apenas o aplicativo metro ... É algo que faria o teste.
Diogo
Não, apenas tentei. [Ctrl] + [Esc] é o mesmo que [Win], e ambos apenas mostram o menu Iniciar , que permite iniciar qualquer programa lá - Metro e Desktop.
Jim McKeeth
Então, o que o Windows 8 faz quando dois aplicativos metro e desk têm o mesmo nome ??? Tornou-se duplicado na interface do metro?
Diogo
Sim, é realmente irritante. Desinstalei a versão Metro do Evernote exatamente por esse motivo.
21812 Jim McKeeth
6

A seguinte postagem no blog e o código de suporte mostram como fazer isso com o IApplicationActivationManager no PowerShell.

Obtenha uma lista de aplicativos de metro e inicie-os no Windows 8 usando o PowerShell «Terra de TI da Tome

Felizmente, consegui encontrar algum código no Stack Overflow que mostrasse como usá-lo em C # (a postagem também listava as informações de registro que descreverei neste artigo). Após alguns ajustes no código e na sintaxe Add-Type, pude expor a função necessária no PowerShell. Depois disso, era apenas uma questão de agrupar a função em algo semelhante ao PowerShell.

O código pode ser encontrado no poshcode .

Tomé Tanasovski
fonte
Bem-vindo ao superusuário, Tomé! Gostaríamos que as respostas fossem independentes, sem depender muito de recursos externos. Citei as partes mais relevantes do seu blog, mas você pode editar muito mais, também com relação à solução do problema exato do OP.
slhck #
Informações muito legais, aqui!
amigos estão dizendo sobre ben Richards