Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #31  
Старый 15.11.2012, 15:30
VoFF4eG VoFF4eG вне форума
Прохожий
 
Регистрация: 26.10.2012
Сообщения: 27
Репутация: 10
По умолчанию

Я надеюсь на это. Черкани пару строк кода плз...
Учти только что MS Paint тоже пипетку игнорит...
Ответить с цитированием
  #32  
Старый 15.11.2012, 15:35
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от NumLock
т.е. сохраняется в bmp файл и потом его можно открыть в paint?
Цитата:
Сообщение от VoFF4eG
Да конечно можно... Я полагаю защита игры что то блочит...
И всё равно я в это не верю. Как это вообще такое может быть?
Либо успешно сохраняется и значит можно прочитать цвет пикселя, либо сохраняется например чёрный фон и поэтому и нельзя получить цвет пикселя.

А если получать цвет пикселя не через "TBitmap.Canvas.Pixels", а через "TBitmap.ScanLine"?
Ответить с цитированием
  #33  
Старый 15.11.2012, 15:40
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

paint игнорирует пипетку в открытом файле bmp только при запущеной игре или при закрытой тоже? если paint открыл файл, значит информация о цветах пикселей в нем есть, т.е. считать байты цвета получится.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #34  
Старый 15.11.2012, 15:45
VoFF4eG VoFF4eG вне форума
Прохожий
 
Регистрация: 26.10.2012
Сообщения: 27
Репутация: 10
По умолчанию

Когда игра открыта Paint игнорит пипетку т.е. цвет 000000. Когда игра закрывается даже без перезапуска Paint все работает. Вот такая хрень )
Ответить с цитированием
  #35  
Старый 15.11.2012, 15:48
VoFF4eG VoFF4eG вне форума
Прохожий
 
Регистрация: 26.10.2012
Сообщения: 27
Репутация: 10
По умолчанию

Как там побайтно их считывать... пример покажи плз. Дальше разберусь.
Ответить с цитированием
  #36  
Старый 15.11.2012, 15:55
VoFF4eG VoFF4eG вне форума
Прохожий
 
Регистрация: 26.10.2012
Сообщения: 27
Репутация: 10
По умолчанию

Procedure ScreenShot(WidthCF,HeightCF:Integer);
Var
Bmp : TBitmap;
DC : HDC;
NameFile:string[20];
Today : TDateTime;
x1,x2,x3:integer;
Color_1 : TColor;
Begin
DateSeparator:='.';
TimeSeparator:='.';
Today:=Now;
NameFile:=DateToStr(Today)+'_'+TimeToStr(Today);
//--------------------------------------------------
Bmp := Tbitmap.Create;
Bmp.Height := HeightCF;
Bmp.Width := WidthCF;
DC := GetDC(Wnd);
Bitblt(Bmp.Canvas.Handle, 0, 0, WidthCF, HeightCF, DC, 0, 0, SRCCOPY);
Try
Color_1 := Bmp.Canvas.Pixels[Икс),Игрик)];// вот тут как бы 000000...
Bmp.SaveToFile('C:\'+ NameFile + '.bmp');// а тут все норм )
Except
End;
Bmp.Free;
End;
Ответить с цитированием
  #37  
Старый 15.11.2012, 15:59
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

попробовал китайский пример с getfrontbuffer, вместо видео чёрный фон, на этот случай китайцы рекомендуют что-то вроде directx overlay hooks, но мне это уже не интересно
Цитата:
Кроме двух вышеуказанных вариантов, но также изображения некоторых из видео плеер не может перехватить его, да, да
Как ее решить?
Они используют называют «покрытие поверхности технологий, перехват покрытия поверхности, необходимо подключить средства Caixing

Идея такова:
Наденьте CreateSurface может получить OverlaySurface
Перед этим необходимо использовать программное обеспечение, запустить Глобальную крюк, чтобы быть эффективным
Вам нужны скриншоты
Блокировка Overlay Surface, чтение данных сразу разблокировать, для того, чтобы избежать потери производительности
__________________
>woweook<
Ответить с цитированием
  #38  
Старый 15.11.2012, 15:59
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

кстати да, ScanLine то пробовал? в справке образец есть.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #39  
Старый 15.11.2012, 16:01
VoFF4eG VoFF4eG вне форума
Прохожий
 
Регистрация: 26.10.2012
Сообщения: 27
Репутация: 10
По умолчанию

Щас будем пробовать...
Ответить с цитированием
  #40  
Старый 15.11.2012, 16:03
VoFF4eG VoFF4eG вне форума
Прохожий
 
Регистрация: 26.10.2012
Сообщения: 27
Репутация: 10
По умолчанию

Что то я не въеду как при его помощи я получу цвет конкретного пикселя... Он же вроде всю строку в себя считывает... Туповатенький я с графикой.
Ответить с цитированием
  #41  
Старый 15.11.2012, 16:54
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от VoFF4eG
Что то я не въеду как при его помощи я получу цвет конкретного пикселя... Он же вроде всю строку в себя считывает... Туповатенький я с графикой.
ScanLine даёт указатель на участок памяти где хранится указанная строка. Дальше через этот указатель читаешь то что там записано, а записаны там цвета пикселей этой строки. Только при работе со ScanLine нужно знать сколько байт занимает 1 пиксель. Для этого смотри свойство TBitmap.PixelFormat.
Ответить с цитированием
  #42  
Старый 15.11.2012, 16:58
VoFF4eG VoFF4eG вне форума
Прохожий
 
Регистрация: 26.10.2012
Сообщения: 27
Репутация: 10
По умолчанию

Спасибо, я поковыряю сегодня и отпишусь
Ответить с цитированием
  #43  
Старый 15.12.2012, 01:44
VoFF4eG VoFF4eG вне форума
Прохожий
 
Регистрация: 26.10.2012
Сообщения: 27
Репутация: 10
По умолчанию

Всем спасибо выход найден. Переписал код на С# и проблема отпала. Тему можно закрывать...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:55.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter