检查窗口是不是处于活动状态

Posted

技术标签:

【中文标题】检查窗口是不是处于活动状态【英文标题】:Checking if a window is active检查窗口是否处于活动状态 【发布时间】:2013-08-03 16:33:57 【问题描述】:

我有一个使用GetAsyncKeyState(); 的控制台应用程序,但如果用户正在查看另一个窗口并按下按钮,GetAsyncKeyState(); 会选择它(我已经知道了)。

不用GetActiveWindow();,我还能如何检查我的窗口是否在顶部?

编辑:GetConsoleWindow() == GetForegroundWindow() 工作。

【问题讨论】:

【参考方案1】:

这件事对我有用:

HWND name;
name=GetForegroundWindow();

while(!_kbhit())
   if(name==GetForegroundWindow())
      printf("Mine window is active\n");
   else
      printf("Mine window is not active\n");

【讨论】:

【参考方案2】:

要获得活动窗口,您可以致电GetActiveWindowGetFocus 将返回具有输入焦点的窗口句柄。这个窗口也可以是一个控件。所以你可以检查你的窗口句柄,看看它是否有焦点。

【讨论】:

我不想要这个,因为我必须设置一堆 WinAPI 的东西才能得到我的处理。 (我在我的问题中写道我不想要GetActiveWindow();)我只想要一个简单的bool IsActiveWindow(void); 函数。

以上是关于检查窗口是不是处于活动状态的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL 闪烁/损坏,窗口调整大小和 DWM 处于活动状态

有没有办法检测浏览器窗口当前是否处于活动状态?

当设备的(android)键盘处于活动状态时,jquery 移动弹出窗口小部件不会移动

当模式对话框处于活动状态时,检测主应用程序窗口上的 WM_CLOSE 事件?

Flutter Desktop:如何隐藏窗口(并使进程保持活动状态)?

检查 WooCommerce 是不是处于活动状态以及使用的版本