我正在开发一个自动化系统,它的功能之一是从命令行运行应用程序(我的意思是自动运行而无需人工干预)。
在 Windows 7 上,我可以通过命令行调用运行我想要的所有内容,是否有类似的方法可以在安装了 Metro 应用程序的 Windows 8 上执行相同操作?
答案1
是啊!我找到办法了……
基于这源代码(“从桌面应用程序打开 Metro 风格应用程序”),我意识到我可以像通常手动运行一样调用 metro 应用程序。我的意思是,如果您按Ctrl+Esc并转到 metro 的屏幕,您只需输入 metro 应用程序的名称,例如“store”,按Enter就可以了,metro 应用程序正在运行。基于此,我创建了一个非常简单的 VBScript 来自动执行以下步骤:
设置 objShell = WScript.CreateObject("WScript.Shell")
objShell.SendKeys "^{ESC}"
WScript.睡眠 1000
objShell.SendKeys WScript.Arguments.Item(0)
WScript.睡眠 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”的 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