Здравствуйте. Как сделать скриншот во время игры? (COD4). Если применять данный код, то вместо скрина черный экран Code: var ScreenDC: HDC; canvas:Tcanvas; begin ScreenDC:=GetDC(0); Canvas:=TCanvas.Create(); canvas.Handle:=ScreenDC; Width:=Screen.Width; Height:=Screen.Height; Img1.Canvas.CopyRect(Rect(0,0,Img1.Width,Img1.Height), canvas,Rect(0,0,Screen.Width,Screen.Height)); Releasedc(0,ScreenDC); Canvas.Free; end;
тоже самое ведь, тот же черный экран. Тут нужно чтото походу с директХ мудрить, но вот что и как Я непонимаю
нет конечно, вот попробуй со своим кодом заскринь любую игру или видео..эффект тот же - черный экран.
[urt=http://delphiexpert.ru/view_download.php?id=14]Ссылка на прогоисходники[/url] Если самому писать или гуглить: DirectShow (DSPack) Ссылка считывать на прямую Оверлей
по той ссылке на делфи эксперте исходничек такой же как Мой, а значит также черный экран. DSpack установил но совершенно непонимаю как делать скриншот. Кто Может обьяснить?
в принципе можно имитировать нажатие клавиши f12(все скриншоты сохраняются в папке ../Call Of Duty 4 - Modern Warfare/main/screenshots) и уже потом делать манипуляции с этим скринами, но опять же это довольно изварщенно....
в общем попробовал Я сымитировать принтскрин и потом вставил в пайнт- нормалек. Значит встает вопрос, как фотку из буфера сохранить в jpg?
что то у Меня формат изображения никак не определяется. Перепробовал все варианты..в каком виде хранится скриншот в буфере? И как его записать в переменную bmp?
почитай про Bitmap.LoadFromClipboardFormat. Стандартный делфовый хелп гласит следующее: Code: procedure TForm1.Button1Click(Sender: TObject); var Bitmap : TBitmap; begin Bitmap := TBitMap.create; try Bitmap.LoadFromClipBoardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0); Canvas.draw(0,0,Bitmap); finally Bitmap.free; end; end;
попробовал..вылетела ошибка Вообще сделал небольшой эксперимент. Попробовал сам нажать принтскрин во время игры, и вашим кодом вставить изображение - все ок. Попробовал с сэмулированной кнопкой принтскрин - вылетает ошибка, хотя в паинте норм вставляется.. странно..