Условно скрываем конкретное окно от скриншота рабочего стола - PullRequest
0 голосов
/ 26 апреля 2011

Возможно ли это. У меня три (3) окна:

  • Window1 - не активно
  • Window2 - не активен
  • Window3 - активный

Если я сделаю скриншот рабочего стола, я хочу, чтобы Window3 был скрыт тихо. При условии, что пользователь использует Window3, программа никоим образом не должна скрывать окна, например, сворачивать их или что-то еще. Короче говоря, мне нужен ненавязчивый способ скрыть определенные окна от скриншота рабочего стола.

1 Ответ

0 голосов
/ 26 апреля 2011

Это не будет возможно без особых усилий.Функциональность экрана печати просто копирует содержимое рабочего стола DC в изображение и помещает его на клавиатуру.На самом деле он не перерисовывает весь рабочий стол в новый DC.Таким образом, нет способа, которым он может беззвучно удалить конкретное окно.

Я полагаю, вы могли бы подключить кнопку экрана печати (или функцию, какой бы она ни была) и позволить ей создать изображение в буфере обмена.Затем ваш хук может прочитать местоположение рассматриваемого окна с рабочего стола и очистить ту область растрового изображения, которая находится в буфере обмена.

Ваш хук сделает это:

call the normal print screen function
load image from clipboard
get location and size of Window3 from desktop
fill that rectangle in the image with black (or whatever)
put the modified image back on the clipboard

Предполагая, чтоРазумеется, что вы можете подключить функцию экрана печати.Я подозреваю, что это возможно, хотя я никогда не пробовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...