1

我正在制作一个屏幕捕获应用程序。

有关于如何捕获活动窗口的答案,但我希望能够在鼠标下捕获一个窗口,即使它不活动。

我是否正确理解我需要在鼠标下找到窗口句柄然后调用Image.captureWindow(IntPtr handle)

4

1 回答 1

0

使用以下函数在屏幕上下文中获取光标位置

    POINT p;
if (GetCursorPos(&p))
{
    //cursor position now in p.x and p.y
}

现在您将不得不使用 EnumWindow 函数来枚举所有顶级窗口,然后为每个尝试这个

    if (ScreenToClient(hwnd, &p))
{
    //p.x and p.y are now relative to hwnd's client area
}

当您获得一个窗口的两个值时,这就是您的光标所在的窗口。这是一个如何从其句柄捕获窗口的示例

http://www.codeproject.com/Articles/19192/How-to-capture-a-Window-as-an-Image-and-save-it

希望这可以帮助你

于 2012-09-30T06:21:19.127 回答