1

所以我试图从一个名为“Gunz”的游戏中获取鼠标位置的像素颜色......

据我所知,Gunz 在 DirectX 上工作。

我尝试使用 GDI 让它在窗口模式下工作,我得到了像素颜色,

但是当我使用全屏 DirectX 时,我只得到白色,例如:

红色:255

绿色:255

蓝色:255


这是我的代码 -

#include <stdlib.h>
#include <stdio.h>
#include <windows.h>


int main(int argc, char** argv)
{

FARPROC pGetPixel;

HINSTANCE _hGDI = LoadLibrary("gdi32.dll");


while(1) {

if(_hGDI){
    pGetPixel = GetProcAddress(_hGDI, "GetPixel");
    HDC _hdc = GetDC(NULL);


if(_hdc){
    POINT _cursor;
    GetCursorPos(&_cursor);
    COLORREF _color = (*pGetPixel) (_hdc, _cursor.x, _cursor.y);
    int _red = GetRValue(_color);
    int _green = GetGValue(_color);
    int _blue = GetBValue(_color);

    printf("Cursor Pos: X: %d, Y: %d.\n", _cursor.x, _cursor.y);
    printf("Red: %d\n", _red);
    printf("Green: %d\n", _green);
    printf("Blue: %d\n", _blue);
    }
}
Sleep(1000);
}

FreeLibrary(_hGDI);

return 0;

}
4

0 回答 0