应用程序启动和焦点恢复
本文关键字:恢复 焦点 启动 应用程序 | 更新日期: 2023-09-27 18:31:00
我正在开发一个 kinect 应用程序(应用程序 A),我想在其中启动另一个本地 kinect 应用程序(应用程序 B)。
我可以毫无问题地启动应用程序 B,它显示在我的 kinect 启动应用程序上,生活很好。 要关闭应用程序B,有一个kinect手势,我必须核弹。
我不确定的是,我希望应用程序 A 知道应用程序 B 何时消失,并且应用程序 A 抓取一些事件,以便它可以再次全屏并重新连接 kinect 传感器。
我知道如何做所有事情,除了从应用程序 A 检测时,当它上面什么都没有并且它可以再次控制时。
我需要做什么? 谢谢!
选项 1
尝试 WindowFromPoint 作为您知道 2 个窗口(应用程序 A 的窗口和应用程序 B 的窗口)应该相交的屏幕点。如果返回的句柄是应用 B 窗口或其子窗口之一,则应用 A 仍在运行。
选项 2
使应用 B 在退出时向应用 A 发送消息(使用 FindWindow 查找应用 A 的窗口句柄)
选项 3
偶尔使用 EnumWindows(基于计时器)枚举所有顶级窗口,并查找应用 B 的窗口是否仍然存在
所以我找到了正确的(我认为)方法来解决这个问题,我把问题复杂化了。 我正在使用System.Diagnostics.Process从应用程序A启动应用程序B - 因此我可以直接访问该过程,因为应用程序A永远不会停止。 我只是挂接到 Exited 事件,然后当应用 B 消失时,我可以让应用 A 执行我需要的任何操作。