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

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

在“旧”时代,我为 Windows用户创建了一个简单的工具,它跟踪他们在计算机前面所做的事情(简单的活动监视器).我正在使用Win32 api和GetForegroundWindow,GetwindowThreadProcessId等函数.

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

所以我的问题是:有没有办法在Metro UI中跟踪活动应用程序?
感谢帮助

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

你看,在WinRT中,你的应用程序是最顶层的应用程序.当您的应用程序不是最顶级的应用程序时,您的线程将被暂停,内核将不会为您的应用程序安排任何其他操作.故事结局.

这意味着您想要完成的任务无法在WinRT中完成.您更像是一个常驻应用程序或可以访问桌面的服务.这些应用程序有两个优点. 1)他们总是在跑步.并且,2)他们有API来做你想要的.

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

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

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

值得一提的是,您可以在WinRT应用程序中调用Win32 API.它会导致很多问题,并且可能会让人头疼以获得认证.但即便如此,并非所有API都对您开放.你会发现这个特殊的用例是非首发的.

原文地址:https://www.jb51.cc/windows/365221.html

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

相关推荐