Wie führe ich eine Metro-Anwendung über die Befehlszeile in Windows 8 aus?

20

Ich entwickle ein Automatisierungssystem und eine seiner Funktionen ist das Ausführen von Anwendungen über die Befehlszeile (ich meine, automatisch ohne menschliches Eingreifen).

Unter Windows 7 konnte ich alles, was ich wollte, über eine Befehlszeile ausführen. Gibt es eine ähnliche Möglichkeit, dies auch unter Windows 8 zu tun, wenn auch die Metro-Apps darauf installiert sind?

Diogo
quelle
In Windows 8, ist es eine Befehlszeile?
Ian Boyd
1
Ja, tippe einfach cmd auf der Metro-Oberfläche und führe es aus.
Diogo
Verwenden Sie VS?
Soandos
2
Vielleicht möchten Sie sich stattdessen auf Powershell konzentrieren. Das AppX-Paket enthält mehrere Cmdlets zum Verwalten von Metro-Apps (siehe Get-Help AppxDetails), obwohl ich im Moment nichts zum Ausführen gefunden habe.
Indrek
1
Meines Wissens können Sie Metro-Apps nicht über die Befehlszeile ausführen. Ich hoffe, jemand kennt einige Hack / Lösungen.
Corporate Geek

Antworten:

12

Ja! Ich habe einen Weg gefunden...

Aufgrund dieses Quellcodes ("Öffnen einer App im Metro-Stil über die Desktop-App") wurde mir klar, dass ich die Metro-Apps genauso aufrufen kann, wie wir sie normalerweise manuell ausführen. Ich meine, wenn Sie Ctrl+ drücken Escund zum Bildschirm der U-Bahn gehen, können Sie einfach den Namen der U-Bahn-App eingeben, wie zum Beispiel "Store", drücken Enterund das wars, die U-Bahn-App läuft. Auf dieser Basis habe ich ein sehr einfaches VBScript erstellt, um genau diese Schritte automatisch durchzuführen:

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

objShell.SendKeys "^ {ESC}"

WScript.Sleep 1000

objShell.SendKeys WScript.Arguments.Item (0)

WScript.Sleep 1000

objShell.SendKeys "{ENTER}"

Speichern Sie dies als "metro.vbs" und rufen Sie es über die Befehlszeile mit dem Namen der Metro-App beim ersten Argument auf:

metro.vbs speichern

Das ist es, sehr einfache und optimierte Art und Weise.

PS: Alle Credits gingen an AlKhuzaei , den Codeplex-Site-Benutzer, der den zugehörigen Code erstellt hat. Vielen Dank.

Diogo
quelle
Ah, ich habe mich das Gleiche gefragt. Interessante Lösung. Das einzige Problem besteht darin, dass Sie zwei Programme mit demselben Namen haben, z. B. die Metro- und die Desktop-Version von Evernote. Was wird mit den oben genannten ins Leben gerufen? Es sollte eine andere Möglichkeit geben, da Visual Studio die von Ihnen entwickelte Anwendung starten kann.
Jim McKeeth
Ich denke, weil die Strg + Esc, wird es nur die Metro-App öffnen ... Es ist etwas, das den Test würde woth.
Diogo,
Nein, habe es einfach versucht. [Strg] + [Esc] ist dasselbe wie [Win] und beide zeigen nur das Startmenü an , mit dem Sie jedes Programm dort starten können - Metro und Desktop gleichermaßen.
Jim McKeeth
Also, was macht Windows 8, wenn zwei Apps Metro und Schreibtisch den gleichen Namen haben? Es wird auf U-Bahn-Schnittstelle dupliziert?
Diogo
Ja, es ist wirklich nervig. Genau aus diesem Grund habe ich die Metro-Version von Evernote deinstalliert.
Jim McKeeth
6

Der folgende Blog-Beitrag und der zugehörige Code zeigen Ihnen, wie Sie dies mit IApplicationActivationManager in PowerShell tun.

Holen Sie sich eine Liste der Metro-Apps und starten Sie sie in Windows 8 mit PowerShell «Tome's Land of IT

Glücklicherweise konnte ich auf Stack Overflow einen Code finden , der zeigte, wie dies in C # verwendet wird (in dem Beitrag wurden auch die Registrierungsinformationen aufgeführt, die ich in diesem Artikel beschreiben werde). Nach einigen Anpassungen des Codes und der Add-Type-Syntax konnte ich die benötigte Funktion in PowerShell verfügbar machen. Danach ging es nur noch darum, die Funktion in etwas zu packen, das PowerShell ähnelt.

Der Code ist auf poshcode zu finden .

Band Tanasovski
quelle
Willkommen bei Super User, Tome! Wir möchten, dass die Antworten in sich geschlossen sind und nicht zu sehr auf externe Ressourcen angewiesen sind. Ich habe die wichtigsten Teile Ihres Blogposts zitiert, aber Sie können noch viel mehr bearbeiten , auch im Hinblick auf die Lösung des genauen Problems des OP.
Slhck
Sehr coole Informationen, hier!
Ben Richards