微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何跟踪WinRT应用程序在Win32中很简单?

在“旧”时代,我为Windows用户创build了一个简单的工具,它跟踪他们在计算机前面(简单的活动监视器)正在做什么。 我正在使用Win32 api,并且像GetForegroundWindow,GetwindowThreadProcessId等函数

昨天我安装了新的Windows 8,并厌倦了运行我的程序。 我获得了50%的成功:对于“经典”的桌面,它就像总是:)。 对于Metro UI,我只有一个应用程序:WWAHost :(没有任何细节。

所以我的问题是:是否有任何方法来跟踪Metro UI中的活动应用程序? 感谢帮助

更新:我试图从Win32访问Metro UI应用程序,我知道从另一个Metro应用程序访问Metro应用程序是不可能的

batch file来计算子目录中的文件types

如何从Windows上的Gstreamersubprocess读取二进制数据?

GTK message_dialog和unicodestring

什么USB设备(友好名称)当前连接到PC?

我如何删除C#中的Windows还原点?

电脑上所有audio的实时均衡器

用于Windows和Ubuntu的NodeJS exec()命令

如何使用StrawBerry在Windows上编译Perl模块?

在UTF-8内部工作是否有任何危险,然后只在Windows需要时才转换为UTF-16?

Emacs在磁盘上更改文件时挂起

你看,在WinRT中,你的应用程序是最顶级的应用程序。 而当你的应用程序不是最顶级的应用程序,那么你的线程被挂起,内核将不会为你的应用程序安排更多的操作。 故事结局。

这意味着你想要完成的事情不能在WinRT中完成。 您正在考虑更像是常驻应用程序或可访问桌面的服务。 这些应用程序有两个优点。 1)他们总是跑步。 而且,2)他们有API来做你想做的事情。

WinRT故意将应用程序放在沙箱中,以便保护用户的体验,性能和电池寿命。 您的场景和分数更像您的情况,突出了对桌面应用程序的持续需求。 (只要这些类型的应用程序仍然需要;))。

对不起,如果这是个坏消息。

至于枚举其他应用程序。 这也是不可能的。 你不知道是否安装了另一个应用程序,或者它正在运行。 您可以通过协议激活或文件激活或从某种意义上通过共享合同呼叫另一个应用程序。 但是你不知道他们是否得到了这个消息,并且用户是否已经安装了它。 这是设计。

值得一提的是,您可以在WinRT应用程序中调用Win32 API。 这会造成很多问题,并且可能会让您很难获得认证。 但即使如此,并非所有的API都向您开放。 你会发现这个特定的用例是一个非启动器。

我相信这是不可能的。 对于Windows 8“Metro”,只有一个应用程序处于活动状态。 所有其他应用程序将处于暂停状态,而最顶级的应用程序正在运行。 这使得编写监视当前正在执行的其他应用程序的应用程序成为不可能。

请参阅Windows 8应用程序生命周期中的许多文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐