Показать сообщение отдельно
  #9  
Старый 31.10.2012, 15:01
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от 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;

Естественно интервал в таймере нужно поставить достаточный для запуска игры.
Ответить с цитированием