Comment exécuter une application Metro à partir de la ligne de commande dans Windows 8?

20

Je développe un système d'automatisation et l'une de ses fonctionnalités exécute des applications à partir de la ligne de commande (je veux dire, automatiquement sans intervention humaine).

Sur Windows 7, je pourrais exécuter tout ce que je veux à partir d'un appel en ligne de commande, il existe une manière similaire de faire la même chose avec Windows 8 avec également les applications Metro installées dessus?

Diogo
la source
Dans Windows 8, existe- t - il une ligne de commande?
Ian Boyd
1
oui, il suffit de taper cmd sur l'interface métro et de l'exécuter.
Diogo
Utilisez-vous VS?
soandos
2
FWIW, vous voudrez peut-être vous concentrer sur Powershell à la place. Le package AppX comprend plusieurs applets de commande pour la gestion des applications Metro (voir Get-Help Appxpour plus de détails), bien que je ne trouve rien pour les exécuter pour le moment.
Indrek
1
D'après mes connaissances, vous ne pouvez pas exécuter les applications Metro à partir de la ligne de commande. J'espère que quelqu'un connaît quelques hack / solutions.
Corporate Geek

Réponses:

12

Ouais! J'ai trouvé un moyen...

Sur la base de ce code source («Ouvrir une application de style Metro à partir d'une application de bureau»), j'ai réalisé que je pouvais appeler les applications de métro comme nous le faisons habituellement manuellement. Je veux dire, si vous appuyez sur Ctrl+ Escet accédez à l'écran de métro, vous pouvez simplement taper le nom de l'application métro, comme "magasin" par exemple, appuyez sur Enteret c'est tout, l'application métro fonctionne. Sur cette base, j'ai créé un VBScript très simple pour effectuer exactement ces étapes automatiquement:

Définissez objShell = WScript.CreateObject ("WScript.Shell")

objShell.SendKeys "^ {ESC}"

WScript.Sleep 1000

objShell.SendKeys WScript.Arguments.Item (0)

WScript.Sleep 1000

objShell.SendKeys "{ENTER}"

Enregistrez-le sous "metro.vbs" et appelez-le depuis la ligne de commande avec le nom de l'application metro au premier argument:

magasin metro.vbs

Voilà, de manière très simple et optimisée.

PS: Tous les crédits accordés à AlKhuzaei , l'utilisateur du site Codeplex qui a créé le code associé. Merci.

Diogo
la source
Ah, je me demandais la même chose. Solution intéressante. Le seul problème est si vous avez deux programmes avec le même nom, comme les versions Metro et desktop d'Evernote installées. Qui est lancé avec ce qui précède ?? Il devrait y avoir un autre moyen puisque Visual Studio peut lancer l'application que vous développez.
Jim McKeeth
Je pense que parce que ctrl + esc, ça n'ouvrira que l'application metro ... C'est quelque chose qui ferait le test.
Diogo
Non, viens de l'essayer. [Ctrl] + [Esc] est identique à [Win], et les deux affichent simplement le menu Démarrer , qui permet de lancer n'importe quel programme là-bas - Metro et Desktop.
Jim McKeeth
Alors, que fait Windows 8 lorsque deux applications metro et desk ont ​​le même nom ??? Il devient dupliqué sur l'interface de métro?
Diogo
Ouais, c'est vraiment ennuyeux. J'ai désinstallé la version Metro d'Evernote précisément pour cette raison.
Jim McKeeth
6

Le billet de blog suivant et le code de prise en charge vous montrent comment procéder avec IApplicationActivationManager dans PowerShell.

Obtenez une liste des applications Metro et lancez-les dans Windows 8 en utilisant PowerShell «Tome's Land of IT

Heureusement, j'ai pu trouver du code sur Stack Overflow qui a montré comment utiliser cela en C # (le message a également répertorié les informations de registre que je décrirai dans cet article). Après quelques ajustements du code et de la syntaxe Add-Type, j'ai pu exposer la fonction dont j'avais besoin dans PowerShell. Après cela, il ne s'agissait que d'envelopper la fonction dans quelque chose qui ressemble à PowerShell.

Le code se trouve sur poshcode .

Tome Tanasovski
la source
Bienvenue à Super User, Tome! Nous aimerions que les réponses soient autonomes et ne dépendons donc pas trop des ressources externes. J'ai cité les parties les plus pertinentes de votre article de blog, mais vous êtes libre d' éditer beaucoup plus, également en ce qui concerne la résolution du problème exact de l'OP.
slhck
Des informations très cool, ici!
Ben Richards