Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.80/49: Рейтинг темы: голосов - 49, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
1

Скриншот игры в полноэкранном режиме получается черным

22.01.2014, 21:44. Просмотров 9757. Ответов 50
Метки нет (Все метки)

Подскажите мне пожалуйста Код Чтобы Мои Screenshot из игры на полный экран делались Чистыми Показывалось Изображения а не черные выходили, Если ставить Игру в оконом Режиме он делает Чистыми их, а если игра на полный Режим экрана то он делает их Черными как исправить такую Ошибку WINDOWS 7 . Код Screenshot :
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 begin
i:=i+1;
ScreenBM:=TBitMap.Create;
 SendJPG:=TJPEGImage.Create;
 ScreenBM.Width:=Screen.Width;
 ScreenBM.Height:=Screen.Height;
 BitBlt(ScreenBM.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
 GetDC(0), 0, 0, SRCCopy or CAPTUREBLT);
 SendJPG.Assign(ScreenBM);
CreateDir(ExtractFilePath(ParamStr(0))+edit1.Text+'\'+edit2.Text);
ForceDirectories(ExtractFilePath(ParamStr(0))+edit1.Text+'\'+edit2.Text);
Dir :=ExtractFilePath(ParamStr(0))+edit1.Text+'\'+edit2.Text;
 SendJPG.SaveToFile(Dir+'\'+inttostr(i)+'.jpg');
SendJPG.Free;
 ScreenBM.Free;
Добавлено через 3 минуты
Пытался Вот так сделать :
Delphi
1
2
ScreenBM.Width:=1280;
 ScreenBM.Height:=1024;
Но он Изменяет Тока Изображения Картинки Размер *( а в игре все ровно Черные на полном режиме !

Добавлено через 8 часов 26 минут
Ну че нету человека который не сталкивался с такой проблемой ? Помогите Пожалуйста . Просто позарез как надо !
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2014, 21:44
Ответы с готовыми решениями:

Как получить скриншот игры, запущенной в полноэкранном режиме?
Нужно получить скриншот запущенной игры и сохранить в директорию (допустим рабочий стол). Два дня...

Мерцание экрана в полноэкранном режиме любой игры
Сделал чистую переустановку Windows 10. Установил необходимые драйвера. Появилось мерцание...

Синий Экран BSOD во время игры в полноэкранном режиме
Всем привет. Надеюсь хоть здесь помогут. если вкратце то выскакивает синий экран смерти при...

Отключение монитора при запуске игры в полноэкранном режиме
Помогите решить проблему с драйвером для видеокарты: ATI Radeon HD 6850, при запуске игры в полно...

50
1781 / 999 / 358
Регистрация: 29.05.2013
Сообщений: 4,584
23.01.2014, 01:33 2
Черный скрин в полноэкранном режиме не ошибка. Там используется иной, не оконный механизм вывода графики.
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
23.01.2014, 23:24  [ТС] 3
и что мне надо прописать чтобы у меня отображалось скринелось на полный экран ?

Добавлено через 1 час 20 минут
Ну ребятки Пожалуйста выручайте !

Добавлено через 4 часа 20 минут
Помогите Пожалуйста !

Добавлено через 5 часов 14 минут
я могу заплатить за помошь тока пожалуйста помоги как сделать прописать чтобы он скринел игры на полный экран не выдавал черный скрин
0
Пишу на Delphi...иногда
1418 / 1275 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
24.01.2014, 00:05 4
Как сделать скриншот игры минуя квадрат Малевича?
DirectX для начинающих. Считывание и запись
0
Эксперт Pascal/Delphi
4627 / 2615 / 830
Регистрация: 04.10.2012
Сообщений: 9,553
24.01.2014, 00:36 5
media, вытягиваем скриншот из буфера обмена
Создание скриншота.

Не по теме:

За это время можно самому простую игру написать

0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
24.01.2014, 02:14  [ТС] 6
droider, Сделал как на примере Но он выдает мне ошибку : Bitmap image is not valid .
Что это означает ? как исправить вот код :
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm3.Timer1Timer(Sender: TObject);
begin
 keybd_event(VK_SNAPSHOT,0,0,0);
keybd_event(VK_SNAPSHOT,0,KEYEVENTF_KEYUP,0);
 
if Clipboard.HasFormat(CF_BITMAP) then begin
 image1.picture.bitmap.handle:=clipboard.getashandle(cf_bitmap);
Image1.Picture.SaveToFile('C:\'+inttostr(i)+'.jpg');
 image1.Refresh;
end;
Добавлено через 9 минут
Прописал код :
Delphi
1
2
3
var  ScreenBM:TBitMap;
begin
 ScreenBM:=TBitMap.Create
Но скриншоты игры все ровно делался черным у меня стоит windows 7 *((( просто уже не знаю че делать пожалуйста помогите прошу *((
0
Эксперт Pascal/Delphi
4627 / 2615 / 830
Регистрация: 04.10.2012
Сообщений: 9,553
24.01.2014, 07:38 7
Цитата Сообщение от media Посмотреть сообщение
Что это означает ?
"Bitmap изображение некорректно".
Цитата Сообщение от media Посмотреть сообщение
как исправить
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm3.Timer1Timer(Sender: TObject);
var
i:Integer; //объявляем для начала
begin
keybd_event(VK_SNAPSHOT,0,0,0);
keybd_event(VK_SNAPSHOT,0,KEYEVENTF_KEYUP,0);
 if Clipboard.HasFormat(CF_BITMAP) then begin
 image1.picture.bitmap.handle:=clipboard.getashandle(cf_bitmap);
for i :=1 to 10 do //например
Image1.Picture.SaveToFile('C:\'+inttostr(i)+'.bmp');//!
end;
end;
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
24.01.2014, 12:41  [ТС] 8
if Clipboard.HasFormat(CF_BITMAP) then begin выдает ошибку над if Clipboard ? в чем может быть ?
0
Эксперт Pascal/Delphi
4627 / 2615 / 830
Регистрация: 04.10.2012
Сообщений: 9,553
24.01.2014, 18:22 9
Внимательно прочитайте вышеуказанный пост по ссылке. Вы поняли что такое Clipboard?
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
24.01.2014, 18:44  [ТС] 10
droider, если честно нет Что это ?
0
Эксперт Pascal/Delphi
4627 / 2615 / 830
Регистрация: 04.10.2012
Сообщений: 9,553
24.01.2014, 18:48 11
media, знакомьтесь
1
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
24.01.2014, 21:31  [ТС] 12
droider, Пасибо большое я могу скринеть игры он выдает скринщот чистый Но он Повторяет Изображения ! *(( допустим Сделано скринщотов 10 он эти 10 скриншотов одно и тоже изображения как прописать чтобы он делал разные кадры изображения разное а не одно и тоже ?

Добавлено через 17 минут
for i :=1 to 10 do Думаю ошибка в этом он берет 1 изображения и повторяет его 10 раз как сдлеать так что он делал разные ?

Добавлено через 31 минуту
Все Исправиль )) помогите мне теперь так чтобы картинки сохронялись в формат .JPG а не .bmp .
Delphi
1
2
3
4
5
keybd_event(VK_SNAPSHOT,0,0,0);
keybd_event(VK_SNAPSHOT,0,KEYEVENTF_KEYUP,0);
 if Clipboard.HasFormat(CF_BITMAP) then begin
 image1.picture.bitmap.handle:=clipboard.getashandle(cf_bitmap);
Image1.Picture.SaveToFile(Dir+'\'+inttostr(i)+'.jpg');
Добавлено через 24 секунды
Поставил .jpg но все ровно сохроняет в .bmp
0
Эксперт Pascal/Delphi
4627 / 2615 / 830
Регистрация: 04.10.2012
Сообщений: 9,553
24.01.2014, 22:29 13
Неправильно сохраняете
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses JPEG;
.........
var  jpg: TJPEGImage; 
begin
  jpg := TJPEGImage.Create;
keybd_event(VK_SNAPSHOT,0,0,0);
keybd_event(VK_SNAPSHOT,0,KEYEVENTF_KEYUP,0);
 if Clipboard.HasFormat(CF_BITMAP) then begin
 image1.picture.bitmap.handle :=clipboard.getashandle(cf_bitmap);
  try
    with jpg do
    begin
      Assign(Image1.Picture.Bitmap);
      SaveToFile('c:\screen.jpg');
    end;
  finally
    jpg.Free;
  end;
end;
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
24.01.2014, 23:50  [ТС] 14
а можно как то код сохратить просто у меня я добавил код в button 1 Вот что я сделал код :
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm3.Button1Click(Sender: TObject);
begin
ScreenBM:=TBitMap.Create;
 SendJPG:=TJPEGImage.Create;
 ScreenBM.Width:=Screen.Width;
 ScreenBM.Height:=Screen.Height;
 BitBlt(ScreenBM.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
 GetDC(0), 0, 0, SRCCopy or CAPTUREBLT);
 SendJPG.Assign(ScreenBM);
CreateDir(ExtractFilePath(ParamStr(0))+edit1.Text+'\'+edit2.Text);
ForceDirectories(ExtractFilePath(ParamStr(0))+edit1.Text+'\'+edit2.Text);
Dir :=ExtractFilePath(ParamStr(0))+edit1.Text+'\'+edit2.Text;
SendJPG.Free;
 ScreenBM.Free;
 begin
keybd_event(VK_SNAPSHOT,0,0,0);
keybd_event(VK_SNAPSHOT,0,KEYEVENTF_KEYUP,0);
 if Clipboard.HasFormat(CF_BITMAP) then begin
 image1.picture.bitmap.handle:=clipboard.getashandle(cf_bitmap);
Image1.Picture.SaveToFile(Dir+'\'+inttostr(i)+'.jpg');
i:=i+1;
 end;
Вот что в данном коде дописать чтобы получить изображения в .jpg ?
0
Эксперт Pascal/Delphi
4627 / 2615 / 830
Регистрация: 04.10.2012
Сообщений: 9,553
25.01.2014, 09:50 15
media, это не код, а каша... Вы смешали все, не вникая в суть. Я Вам уже написал решение. Больше ничем помочь не могу.
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
27.01.2014, 04:08  [ТС] 16
droider, Извеняюсь Я уежал Но я вставляю Этот код Он все ровно мне пишет Ошибку в Bitmap что делать ?
0
Эксперт Pascal/Delphi
4627 / 2615 / 830
Регистрация: 04.10.2012
Сообщений: 9,553
27.01.2014, 09:45 17
Цитата Сообщение от media Посмотреть сообщение
я вставляю Этот код
Цитата Сообщение от media Посмотреть сообщение
пишет Ошибку в Bitmap что делать ?
правильно прописать. Код я проверял.
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
27.01.2014, 16:12  [ТС] 18
droider, Он шас выдает Ошибку out resurse system Что Это может означать ?

Добавлено через 1 час 13 минут
Когда Делается Screenshot Пишет Ошибку [ out of system resources ] в чем проблема?
0
Эксперт Pascal/Delphi
4627 / 2615 / 830
Регистрация: 04.10.2012
Сообщений: 9,553
27.01.2014, 17:29 19
Цитата Сообщение от media Посмотреть сообщение
Пишет Ошибку [ out of system resources ]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var  jpg: TJPEGImage; 
begin
  jpg := TJPEGImage.Create;
keybd_event(VK_SNAPSHOT,0,0,0);
keybd_event(VK_SNAPSHOT,0,KEYEVENTF_KEYUP,0);
 if Clipboard.HasFormat(CF_BITMAP) then begin
 image1.picture.bitmap.handle :=clipboard.getashandle(cf_bitmap);
  try
    with jpg do
    begin
      Assign(Image1.Picture.Bitmap);
      PixelFormat := jf24Bit; //добавьте эту строку
      Compress; //и эту
      SaveToFile('c:\screen.jpg');
    end;
  finally
    jpg.Free;
  end;
end;
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
28.01.2014, 02:26  [ТС] 20
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var   dir:string;   jpg: TJPEGImage;   BM:TBitMap;  TClipboard:Dword;
begin
CreateDir(ExtractFilePath(ParamStr(0))+edit1.Text+'\'+edit2.Text);
ForceDirectories(ExtractFilePath(ParamStr(0))+edit1.Text+'\'+edit2.Text);
Dir :=ExtractFilePath(ParamStr(0))+edit1.Text+'\'+edit2.Text;
  JPG := TJPEGImage.Create;
  BM:=TBitMap.Create;
keybd_event(VK_SNAPSHOT,0,0,0);
keybd_event(VK_SNAPSHOT,0,KEYEVENTF_KEYUP,0);
 if Clipboard.HasFormat(CF_BITMAP) then begin
 image1.picture.bitmap.handle :=clipboard.getashandle(cf_bitmap);
  try
    with JPG do
    begin
    i:=i+1;
 Assign(Image1.Picture.Bitmap);
  PixelFormat := jf24Bit;
  Compress;
 SaveToFile(Dir+'\'+inttostr(i)+'.jpg');
     end;
  finally
    JPG.Free;
  timer1.enabled:=true;
label2.caption:=(IntToStr(i));
label4.caption:=('Сделано скрин(ов)');
label2.Visible:=true;
label4.Visible:=true;
end;
Вот мой Код вставил как ты сказал сделал он 5-6 скрищотов написал Clipboard Отказ в доступе , ну и потом после этот опять Out resurse может что то в переменную не написал ?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2014, 02:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

При запуске ЛЮБОЙ игры в полноэкранном режиме монитор тухнет на 1-3 секунды
Сидел раньше на винде десятой pro - всё было отлично. Решил докупить ssd и переустановить винду на...

Скриншот, или значение пикселя в полноэкранном приложении (игра)
Всем привет Нужно получить скриншот или значение пикселя, пишу бота для игры. Проблема в том...

Запустить IE в полноэкранном режиме
Здравствуйте, помогите как заставить IE перейти в Во весь экран (горячая клавиша F11) ? using...

После запуска игры на ноутбуке Dell Inspiron N5110 экран становится черным, но звук самой игры есть!
Доброго времени суток! Проблема такая: после запуска игры экран становится черным, но звук самой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.