5

我正在尝试构建一个 Windows 8“地铁风格”应用程序,它将作为“应用程序杀手”运行。对于那些使用过 Win8(技术预览)的人,您会注意到,一旦您打开 Metro 风格的应用程序,您就无法关闭它(无需进入任务管理器并结束进程)。

我的挑战是我无法从 Metro 风格的应用程序中访问“System.Diagnostics.Process”,也不知道 WinRT 中是否有类似的替代方案。我还想构建一个单独的应用程序,为我的 Metro 应用程序提供一个服务来与之交互,但我想用一个应用程序来做到这一点。

从根本上说,我正在寻找一种模式来构建利用 .NET 4.0 组件的 Metro 风格应用程序,特别是能够枚举和终止 PC 上运行的其他进程。

澄清:我不太关心这个特定的应用程序,而是在 Metro 风格的应用程序中访问这种类型的 .NET 功能

谢谢

4

4 回答 4

8

据我了解(观看 Build2011 视频)Metro App 将无法做到这一点......

进程之间的交互分别限于特定的合同(右侧的超级按钮:搜索、发送至)。

想想手机,而不是台式机。

不过,您也许可以构建一个非 Metro Win8 应用程序。

于 2011-10-16T20:43:58.787 回答
8

对于您的具体问题,此功能不可用。不允许应用程序与其他应用程序交互或干扰。

为了回答您更一般的问题,与桌面应用程序可用的 API 相比,Metro 风格应用程序可用的 API 是有限的。C# 有一个可用的 .Net 库子集,就像 Silverlight 一样。对于 C++ 也是如此,其中桌面 Win32/COM API 的子集可用。

于 2011-10-17T00:01:56.690 回答
3

不要在这上面浪费太多时间。我希望在测试版中包含一个关闭选项(甚至可能是一个魅力)。在此之前使用键盘 Alt-F4 或任务管理器

于 2011-10-16T20:51:32.433 回答
-1

C++:

Window::Current->CoreWindow->Close();

或者

Window::Current->Close();

我还没有探讨这两者之间的区别(更准确地说,我不知道与 有什么CoreWindow不同Current。但我可以假设......

我在我的 Win7 机器上使用带有 Win8 的 Oracle VBox 来使用 VS 11 开发 C++ Metro App。我使用了上述两种方法。我在任务管理器中验证了该应用程序没有在 Win8 和模拟器上运行。

于 2011-10-27T20:30:39.183 回答