是否可以通过桌面程序中的 WinAPI 函数打开或管理所有 Windows 8 应用(例如内置的邮件或新闻应用)?
对于“管理”,我的意思是打开、关闭、对齐(向左和向右)或枚举 Windows 8 应用程序。
我知道应用程序可以注册特殊的 URI 方案,因此它们可以通过链接打开(并且可能通过 ShellExecute()
和相关函数),但如果它们不这样做怎么办?
我刚刚在 Win8 应用程序开发博客中找到了 Ashwin Needamangala 的博客文章,其中介绍了使用 C++、WinAPI 和 COM 进行应用程序激活和自动化生命周期状态:http://blogs.msdn.com/b/windowsappdev/archive/2012/09/04/automating-the-testing-of-windows-8-apps.aspx
最佳答案
枚举通过 PackageManager 工作类(class)。 使用 IApplicationActivationManager 可以打开应用程序界面。 如果你是打开它的人并且你有一个句柄,你可以调用 TerminateProcess也可以,但我还没有尝试过。
编辑:我们开源了我们的 apprunner utility ,它可以安装、运行和卸载包,并展示了 PackageManager 和 IApplicationActivationManager 的使用。
除此之外,其他交互(即捕捉/取消捕捉)似乎无法从外部进行。
关于c++ - 通过 WinAPI 打开/关闭/管理 Windows 8 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14697252/