比较当前前景窗口句柄

时间:2011-10-31 06:52:06

标签: c++ c

我需要获取当前前景窗口句柄并将其与保存的前一个窗口句柄进行比较以查看它们是否匹配,但我不能使用前景窗口标题,因为标题经常更改

这是我用来比较标题的代码

char cWindow[MAX_PATH];
char nWindow[MAX_PATH];
GetWindowTextA(GetForegroundWindow(), cWindow, sizeof(cWindow));


//Later in code
GetWindowTextA(GetForegroundWindow(), cWindow, sizeof(cWindow));
if (strcmp(nWindow, cWindow) != 0)
{
    fputs("found!",file);
    strcpy(nWindow, cWindow);
}

2 个答案:

答案 0 :(得分:2)

当您想检查前景窗口是否已更改时,您应该直接比较窗口句柄,而不是它们的标题。

HWND oldForegroundWindow = GetForegroundWindow();

HWND newForegroundWindow = GetForegrundWindow();
if (newForegroundWindow != oldForegroundWindow) {
  ForegroundWindowHasChanged(oldForegroundWindow, nForegroundWindow);
  oldForegroundWindow = newForeroundWindow;
}

答案 1 :(得分:1)

错误的是,您没有将Window设置为您的呼叫设置Window的任何内容。你认为这可能是个问题吗?