Текущий архив: 2004.05.23;
Скачать: CL | DM;
Внизкак захватить изображение экрана во время работы компьютерной игр Найти похожие ветки
← →
hawkins (2004-02-21 08:36) [0]Кто-нибудь подскажет, как захватить изображение экрана во время
работы компьютерной игры?
← →
Zeqfreed © (2004-02-21 14:10) [1]Так же, как и не вовремя работы комп. игры...
А если серьёзно, я думаю твоя проблема заключается в том, как узнать момент, когда надо делать снимок. Я реализовывал это примерно так:
...
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
protected
procedure hotykey(var msg:TMessage); message WM_HOTKEY;
end;
...
procedure TForm1.hotykey(var msg:TMessage);
begin
//Тут делаешь скриншот
end;
...
var id : integer;
...
id:=GlobalAddAtom("hotkey");
RegisterHotKey(handle,id,mod_control,81);
...
UnRegisterHotKey(handle,id);
...
P.S. Поищи инфу по гор. клавишам, если плохо понятно. Ещё один вариант - DirectInput (с помощью него тоже делал)
P.P.S. Если не знаешь, как сделать скриншот не вовремя игры, то
BitBlt(BitMap.Canvas.Handle,0,0,Width,Height,GetDC(0),0,0,SRCCOPY);
BitMap.SaveToFile("img00.bmp");
← →
able © (2004-02-21 18:17) [2]
> Так же, как и не вовремя работы комп. игры...
Если использовать обычные и широкоизвестные процедуры, то при DirectX получается фигня... :(
← →
Zeqfreed © (2004-02-22 18:34) [3]2 able:
Какие например?, BitBlt вроде хорошо работает, только с запечатлением проигрывающегося ролика проблемы...
← →
able © (2004-02-22 19:13) [4]>Zeqfreed © (22.02.04 18:34) [3]
Canva := TCanvas.Create;
B := TBitmap.Create;
DC := GetDC(0);
try
Canva.Handle := DC;
with Screen do
begin
B.Width := Width;
B.Height := Height;
B.Canvas.CopyRect(Rect(0, 0, Width, Height), Canva,Rect(0, 0, Width, Height));
B.SaveToFile("screen.bmp");
end
finally
ReleaseDC(0, DC);
B.Free;
Canva.Free
end;
Что-то вроде того...
← →
_dvp (2004-02-23 01:49) [5]Да блин, ф-ии GUI не видят того, что вывел DirectX - на то он и Direct, что работает на прямую с устройством....... так что через ф-ии GUI - никак.....
← →
ZEE © (2004-02-23 14:40) [6]2_dvp - только что попробовал "зафотографировать" CounterStrice и WarCraft3 в работе - получилось - так что все-равно DirectX/не DirectX
зы: фотографировал с пом. BitBlt
← →
able © (2004-02-24 17:11) [7]ZEE © (23.02.04 14:40) [6]
Видно, но коряво %)
← →
Guest © (2004-03-11 12:14) [8]не работает при воспроизведении AVI
← →
Axis_of_Evil © (2004-03-12 15:53) [9]>DC := GetDC(0);
А ежели не 0, а GetForegroundWindow (или GetActiveWindow) попробовать
// лишь предположение
← →
Axis_of_Evil © (2004-03-12 15:54) [10]>или GetActiveWindow
ну вот ето я керню сказал:>
← →
Guest © (2004-03-12 16:16) [11]нда со скриншотом совсем туго...
>>Axis_of_Evil
картинка скорее всего берется из буфера самой винды поэтому ни AVI-шку, ни игрушку не увидишь на картинке...
Страницы: 1 вся ветка
Текущий архив: 2004.05.23;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.044 c