そこで、「ガンズ」というゲームからマウス位置のピクセルカラーを取得しようとしています...
私の知る限り、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;
}