Dentro da C:\Program Files\WindowsApplications
pasta estão os arquivos .exe dos aplicativos modernos do meu PC. Quando clico duas vezes em um deles, um pop-up me diz:
This application can run only in the context of an app container
Existe uma maneira de executar um aplicativo moderno diretamente do arquivo .exe e não apenas do bloco?
Agradeço antecipadamente!
PS: Estou na visualização técnica do Windows 10.
Responder1
Antes do Windows 8, você podia ter aplicativos .exe "autônomos". A instalação consistiu principalmente em criar links e referências para tornar mais fácil para o aplicativo encontrar o que precisava e executar. Se tudo o que o aplicativo precisava fosse fornecido pelo próprio aplicativo, ele poderia ser executado sem instalação. O app-container é um conceito de segurança introduzido no Win 8. Sem instalação, um aplicativo tem acesso às suas próprias pastas e pouco mais, incluindo a maioria dos dispositivos. Um aplicativo deve ser projetado para funcionar com contêineres de aplicativos para ser instalado. Esselinktem uma descrição decente do conceito e como ele funciona.
Editar: para um aplicativo instalado, parece que todas as associações e permissões estão anexadas ao bloco, portanto, o .exe não pode ser executado diretamente.
Responder2
Você pode executar um aplicativo moderno do Windows a partir da linha de comando usando um comando shell explorer.exe como este:
explorer.exe shell:AppsFolder\<Package Name>_<Publisher ID>!<App ID>
Ou, via start, que é recomendado caso você precise passar argumentos:
start shell:AppsFolder\<Package Name>_<Publisher ID>!<App ID> arg1 arg2
O truque é descobrir o nome do pacote, o ID do editor e o ID do aplicativo. Seria bom se todas essas informações estivessem disponíveis na listagem do aplicativo na Microsoft Store, ou no Gerenciador de Tarefas, ou na listagem do aplicativo em Configurações -> Aplicativos e recursos. Até agora, não encontrei uma maneira fácil de coletar essas três informações. Aqui estão as etapas para fazer isso usando o Gerenciador de Tarefas e o Explorador de Arquivos, copiados deminha postagem no blog.
- Abra o aplicativo moderno normalmente, no menu Iniciar, barra de tarefas, etc.
- Inicie o Gerenciador de Tarefas (cliquei com o botão direito na barra de tarefas do Windows e escolho "Gerenciador de Tarefas")
- Expanda a listagem do aplicativo de seu interesse, clique com o botão direito no item filho e escolha "Ir para detalhes"
- Clique com o botão direito no executável destacado e escolha "Abrir local do arquivo"
- O nome do diretório que você acabou de abrir fornece o nome do pacote e o ID do editor, se você souber como analisá-los. Usando o aplicativo Calendário como exemplo, o nome do diretório, "microsoft.windowscommunicationsapps_16005.12827.20560.0_x64__8wekyb3d8bbwe", começa com o nome do pacote ("microsoft.windowscommunicationsapps"), é seguido pelas informações de versão e plataforma que você não precisa para isso ("16005.12827.20560.0_x64") e, em seguida, vem o ID do editor ("8wekyb3d8bbwe"). Anote o nome do pacote e o ID do editor para uso posterior.
- Abra o arquivo AppxManifest.xml nesse diretório
- Perto do topo do arquivo AppxManifest.xml, você encontrará um elemento Identity, com um atributo Name - confirme se esse valor corresponde ao nome do pacote, que já obtivemos do nome do diretório
- Pesquise o arquivo AppxManifest.xml pelo nome do executável, por exemplo, HxCalenderAppImm.exe, e você encontrará um elemento XML semelhante a este:
Agora que você coletou as três informações de que precisamos, você pode criar o comando para abrir o aplicativo na linha de comando.
Seu comando ficará assim, substituindo as porções pelas três informações coletadas acima:
explorer.exe shell:AppsFolder\<Package Name>_<Publisher ID>!<App ID>
Continuando com o exemplo do aplicativo Calendário do pacote Mail and Calendar, você inseriria algo assim:
explorer.exe shell:AppsFolder\microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.windowslive.calendar
Caro Microsoft: Por favor, torne isso mais fácil!
Responder3
Acredito que agora seja possível, pelo menos de alguma forma. O aplicativo "Windows Scan", por exemplo, pode ser transformado em um atalho usando "Microsoft.WindowsScan_8wekyb3d8bbwe!App" como alvo.