Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Win8 Metro风格的应用程序中访问其他进程_C#_Windows 8_Windows Runtime_Microsoft Metro - Fatal编程技术网

C# 在Win8 Metro风格的应用程序中访问其他进程

C# 在Win8 Metro风格的应用程序中访问其他进程,c#,windows-8,windows-runtime,microsoft-metro,C#,Windows 8,Windows Runtime,Microsoft Metro,我正在尝试构建一个Windows8“metro风格”的应用程序,它将作为一个“应用杀手”运行。对于那些使用过Win8(技术预览)的用户,您会注意到,一旦打开metro风格的应用程序,就无法关闭它(不进入任务管理器并结束该过程) 我的挑战是,我无法从metro风格的应用程序访问“System.Diagnostics.Process”,也不知道WinRT中是否有类似的替代方案。我还想过构建一个单独的应用程序,为我的metro应用程序提供一个服务,但我想用一个应用程序来实现这一点 从根本上说,我正在寻

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

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

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

澄清:与访问Metro风格应用程序中的那种.NET功能相比,我不太关心这个特定应用程序

据我所知(观看Build2011视频),Metro应用程序无法做到这一点,谢谢

流程之间的交互分别限于特定的合同(右侧的魅力:搜索、发送到)

想想电话,而不是桌面


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

不要在这上面浪费太多时间。我希望在beta版中包含一个接近的选项(甚至可能是一个符咒)。在此之前,请使用键盘Alt-F4或任务管理器来回答您的特定问题,此功能不可用。应用程序不允许与其他应用程序交互或干扰

为了回答您更一般的问题,Metro风格应用程序可用的API与桌面应用程序可用的API相比是有限的。与Silverlight一样,C#也提供了一个.Net库。对于C++ C++,其中桌面Win32/COM API是可用的。
Window::Current->CoreWindow->Close()

Window::Current->Close()

我还没有探究这两者之间的区别(更准确地说,我不知道
corewindown
Current
有何不同。不过我可以假设


我在Win7机上使用一个Oracle Vbox开发一个使用VS 11的C++ Metro应用程序。我使用了以上两种方法。我在任务管理器中验证了应用程序不是在Win8和模拟器上运行的。

当然不能成立,一旦打开一个应用程序就不能关闭。除了ALT+F4之外没有UI动作来关闭地铁风格的应用程序。ion。我相信这是设计的。你可以在dev.windows.com上卸载操作系统,然后自己尝试。好的,这样你就可以关闭应用程序了!没错。我更关心的是Metro风格到.NET4的交互。这只是一个框架应用的示例。有什么想法吗?你可以将指针移动到窗口顶部,直到它变成平手,然后拖动应用程序p到底部,或仅使用触摸界面滑动。这部分拖拽/滑动以捕捉和任务交换。可能,但有很多关于应用程序生命周期的信息(暂停/停用)这不需要关闭。你只需要在应用程序挂起时关闭,然后关闭按钮也不会起作用。@HenkHolterman-除非它像TaskManager那样执行“杀死”。但是你怎么告诉它(挂起的应用程序)要做到这一点?我们不能否认微软可能会添加这一功能。@Henkholtman可能与close在iOS上的工作方式相同:告诉进程关闭自己,它不会响应,然后杀死它。我最喜欢这个答案,我想我已经得到了分离或缺少这一功能。我只是想继续前进,如果所有的应用都会成功的话我是“metro风格”的,除了“定制的”NET45子集中的“管理任务”之外,还需要执行一些“管理任务”。我想我可以将这些任务推迟到支持服务。对于Windows 8,所有应用程序都不是metro风格。桌面应用程序仍然有明确的需求。嗯,可能总是这样。我无法想象Visual Studio或Photoshop(而非elements)作为Metro风格的应用程序。微软代表(架构师、经理等)已经表示,他们没有放弃桌面的计划。他们只是将Metro和桌面视为两种不同的可用性场景。有些东西使用触摸(移动设备)更容易,有些东西更适合桌面(精确)。他们没有计划删除桌面。听起来你的应用应该是桌面应用,而不是Metro应用。仅仅因为Metro是新的,并不意味着它是适合这项工作的架构和工具。