Избегайте захвата моего приложения с помощью printscreen [duplicate]

0

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

Приложение будет работать на моем компьютере, и оно будет показано на моем экране. Нет интернет-участия.

Можно ли это сделать в C++? или любой другой язык?

Спасибо.

  • 0
    Я не думаю, что это возможно ..
  • 0
    Вы могли бы послушать клавишу Print Screen и попытаться нарисовать черным, но я сомневаюсь, что это сработает.
Показать ещё 2 комментария
Теги:

2 ответа

2

Насколько мне известно, есть два способа добиться этого:

  1. Не разрешать экраны печати, когда ваше приложение является окном с фокусом - это довольно

легко: вам нужно изменить свою оконную процедуру, чтобы поймать WM_HOTKEY и вы не можете передать ее обратно в систему:

case WM_HOTKEY:
/* your code */;
break; // no DefWndProc() call
  1. Не разрешать экраны печати вообще, когда приложение работает. Вам нужно будет установить крючок, который направит все ваши сообщения, даже те из вашего окна, в вашу программу. Точную информацию можно найти здесь: http://www.cubert.net/2008/05/sntt-disable-print-screen-key-win32-api.html

Вы также можете позволить своему пользователю создавать экраны печати, но закройте окно, когда обнаружен экран печати. Для этого в фрагменте:

case WM_HOTKEY: 
/* here you blank your window */;
DefWndProc(); // send the message about print screen back to the system.
break;

Конечно, все зависит от используемого вами API, но предполагая, что вы используете голый WinAPI - так вы это делаете.

  • 1
    Ваши предложения касаются такого инструмента, как Snipping Tool ?
  • 0
    @ThomasMatthews Нет, это не так. Я полагаю, что нет способа полностью запретить экранирование вашего окна (может быть, ShowWindow(hwnd, SW_HIDE) , но вы все равно можете попытаться получить контент, получив DeviceContext и т. Д.). Но когда дело доходит до отключения «захвата с помощью экрана печати», тогда в моих книгах экран печати - это клавиша sys, и вопрос в основном заключается в простом нажатии этой клавиши.
1

В лучшем случае вы можете сделать это "отчасти". Вы можете захватить события экрана печати Windows и ничего не делать, но сторонний экран печати не зависит от них. Хорошая цифровая камера с высоким разрешением еще сложнее "кодировать",

Ещё вопросы

Сообщество Overcoder
Наверх
Меню