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

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); 函数。

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