- 主题:如何获得焦点窗口的句柄?
用GetFocus和GetActiveWindow,返回的句柄都是0000000
代码如下
#include <iostream>
#include <Windows.h>
#include <stdio.h>
#include <string.h>
int main()
{
HWND hq = GetActiveWindow();
std::cout<<hq<<std::endl;
return 0;
}
--
修改:gaofei FROM 210.30.193.*
FROM 210.30.193.*
GetActiveWindow是你自己程序(该线程)激活的窗口吧。你是想要包括别的进程最前面的窗口GetForegroundWindow吗?
--
FROM 222.129.49.*
那我自己的窗口,也不应该是返回00000啊
我是想获得系统当前焦点窗口,因为有个程序总和抢焦点
每过一段时间,焦点就丢失,特别烦,还看不出是谁在抢
所以想写个程序追踪一下焦点在哪
【 在 ble 的大作中提到: 】
: GetActiveWindow是你自己程序(该线程)激活的窗口吧。你是想要包括别的进程最前面的窗口GetForegroundWindow吗?
--
FROM 210.30.193.*
不是include <windows>就自动有窗口的。。。
【 在 gaofei 的大作中提到: 】
: 那我自己的窗口,也不应该是返回00000啊
: 我是想获得系统当前焦点窗口,因为有个程序总和抢焦点
: 每过一段时间,焦点就丢失,特别烦,还看不出是谁在抢
: ...................
--
FROM 115.193.174.*
#include <iostream>
#include <stdio.h>
为啥两个IO库
--
FROM 1.193.59.*
int main()
{
while(true)
{
HWND h = GetForegroundWindow();
wchar_t name[256];
if(h != NULL)
{
GetWindowText(h, name, 256);
wprintf("%s\n", name);
}
}
Sleep(1000);
}
启动此程序,打开你的程序。过一会查看下,输出里除了你的窗口,还有谁。
大概率是自己程序的子窗体.
程序设置为“Unicode字符集”。 用wprintf,不要用std::wcout.
1楼正解。
--
FROM 124.114.151.*
谢谢
人生苦短,已经用py解决了
是epson打印机驱动的一个进程在抢焦点
干点了就好了
【 在 DoorWay 的大作中提到: 】
: int main()
: {
: while(true)
: ...................
--
FROM 210.30.193.*
GetActiveWindow这个API,返回的是 attacing to calling thread’s message queue的窗口。
测试程序是console,有message queue吗?
- 来自 水木社区APP v3.5.5
【 在 gaofei 的大作中提到: 】
: 那我自己的窗口,也不应该是返回00000啊
:
: 我是想获得系统当前焦点窗口,因为有个程序总和抢焦点
:
: 每过一段时间,焦点就丢失,特别烦,还看不出是谁在抢
:
: 所以想写个程序追踪一下焦点在哪
--
FROM 124.114.151.*
:-)
解决就好啦~ 人生苦短
- 来自 水木社区APP v3.5.5
【 在 gaofei 的大作中提到: 】
: 谢谢
:
: 人生苦短,已经用py解决了
:
: 是epson打印机驱动的一个进程在抢焦点
: 干点了就好了
--
FROM 124.114.151.*