Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2010, 16:03   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
Вопрос {Вопрос}Черные скриншоты на Windows 7

Всем привет=)
Появился вопрос о снятии снимков экрана на Windows 7.
Пользователь запускает игру в полноэкранном варианте.. программа снимает автоматически..

использую вот такой метод:
Код:
  var
    jp:TJPEGImage;
    bm:TBitmap;
    i:string;
begin
i:='1';
if SettingsForm.JPEGFormatFileChk.Checked then
begin
bm:=TBitmap.Create;
bm.Width:=Screen.Width;
bm.Height:=Screen.Height;
BitBlt(bm.Canvas.Handle,0,0,bm.Width,bm.Height,GetDC(0),0,0, SRCCOPY);
jp:=TJPEGImage.Create;
jp.Assign(bm);
jp.CompressionQuality:=SettingsForm.CompressionBar.Position;
jp.Compress;
jp.SaveToFile(SettingsForm.ScreenDirEdit.Text+IntToStr(StrToInt(SettingsForm.FileNameEdit.Text)+StrToInt(LabCount.Caption))+'.jpg');
jp.Free;
bm.Free;
end;
все скрины полноэкранного приложения абсолютно черные...

На XP такого небыло и нету. Значит что-то в семёрке.. нужно решение.

Проблема либо в explorer.exe(не уверен что он в семёрке есть)
либо в игре..(в игре быть не может, а если есть, то как и что Включать/отключать програмно?).... в общем вот так..

подскажите решение.

Последний раз редактировалось Человек_Борща; 25.04.2010 в 16:22.
Человек_Борща вне форума Ответить с цитированием
Старый 25.04.2010, 16:37   #2
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Вообщето игры и будут черные, они ж, большинство, на OpenGL, вашим способо не выйдет скринить его... Поищите в гугле, примеры должны быть.

http://www.programmersforum.ru/showthread.php?p=499946
W0LF вне форума Ответить с цитированием
Старый 25.04.2010, 17:09   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

на XP скринит.. и нормально.. даже те где используются DX9 с XP работает.. с win7 нет.

по ссылке пошёл.. у этого человека XP. Проблема была в кривом DX.. решили..

Я про Windows7 спрашиваю..

неповерю что я один столкнулся с этим.. народ нужна помощь.

Последний раз редактировалось mihali4; 01.11.2011 в 16:33.
Человек_Борща вне форума Ответить с цитированием
Старый 01.11.2011, 14:05   #4
DarkHacker
Форумчанин
 
Аватар для DarkHacker
 
Регистрация: 12.04.2008
Сообщений: 105
Лампочка

Извините за поднимание трупов старых тем,но решение есть.

Если скриним игру,отключаем в самой игре Сглаживание (CS 1.6,CSS)

Так же для файла игры в свойствах отключаем компоновку и визуальные эффекты + это же для программы что снимает скрины ,но для нее еще и права администратора.


При соблюдении всех правил,даный метод работает.

P.S. Решил отписать,так как сам искал и через гугл нашел эту тему.
DarkHacker вне форума Ответить с цитированием
Старый 01.11.2011, 17:27   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Ок, что все заставлять отключать это? Факт. говорить, как отключить "анти-скрин".
Гениально.
Человек_Борща вне форума Ответить с цитированием
Старый 01.11.2011, 17:42   #6
Demi
Пользователь Подтвердите свой е-майл
 
Аватар для Demi
 
Регистрация: 28.03.2007
Сообщений: 52
По умолчанию

Моё мнение - игра рендерит в оверлей. Снимать его таким способом бесполезно, как и скринить фильмы в плеере.
Ищите как вытащить картинку с оверлея - и всё получится.
GLEngine2D - сайт проекта
FreeRating Cайт нашей команды
Demi вне форума Ответить с цитированием
Старый 02.11.2011, 04:10   #7
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

http://stackoverflow.com/questions/1...en-application
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 02.11.2011, 08:00   #8
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Demi Посмотреть сообщение
Моё мнение - игра рендерит в оверлей. Снимать его таким способом бесполезно, как и скринить фильмы в плеере.
Ищите как вытащить картинку с оверлея - и всё получится.
На практике убедился, что делать скрин всё же из некоторых плееров получается, к сожалению, сейчас навскидку не вспомню, какие плееры(а) это были, да и к теме это не относится.

Могу лишь только дать хоть как-то относящийся к теме совет, тоже основанный на личном опыте. В самой настройке игры поменять режим видео. Например, есть такая игра - Quake 2. Пытался я как-то там однажды делать скриншоты клавишой PrintScreen - результат был крайне неудовлетворительным (на выходе действительно были скрины, но на них были размазаны какие-то цветные пятна). Я сменил видео-режим, и всё стало нормально.

К тому же в некоторых играх есть встроенная функция захвата экрана (получения скриншота).
Вадим Мошев вне форума Ответить с цитированием
Старый 05.11.2011, 22:31   #9
DarkHacker
Форумчанин
 
Аватар для DarkHacker
 
Регистрация: 12.04.2008
Сообщений: 105
По умолчанию

Человек_Борща,я пишу античит для CS ,ситуация такая что если черный скрин тогда бан сразу,так что для моего случая это подходит.

Давайте без "Гениально!",вариант все же.

Ваш КЭП.
DarkHacker вне форума Ответить с цитированием
Старый 06.11.2011, 12:36   #10
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от DarkHacker Посмотреть сообщение
Человек_Борща,я пишу античит для CS ,ситуация такая что если черный скрин тогда бан сразу,так что для моего случая это подходит.
Не понимаю, как это взаимосвязано. Объясните.
Вадим Мошев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Красно-черные деревья Lullu Помощь студентам 0 25.04.2010 14:53
что такое - скриншоты ? ХМС Свободное общение 6 19.01.2009 18:13
Черные дыры обучения Д'якон Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 15.08.2008 14:40
скриншоты рабочего стола Alar Общие вопросы Delphi 0 29.10.2006 10:59