![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| MaxB |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 10.2.2004 Где: Украина, Одесса Репутация: нет Всего: 1 |
как в MFC перекрыть возможность захвата окна кнопкой PrintScreen или специализированными программами например Corel Cepture?
|
|||
|
||||
| S.A.P. |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 9 Всего: 71 |
Как в MFC не знаю на в API перехватывается примерно вот так:
Инициализация
обработчик сообщения
завершение работы
|
||||||
|
|||||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Ну просто батенька.Перехвати в PreTranslateMessage() сообщение WM_KEYDOWN,и проверь код нажатой клавиши(см. таблицу кодов).Если это клавиша VK_SNAPSHOT (кажется) ,можно RETURN,или че душе угодно -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
а ника ты не запретиш потому как в IrfanView ( например ) используется Ctrl+F11 ( и можно менять )
смотри в сторону оверлеев -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Ну пусть перехватит все возможные комбинации -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| MaxB |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 10.2.2004 Где: Украина, Одесса Репутация: нет Всего: 1 |
Благодарен за советы. Но тот кто захочет сделать захват экрана, тот сделает, например с помощью программы Corel Cepture, там можно поставить для этого любую клавишу.
У меня прога создаёт всякие оригинальные рисунки и я хочу выпустить демо версию с отключёным экспортом и сохранением результатов работы и быть увереным что ни кто не будет её использовать по полной программе. Тут надо лесть в принципы захвата и перекрывать их программно а не кнопку ловить. Может кто знает? |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
ИМХО, надо капать в сторону перехвата апи функций, клавиши бессмыслено перехватывать...
-------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
я же тебе говорил -- смотри на оверлеи ( попробуй сделать ПринтСкрин в том же BSPlayer' e -- ни фига не скопируеш )
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| lynx_916 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 13.6.2004 Где: Молдова Репутация: нет Всего: 1 |
лучше чтавь клеймо на рисунки. -------------------- Who dares, wins. (с) Solid Snake |
|||
|
||||
| Атос |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 11.9.2004 Где: Екатеринбург Репутация: нет Всего: нет |
Ни фига не скопируешь? Попробуй отключить функции ускорения графики - и все прекрасно скопится ;) Это кстати, работает даже для доморощенных реализаций оконной 3D-графики без WM_PRINTWINDOW Так что действительно, надо ставить клеймо - что-то вроде перечеркнутого рисунка и надписи ядовитым голубым цветом "UNREGISTERED" посередки. Вообще, как обычно делается сдирание экрана? Открывается дексриптор декстопа:
Надо проанализировать этот код, и найти слабое место... Имхо, не очень надежный конечно способ защититься от сдирания картинки для другого потока - создать свой декстоп (CreateWindowStation(), CreateDesktop(), OpenDesktop, AssignDesktop()) - чтобы когда граббер сдирал декстоп, то сдирал свой декстоп, а наш - хи-хи, сидит на другом декстопе с другим контекстом Это сообщение отредактировал(а) Атос - 18.9.2004, 09:33 |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |