如何从 Windows 8 中的命令行运行 Metro 应用程序?

Dio*_*ogo 20 command-line windows-8

我正在开发一个自动化系统,它的功能之一是从命令行运行应用程序(我的意思是,无需人工干预即可自动运行)。

在 Windows 7 上,我可以通过命令行调用运行我想要的所有东西,有一些类似的方法可以在 Windows 8 上执行相同的操作,并且还安装了 Metro 应用程序?

Dio*_*ogo 12

是的!我找到了一个方法...

基于源代码(“从桌面应用程序打开 Metro 风格应用程序”),我意识到我可以像通常手动运行一样调用 Metro 应用程序。我的意思是,如果您按Ctrl+Esc并转到 Metro 的屏幕,您只需输入 Metro 应用程序的名称,例如“商店”,然后按即可Enter,Metro 应用程序正在运行。基于此,我创建了一个非常简单的 VBScript 来自动执行这些步骤:

Set 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 站点用户AlKhuzaei。谢谢你。


小智 6

以下博客文章和支持代码向您展示了如何使用 PowerShell 中的 IApplicationActivationManager 执行此操作。

获取 Metro 应用程序列表并使用 PowerShell « Tome's Land of IT 在 Windows 8 中启动它们

幸运的是,我在Stack Overflow上找到了一些代码,展示了如何在 C# 中使用它(这篇文章还列出了我将在本文中描述的注册表信息)。在对代码和 Add-Type 语法进行一些调整后,我能够将所需的函数公开到 PowerShell 中。之后,只需将该函数包装成类似于 PowerShell 的东西即可。

代码可以在poshcode找到


小智 5

我只是想出了另一种方法,并在http://www.itsjustwhatever.com/2012/10/28/launch-windows-8-metro-apps-from-a-desktop上写了一篇关于它的快速文章-快捷方式或命令行/

简短版本:创建一个指向 bingnews:// 的快捷方式您可以查看它是否满足您的要求。如果是这样,则有更多说明可以在网站上获取名称。