Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как запретить PrintScreen? как программно запретить PrintScreen? 
:(
    Опции темы
MaxB
Дата 15.9.2004, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 10.2.2004
Где: Украина, Одесса

Репутация: нет
Всего: 1



как в MFC перекрыть возможность захвата окна кнопкой PrintScreen или специализированными программами например Corel Cepture?
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 15.9.2004, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 9
Всего: 71



Как в MFC не знаю на в API перехватывается примерно вот так:
Инициализация
Код

RegisterHotKey(hwnd, 101, 0, VK_SNAPSHOT);

обработчик сообщения
Код

if (Message == WM_HOTKEY)
if ((int)wParam==101)
//меры по предотвращению

завершение работы
Код

UnRegisterHotKey (hwnd, 101);

PM MAIL   Вверх
Coocky
Дата 15.9.2004, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Цитата
как в MFC перекрыть возможность захвата окна кнопкой PrintScreen или специализированными программами например Corel Cepture?

Ну просто батенька.Перехвати в PreTranslateMessage() сообщение WM_KEYDOWN,и проверь код нажатой клавиши(см. таблицу кодов).Если это клавиша VK_SNAPSHOT (кажется) ,можно RETURN,или че душе угодно smile.gif


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
_hunter
Дата 16.9.2004, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



а ника ты не запретиш потому как в IrfanView ( например ) используется Ctrl+F11 ( и можно менять )

смотри в сторону оверлеев


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Coocky
Дата 16.9.2004, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Цитата
а ника ты не запретиш потому как в IrfanView ( например ) используется Ctrl+F11 ( и можно менять )

Ну пусть перехватит все возможные комбинации smile.gif


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
MaxB
Дата 17.9.2004, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 10.2.2004
Где: Украина, Одесса

Репутация: нет
Всего: 1



Благодарен за советы. Но тот кто захочет сделать захват экрана, тот сделает, например с помощью программы Corel Cepture, там можно поставить для этого любую клавишу.

У меня прога создаёт всякие оригинальные рисунки и я хочу выпустить демо версию с отключёным экспортом и сохранением результатов работы и быть увереным что ни кто не будет её использовать по полной программе.

Тут надо лесть в принципы захвата и перекрывать их программно а не кнопку ловить. Может кто знает?
PM MAIL WWW ICQ   Вверх
shedon
Дата 17.9.2004, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



ИМХО, надо капать в сторону перехвата апи функций, клавиши бессмыслено перехватывать...


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
_hunter
Дата 17.9.2004, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



я же тебе говорил -- смотри на оверлеи ( попробуй сделать ПринтСкрин в том же BSPlayer' e -- ни фига не скопируеш )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
lynx_916
Дата 17.9.2004, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 13.6.2004
Где: Молдова

Репутация: нет
Всего: 1



Цитата(MaxB @ 17.9.2004, 15:20)
У меня прога создаёт всякие оригинальные рисунки и я хочу выпустить демо версию с отключёным экспортом и сохранением результатов работы и быть увереным что ни кто не будет её использовать по полной программе.

лучше чтавь клеймо на рисунки.



--------------------
Who dares, wins. (с) Solid Snake
PM MAIL ICQ YIM MSN   Вверх
Атос
Дата 18.9.2004, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 11.9.2004
Где: Екатеринбург

Репутация: нет
Всего: нет



Цитата(_hunter @ 17.9.2004, 19:21)
я же тебе говорил -- смотри на оверлеи ( попробуй сделать ПринтСкрин в том же BSPlayer' e -- ни фига не скопируеш )


Ни фига не скопируешь? Попробуй отключить функции ускорения графики - и все прекрасно скопится ;) Это кстати, работает даже для доморощенных реализаций оконной 3D-графики без WM_PRINTWINDOW

Так что действительно, надо ставить клеймо - что-то вроде перечеркнутого рисунка и надписи ядовитым голубым цветом "UNREGISTERED" посередки. smile.gif

Вообще, как обычно делается сдирание экрана? Открывается дексриптор декстопа:
Код

HDC hdcDesktop = CreateDC("DISPLAY", NULL, NULL, NULL); // как вариант -  GetWindowDC(NULL);
HDC hdcCapture = CreateCompatibleDC(hdcDesktop);
HBMP hbmpCapture = CreateCompatibleBitmap(hdcDesktop, GetDeviceCaps(hdcDesktop, HORZRES), GetDeviceCaps(hdcDesktop, VERTRES));
SelectObject(hdcCapture, hbmpCapture);
BitBlt(hdcCapture, 0, 0, GetDeviceCaps(hdcDesktop, HORZRES), GetDeviceCaps(hdcDesktop, VERTRES), hdcDesktop, 0, 0, SRCCOPY));

.... вуаля, картинка декстопа (без мыши ессесно) у нас в кармане...

Надо проанализировать этот код, и найти слабое место...

Имхо, не очень надежный конечно способ защититься от сдирания картинки для другого потока - создать свой декстоп (CreateWindowStation(), CreateDesktop(), OpenDesktop, AssignDesktop()) - чтобы когда граббер сдирал декстоп, то сдирал свой декстоп, а наш - хи-хи, сидит на другом декстопе с другим контекстом smile.gif правда, этот метод сработает только для NT-систем....

Это сообщение отредактировал(а) Атос - 18.9.2004, 09:33
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0564 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.