Цитата:
Сообщение от VoFF4eG
Дело в том, что скрины отлично сохраняются. Просто перед сохранением мне их обрабатывать нужно )
|
У меня вот так нормально получает цвет пикселя (хоть OpenGL хоть Direct3D):
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
bmp: TBitmap;
hw: HWND;
Can: TCanvas;
Color: TColor;
R: TRect;
begin
Timer1.Enabled := False;
bmp := TBitmap.Create;
try
Can := TCanvas.Create;
hw := GetDesktopWindow;
Can.Handle := GetDC(hw);
if not GetWindowRect(hw, R) then
begin
ShowMessage(SysErrorMessage(GetLastError));
Exit;
end;
bmp.Width := R.Right - R.Left;
bmp.Height := R.Bottom - R.Top;
bmp.Canvas.CopyRect(Rect(0, 0, bmp.Width, bmp.Height), Can, R);
Caption := 'Цвет пикселя: ' + IntToHex(bmp.Canvas.Pixels[100, 100], 8);
finally
bmp.Free;
end;
Beep;
end;
Естественно интервал в таймере нужно поставить достаточный для запуска игры.