Ich entwickle ein Automatisierungssystem und eine seiner Funktionen besteht darin, Anwendungen über die Befehlszeile auszuführen (ich meine, automatisch ohne menschliches Eingreifen).
Unter Windows 7 kann ich alles, was ich will, über einen Befehlszeilenaufruf ausführen. Gibt es eine ähnliche Möglichkeit, dasselbe unter Windows 8 zu tun, wenn auch die Metro-Apps darauf installiert sind?
Antwort1
Ja! Ich habe einen Weg gefunden ...
Bezogen aufDasQuellcode („Öffnen Sie eine Metro Style App von der Desktop-App aus“), wurde mir klar, dass ich die Metro-Apps genauso aufrufen konnte, wie wir sie normalerweise manuell ausführen. Ich meine, wenn Sie Ctrl+ drücken Escund zum Metro-Bildschirm gehen, können Sie einfach den Namen der Metro-App eingeben, z. B. „Store“, drücken Enterund das war‘s, die Metro-App wird ausgeführt. Darauf basierend habe ich ein sehr einfaches VBScript erstellt, um genau diese Schritte automatisch auszuführen:
Setzen Sie objShell = WScript.CreateObject("WScript.Shell")
objShell.SendKeys "^{ESC}"
WScript.Schlaf 1000
objShell.SendKeys WScript.Arguments.Item(0)
WScript.Schlaf 1000
objShell.SendKeys "{ENTER}"
Speichern Sie dies als „metro.vbs“ und rufen Sie es von der Befehlszeile mit dem Namen der Metro-App als erstem Argument auf:
metro.vbs-Speicher
Das ist alles, eine sehr einfache und optimierte Methode.
PS: Alle Credits gehen anAl-Khuzaei, der Codeplex-Site-Benutzer, der den zugehörigen Code erstellt hat. Vielen Dank.
Antwort2
Der folgende Blogbeitrag und der unterstützende Code zeigen Ihnen, wie Sie dies mit IApplicationActivationManager in PowerShell tun.
Glücklicherweise konnte ich Code finden aufPaketüberflussdas zeigte, wie man dies in C# verwendet (der Beitrag enthielt auch die Registrierungsinformationen, 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 musste ich die Funktion nur noch in etwas verpacken, das PowerShell ähnelt.
Den Code finden Sie aufposhcode.
Antwort3
Ich habe gerade eine andere Möglichkeit gefunden, dies zu tun, und einen kurzen Artikel darüber geschrieben unterhttp://www.itsjustwhatever.com/2012/10/28/launch-windows-8-metro-apps-from-a-desktop-shortcut-or-command-line/
Die Kurzversion: Erstellen Sie eine Verknüpfung, die auf bingnews:// verweist. Sie können sehen, ob das funktioniert. Wenn ja, gibt es weitere Anweisungen, um die Namen auf der Website abzurufen.
Antwort4
Ich habe eine Möglichkeit gefunden, Windows Universal-Apps auszuführen, die über den Windows Store heruntergeladen oder vorinstalliert wurden. Jede Windows 8/10 Universal-App hat ein , AUMID
das für „Application User Model ID“ steht.
Power ShellBefehl zum Abrufen aller AUMID:
get-StartApps
Ausgabe:
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 ...
Sie können jetzt also jede universelle App über ihre AUMID wie folgt starten:
explorer shell:appsfolder\[AUMID]
Wenn Sie beispielsweise Folgendes ausführen möchten Skype
:
explorer shell:appsfolder\Microsoft.SkypeApp_kzf8qxf38zg5c!App