【问题标题】:Get second active window vb.net获取第二个活动窗口 vb.net
【发布时间】:2012-01-22 16:02:36
【问题描述】:

当浏览器可见时,我需要创建一个表单,其中AlwaysOnTop = True。这会创建某种“覆盖”。逻辑是这样的:

  • 程序检查哪个窗口处于活动状态。
  • 如果活动窗口是某个进程,我的窗体将初始化 TopMost 实用程序,并成为活动窗口本身。
  • 当某个进程不再是活动窗口时,我的表单将消失。

我是怎么做到的:

  • 我的程序检查浏览器是否是活动窗口,如果是的话:表单到达最顶层并且程序停止检查活动窗口是什么。 (因为我最顶层的窗体现在是活动窗口)。
  • 现在程序需要检查我的窗体下的窗口是什么,第二个活动窗口。
  • 如果不再是浏览器,表单需要隐藏,程序会再次检查活动窗口是什么。

我已经完成了检查第一个活动窗口是什么的功能,

我一直在获取检查第二个活动窗口是什么的功能。

【问题讨论】:

  • 乔恩的答案旁边有一个空心的复选框,您需要点击

标签: vb.net winforms overlay user32


【解决方案1】:

我不确定是否存在诸如“第二个活动窗口”之类的东西——它要么处于活动状态,要么没有。

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

您可以检测到活动窗口何时不再是您的表单,然后隐藏您的叠加层。

【讨论】:

  • 我试过了,但我的表单因为这个原因一直保持在最前面:它是最上面的,无论发生什么它都会保持在最前面。我正在为任何程序制作一个完全可移动的工具栏。当该程序处于活动状态时,工具栏需要可见,即使单击需要覆盖的程序也是如此。当您在浏览器上单击时,我的表单不再是活动的,如果它不是最上面的,它将消失到背景中。
  • 嗯,对 - 你确定你正在检测活动窗口,而不是最上面的。正如您自己所说,它们是微妙不同的东西。
  • 你是对的,topmost 是最顶层的窗口,而不是活动窗口!谢谢你的帮助,我现在可以继续了。
猜你喜欢
  • 1970-01-01
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 2021-01-22
  • 2016-03-21
  • 2020-05-05
  • 2020-11-25
  • 1970-01-01
相关资源
最近更新 更多