Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何知道焦点窗口的名称/ID_C++_Windows_Opencv - Fatal编程技术网

C++ 如何知道焦点窗口的名称/ID

C++ 如何知道焦点窗口的名称/ID,c++,windows,opencv,C++,Windows,Opencv,如何知道OpenCV中焦点窗口的名称/ID。 如果OpenCV无法实现此功能,是否有任何事件处理/回调或windows api可以实现此功能。 我正在Windows 7和8.1上工作。 我想做一些类似的事情(但不限于): 如果某个窗口处于焦点位置,并且发生了鼠标或按键之类的事件, 然后更新特定的窗口 .首先,我不知道windows或其他api是否能帮上忙。 我有一个想法,以某种方式拍摄屏幕快照,然后使用opencv本身进行图像处理。假设聚焦窗口将位于顶部,并且聚焦程度最高,因此我们可以很容易地看

如何知道OpenCV中焦点窗口的名称/ID。 如果OpenCV无法实现此功能,是否有任何事件处理/回调或windows api可以实现此功能。 我正在Windows 7和8.1上工作。 我想做一些类似的事情(但不限于):

如果某个窗口处于焦点位置,并且发生了鼠标或按键之类的事件, 然后更新特定的窗口


.

首先,我不知道windows或其他api是否能帮上忙。
我有一个想法,以某种方式拍摄屏幕快照,然后使用opencv本身进行图像处理。假设聚焦窗口将位于顶部,并且聚焦程度最高,因此我们可以很容易地看到名称。我们可以处理颜色以将聚焦窗口与其他窗口(如果有的话)分开。并使用OCR提取windows名称。

正如Kris所建议的,windows上存在一个解决方案。使用windows api将活动窗口的句柄用作:

HWND WINAPI GetActiveWindow(void);

现在使用
GetWindowText()
函数提取标题(如果有)。它可能不便于携带。其他操作系统也应该有类似的api。

这永远不会是健壮的。为什么不直接使用本机API来获取活动窗口?