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

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

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

Author24 — интернет-сервис помощи студентам
Подскажите мне пожалуйста Код Чтобы Мои 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
angstrom
28.01.2014, 02:43 21
Author24 — интернет-сервис помощи студентам
Почему битмап не освобождается, и что это за танцы с бубнами?
Delphi
1
2
CreateDir(ExtractFilePath(ParamStr(0))+edit1.Text+'\'+edit2.Text);
ForceDirectories(ExtractFilePath(ParamStr(0))+edit1.Text+'\'+edit2.Text);
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
28.01.2014, 10:42 22
media,
Delphi
1
BM:TBitMap, TClipboard:Dword;
Эти переменные тут не нужны.
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
28.01.2014, 15:01  [ТС] 23
Блин убрал эти переменные удалил Tbitmap он мне все ровно при сканирование пишит Out system resurse как устронить *(( помогите пожалуйста может что не прописал ?
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
28.01.2014, 15:26 24
Цитата Сообщение от media Посмотреть сообщение
как устронить
откажитесь от JPEG. Сохраняйте в PNG(размер картинки будет меньше) и проблем с ресурсами не будет.
Если у Вас Delphi 7, для работы понадобится этот модуль (PNGImage).
Видимо, у Вас за n-й промежуток времени происходит переполнение при сохранении множества скринов в jpg.

Успехов в продвижении!
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
28.01.2014, 23:02  [ТС] 25
у меня Delphi 2010 !

Добавлено через 3 минуты
droider, Будь те пожалуйста Любезны написать правильный Код в PNG формате !! который вы кидали до этого тока jpg, Можно его Переделать в PNG буду очень Благодарен. Зарание Спасибо .

Добавлено через 6 минут
Изменил Время скриншотов Он пишет все ровно Out system resurse что Это означает вобще ? *(((

Добавлено через 53 секунды
то что ты написал мне прописать в коде он не помог убрать Эту ошибку !
0
angstrom
28.01.2014, 23:04 26
Только то, что ваша программа переполнила их.
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
29.01.2014, 02:33  [ТС] 27
angstrom, И как сделать чтобы она не переполняла их?
0
angstrom
29.01.2014, 03:12 28
1. Не забывать удалять создаваемый битмап.
2. Проверить возможно создание последующей картинки идёт когда не закончено создание предыдущей.

Добавлено через 30 минут
Проверил код, сгенерило, как и запрошено, 100 картинок.
Кликните здесь для просмотра всего текста
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
29
30
31
32
33
34
35
36
37
38
39
40
41
implementation
 
var
  Count    : Integer;
 
{$R *.dfm}
 
procedure TForm1.Timer1Timer(Sender: TObject);
var
  Dir : String;
  jpg : TJPEGImage;
  BM  : TBitmap;
begin
  if Count > 99 then
    Application.Terminate;
 
  if not DirectoryExists(ExtractFilePath(ParamStr(0)) + 'Test') then
    ForceDirectories(ExtractFilePath(ParamStr(0)) + 'Test');
 
  Dir := ExtractFilePath(ParamStr(0)) + 'Fallout';
  JPG := TJPEGImage.Create;
  BM  := TBitmap.Create;
  try
    keybd_event(VK_SNAPSHOT, 0, 0, 0);
    keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0);
    if Clipboard.HasFormat(CF_BITMAP) then
      with jpg do
      begin
        bm.Handle := ClipBoard.getashandle(cf_bitmap);
        Assign(bm);
        PixelFormat := jf24Bit;
        CompressionQuality := 90;
        Compress;
        SaveToFile(Dir + '\' + IntToStr(Count) + '.jpg');
        inc(Count);
     end;
  finally
    JPG.Free;
    bm.Free;
  end;
end;
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
29.01.2014, 10:23 29
media, в моем примере к Bitmap я обращался через Image, поэтому необходимости работы с
переменной BM:TBitMap не было. В дополнении от angstrom Image не нужен.

Сохранение в PNG:
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
29
30
31
uses vcl.imaging.pngimage; // модуль подключите
  var
  PNG : TPngImage;
  BM  : TBitmap;
 Count:Integer;
begin
   if Count > 99 then
    Application.Terminate;
 
  if not DirectoryExists(ExtractFilePath(ParamStr(0)) + 'Test') then
    ForceDirectories(ExtractFilePath(ParamStr(0)) + 'Test');
 
  Dir := ExtractFilePath(ParamStr(0)) + 'Fallout';
  PNG := TPngImage.Create;
  BM  := TBitmap.Create;
  try
    keybd_event(VK_SNAPSHOT, 0, 0, 0);
    keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0);
    if Clipboard.HasFormat(CF_BITMAP) then
      with PNG do
      begin
        bm.Handle := ClipBoard.getashandle(cf_bitmap);
        Assign(bm);
        SaveToFile(Dir + '\' + IntToStr(Count) + '.png');
        inc(Count);
     end;
  finally
    PNG.Free;
    bm.Free;
  end;
end;
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
29.01.2014, 14:01  [ТС] 30
Delphi
1
2
3
4
5
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, jpeg, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdFTP, Clipbrd;
 vcl.imaging.pngimage;
Простите меня за мучения ну я вставил в uses у меня он выдал ошибку подчеркнул vcl.imaging.pngimage;

Добавлено через 5 минут
Clipbrd; понел убрал двоиточие но он подчеркивает теперь pngimage; где буква g что это может означать ?
0
angstrom
29.01.2014, 15:39 31
Какая версия Дельфи?
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
29.01.2014, 15:46 32
angstrom, насколько я понял со слов ТС
Цитата Сообщение от media Посмотреть сообщение
у меня Delphi 2010 !
там вроде этот модуль отсутствует.
0
angstrom
29.01.2014, 15:54 33
У меня в Дельфи 2009 имеется.
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
29.01.2014, 16:00 34
angstrom, при запросе "delphi 2010 pngimage"
первая же ссылка ведет на XE2
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
29.01.2014, 16:06  [ТС] 35
Так что делать Ребятки Что прописать ?
0
angstrom
29.01.2014, 16:08 36

Не по теме:

...\source\Win32\vcl\Imaging\PNGImage



Добавлено через 1 минуту
Поройся в исходниках, если не найдёшь, будешь сохранять как JPG.
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
29.01.2014, 16:20  [ТС] 37
Там папка Тока JPG.

Добавлено через 1 минуту
А скачать туда не льзя папку PNG > ? иили вставить что ни будь?
0
angstrom
29.01.2014, 16:21 38
Ну и сохраняй в JPG. К тому же не факт, что PNG получится меньше размером, это очень сильно зависит от картинки.
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 70
29.01.2014, 16:26  [ТС] 39
Ну я сохроняю в JPG. при создание Screenshot допустим сделал 3-4 он пишет ошибку [ Out System Resurse ]
Как устронить Это ошибку что прописать ? надо ?
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
29.01.2014, 16:48 40
А-а-а-а-а-а!!!! все

media, без обид. Зачем Вам это все надо? Тема расшатана вдоль и поперек. Начните сначала с самых основ - читайте литературу. Практикуйтесь на простых задачах, пытайтесь сами выйти из той или иной проблемы! Если Вам тут кто-либо выложит готовый код, а Вы затем скажите "это моя программа", то это Вам что-нибудь даст? Вы поняли как работают предложенные варианты? Или это только copy/past кода?
0
29.01.2014, 16:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2014, 16:48
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru