我正在開發一個自動化系統,它的功能之一是從命令列運行應用程式(我的意思是,自動運行,無需人工幹預)。
在 Windows 7 上,我可以透過命令列呼叫來運行我想要的所有內容,是否有一些類似的方法可以對 Windows 8 執行相同的操作,並且還安裝了 Metro 應用程式?
答案1
是的!我找到了一個方法...
基於這原始碼(「從桌面應用程式開啟 Metro 風格應用程式」),我意識到我可以像我們通常手動運行一樣呼叫 Metro 應用程式。我的意思是,如果您按Ctrl+Esc並轉到metro的螢幕,您只需鍵入metro應用程式的名稱,例如“商店”,然後按Enter即可,metro應用程式正在運行。基於此,我建立了一個非常簡單的 VBScript 來自動執行這些步驟:
設定 objShell = WScript.CreateObject("WScript.Shell")
objShell.SendKeys "^{ESC}"
WScript.Sleep 1000
objShell.SendKeys WScript.Arguments.Item(0)
WScript.Sleep 1000
objShell.SendKeys“{ENTER}”
將其儲存為“metro.vbs”,並在第一個參數上使用 Metro 應用程式的名稱從命令列呼叫它:
Metro.vbs 商店
就是這樣,非常簡單且優化的方法。
PS:所有學分都給了阿爾庫札伊,建立相關程式碼的 Codeplex 網站使用者。謝謝。
答案2
以下部落格文章和支援程式碼向您展示如何使用 PowerShell 中的 IApplicationActivationManager 執行此操作。
取得 Metro 應用程式清單並使用 PowerShell 在 Windows 8 中啟動它們 « Tome's Land of IT
幸運的是,我能夠找到一些程式碼堆疊溢位展示瞭如何在 C# 中使用它(該帖子還列出了我將在本文中描述的註冊表資訊)。在對程式碼和 Add-Type 語法進行一些調整後,我能夠將所需的函數公開到 PowerShell 中。之後只需將該函數包裝成類似 PowerShell 的東西即可。
該程式碼可以在以下位置找到:豪華程式碼。
答案3
我剛剛想出了另一種方法來做到這一點,並在以下位置寫了一篇關於它的快速文章:http://www.itsjustwhatever.com/2012/10/28/launch-windows-8-metro-apps-from-a-desktop-shortcut-or-command-line/
簡短版本:建立一個指向 bingnews:// 的快捷方式,您可以查看它是否符合您的要求。如果是這樣,網站上會有更多獲取名稱的說明。
答案4
我找到了一種運行透過 Windows 應用程式商店下載或預先安裝的 Windows 通用應用程式的方法。每個 Windows 8/10 通用應用程式都有一個AUMID
代表「應用程式使用者模型 ID」。
電源外殼取得所有AUMID的指令:
get-StartApps
輸出:
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 ...
現在,您可以透過其 AUMID 啟動任何通用應用程序,如下所示:
explorer shell:appsfolder\[AUMID]
例如,如果您想執行Skype
:
explorer shell:appsfolder\Microsoft.SkypeApp_kzf8qxf38zg5c!App