Форум: "Media";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
ВнизЗащита изображения Найти похожие ветки
← →
AlexLines (2007-05-03 16:02) [0]Уважаемые Знатоки. Возможно ли защитить изображение от PrintScreen и подобных программ, как это сделано в Windows Media Player (при загрузке *.bmp или видео при снятии изображения с экрана он черный)
Как блокировать клавишу PrtScr я знаю. Но существует множество подобных программ.
← →
TRUNK © (2007-05-03 16:08) [1]Windows Media Player выводит изображение на overlay, поэтому оно и не снимается. Так что это не защита.
← →
AlexLines (2007-05-03 16:35) [2]А как можно вывести изображение на overlay?
Спасибо
← →
DVM © (2007-05-03 16:38) [3]
> А как можно вывести изображение на overlay?
Это тоже не поможет, ибо любая программа для снятия скриншотов, например SanagIT или HyperSnapDX знает тоже об оверлее и умеет такие скриншоты снимать.
← →
AlexLines (2007-05-03 16:40) [4]Вообще не возможно защитить? Может быть есть какие-либо компоненты?
← →
DVM © (2007-05-03 16:45) [5]
> Вообще не возможно защитить? Может быть есть какие-либо
> компоненты?
А зачем, если не секрет? Может другое решение есть?
← →
AlexLines (2007-05-03 16:55) [6]Вообще в TImage выводится изображение в формате wmf. А зачем - чтобы не скачали уникальные рисунки. Файлы wmf прочитать нельзя - они защищены, можно только снять с экрана.
← →
AlexLines (2007-05-03 16:59) [7]Или может быть watermark ставить, только во время printscreen. Но как узнать, что тебя снимают (:
← →
DVM © (2007-05-03 17:06) [8]
> Файлы wmf прочитать нельзя - они защищены
каким образом?
← →
AlexLines (2007-05-03 17:32) [9]Заархивированы и защищены паролем. Разархивируются и выводятся на TImage
← →
DVM © (2007-05-03 17:35) [10]
> Разархивируются и выводятся на TImage
Если заархивированы стандартным алгоритмом то вряд ли это помешает достать фотки
← →
AlexLines (2007-05-03 17:38) [11]Нет не стандартным. Хорошо защищены. Однако с экрана их сможет снять любой.
← →
DVM © (2007-05-03 17:42) [12]
> Однако с экрана их сможет снять любой.
Но ведь с экрана можно получить только растровый вариант. А более качественный векторный все равно недоступен будет.
← →
AlexLines (2007-05-03 17:48) [13]Согласен. Однако все же неужели ничего в этом плане сделать не получиться? Может быть можно сделать событие, которое будет реагировать на снимок с экрана. Какие могут быть пути решения?
Спасибо всем кто участвует в этом обсуждении!
← →
Fenik © (2007-05-03 17:51) [14]От фотоаппарата нет защиты ))
← →
DVM © (2007-05-03 17:54) [15]
> Какие могут быть пути решения?
Ну может быть сделать глобальный перехват функции GetDC и смотреть когда в нее 0 передается или хэндл твоего окна. GetDC по любому должна быть вызвана при снятии скриншота.
← →
AlexLines (2007-05-03 17:58) [16]Согласен. Однако намного сложнее. Кроме этого в моей программе есть Flash ролики, а они свободно могут быть сняты, к примеру, Adobe Captivate. А здесь Вы скажете, что для этого есть видеокамера?
← →
AlexLines (2007-05-03 18:02) [17]
> Ну может быть сделать глобальный перехват функции GetDC
> и смотреть когда в нее 0 передается или хэндл твоего окна.
> GetDC по любому должна быть вызвана при снятии скриншота.
>
Спасибо за ответы. Буду тестировать.
Буду благодарен за разные решения этой проблемы написанные на этом обсуждении!
← →
Чародей © (2007-05-03 18:47) [18]может проще для предпросмотра накладывать на рисунок искажения(черные полосы например), потому что если кто-то захочет то дотянется до видеопамяти и скачает изображение с экрана по пиксельно не вызывая ни каких функций
← →
Sapersky (2007-05-04 14:25) [19]любая программа для снятия скриншотов, например SanagIT или HyperSnapDX знает тоже об оверлее и умеет такие скриншоты снимать.
Проверял HyperSnapDX 5.62 с моим оверлейным примером:
http://www.delphimaster.ru/articles/directx/desktoponfire.zip
- не берёт, видимо, из-за того, что рассчитана на использование оверлеев через DirectShow (MediaPlayer захватывает нормально), а у меня DirectDraw. Хотя если "кто-то захочет", то он может сделать и перехват интерфейсов DirectDraw.
← →
Vovan # 2 (2007-05-04 14:30) [20]Отлично, уже набирается. Делаеть динамическое ежесекнудное переключение устройств вывода - то через DirectShow, то через DirectDraw.
← →
Sapersky (2007-05-04 15:10) [21]Делаеть динамическое ежесекнудное переключение устройств вывода - то через DirectShow, то через DirectDraw.
В защищаемой программе?
Сомневаюсь, что из этого выйдет что-то путное. Во-первых, не уверен, что получится одновременно инициализировать DirectShow и DirectDraw с оверлеем (да и без оверлея - ни разу не пробовал, не факт, что они уживутся, т.к. DShow внутри использует тот же DDraw). Во-вторых, если стоит перехват и на то и на другое - захватит, как ни переключайся.
Смысл использования DirectDraw-оверлея разве что в том, чтобы защититься от популярных программ-грабилок (и то надо бы протестировать более чем 1 штуку), т.е. от обычного пользователя. От специалиста не спасёт ничто :)
Ещё вариант без оверлея - кроме GetDC перехватывать также и DirectDrawSurface.Blt c первичной поверхности. Хотя бы для DDraw7 как наиболее часто используемого.
Но эти перехваты также можно обнаружить и снять, вон у Касперского написано, что он может отлавливать внедрение DLL, надо будет попробовать.
← →
DVM © (2007-05-04 15:11) [22]
> Sapersky (04.05.07 14:25) [19]
SnagIT тоже не захватывает твой пример.
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.042 c