获取第二个活动窗口vb.net

获取第二个活动窗口vb.net,vb.net,winforms,overlay,user32,Vb.net,Winforms,Overlay,User32,当浏览器可见时,我需要创建一个表单,其中AlwaysOnTop=True。这会在“覆盖”上创建某种排序。逻辑如下: 程序检查哪个窗口处于活动状态 如果活动窗口是某个进程,“我的窗体”将初始化最顶层的实用程序,并成为活动窗口本身 当某个进程不再是活动窗口时,我的窗体将消失 我是如何做到的: 我的程序检查浏览器是否为活动窗口,如果是:窗体位于最顶端,程序停止检查活动窗口是什么。(因为我最上面的窗体现在是活动窗口) 现在程序需要检查我窗体下的窗口是什么,第二个活动窗口 如果不再是浏览器,表单需要

当浏览器可见时,我需要创建一个表单,其中
AlwaysOnTop=True
。这会在“覆盖”上创建某种排序。逻辑如下:

  • 程序检查哪个窗口处于活动状态
  • 如果活动窗口是某个进程,“我的窗体”将初始化最顶层的实用程序,并成为活动窗口本身
  • 当某个进程不再是活动窗口时,我的窗体将消失
我是如何做到的:

  • 我的程序检查浏览器是否为活动窗口,如果是:窗体位于最顶端,程序停止检查活动窗口是什么。(因为我最上面的窗体现在是活动窗口)
  • 现在程序需要检查我窗体下的窗口是什么,第二个活动窗口
  • 如果不再是浏览器,表单需要隐藏,程序将再次检查活动窗口
我已经完成了检查第一个活动窗口的功能


我在获取检查第二个活动窗口是什么的函数时遇到了麻烦

我不确定是否有“第二个活动窗口”之类的东西——它是活动的还是不活动的

在检测浏览器的第一步之后,为什么不让活动窗口检查器运行呢


您可以检测活动窗口何时不再是您的窗体,然后隐藏覆盖图。

我尝试过这样做,但我的窗体保持在顶部是因为这个原因:它是最顶部的,无论发生什么情况,它都将保持在顶部。我所做的是一个完全可移动的工具栏,适用于任何程序。当该程序处于活动状态时,即使单击需要覆盖的程序,工具栏也必须可见。当你点击浏览器时,“我的表单”不再是活动窗口,如果它不是最上面的,它将消失到背景中。啊,对了-你确定你当时正在检测活动窗口,而不是最上面的窗口吗。正如你自己所说,它们是微妙不同的东西。你是对的,最上面的是最上面的窗口,而不是活动窗口!谢谢,谢谢你的帮助,我现在可以继续了。你需要点击Jon答案旁边的一个空复选框