Остановите пользователя с использованием «Print Scrn» / «PrintScreen» ключ клавиатуры для любой веб-страницы

StackOverflow https://stackoverflow.com/questions/3130983

Вопрос

В настоящее время я занимаюсь проектом, в котором мне нужно остановить пользователю от снимка любой веб-страницы, для которой он может использовать клавишу «Print Scrn» / «PrintScreen», доступный на любой из обычных клавиатур.

Я пытался найти свое решение, но напрасно. Если возможно, мне нужно учитыватьScreengrab.«Настройка браузера Firefox, останавливая его также.

Любая помощь значительно ценится, и я использую PHP (в качестве языка сервера) & jQuery для моего проекта.

Это было полезно?

Решение

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

Доступны необходимые инструменты инструментов IRM (управление правами на информационные права), которые, например, для защиты вызовов Windows / DirectX API, а также мониторинг видеопостановки, такие как Oracle IRM. или такой как Technology Microsoft IRM.

Особенно последний может представлять интерес, так как есть также Дополнение прав управления правами для Internet Explorer.

Но как и другие уже сказанные, любая технология IRM / DRM - это противоречия, и вы должны понимать, что она чаще всего будет ограничивать или раздражать своих пользователей.

Другие советы

Я ненавижу «Это невозможно» приговор. Вот все решения объединены, чтобы помочь вам:

1- Вы можете взять решение из Халука:

<script type="text/javascript"> $(document).ready(function() {
    $(window).keyup(function(e){
      if(e.keyCode == 44){
        $("body").hide();
      }

    }); }); 
</script>

Тем не менее, вы скрываете тело, но уже «напечатаны» в буфер обмена. Вы можете выстрелить еще одно событие, которое копирует какой-нибудь текст в буфер обмена, как вы можете увидеть на этом ответе «Редактировать по состоянию на 2016 год» Нажмите кнопку Копировать в буфер обмена с помощью jQuery это что-то подобное:

function copyToClipboard() {
  // Create a "hidden" input
  var aux = document.createElement("input");
  // Assign it the value of the specified element
  aux.setAttribute("value", "Você não pode mais dar printscreen. Isto faz parte da nova medida de segurança do sistema.");
  // Append it to the body
  document.body.appendChild(aux);
  // Highlight its content
  aux.select();
  // Copy the highlighted text
  document.execCommand("copy");
  // Remove it from the body
  document.body.removeChild(aux);
  alert("Print screen desabilitado.");
}

$(window).keyup(function(e){
  if(e.keyCode == 44){
    copyToClipboard();
  }
}); 

Это заблокирует часть вашей проблемы. Если пользователь фокусируется на другом объекте за пределами этой окна, он сможет взять скриншоты. ** Но есть другое решение для этого, просто отключите корпус отверстия, когда окно не сфокусировано. Полное решение, от вашего дорогого бразильского друга:

function copyToClipboard() {
  // Create a "hidden" input
  var aux = document.createElement("input");
  // Assign it the value of the specified element
  aux.setAttribute("value", "Você não pode mais dar printscreen. Isto faz parte da nova medida de segurança do sistema.");
  // Append it to the body
  document.body.appendChild(aux);
  // Highlight its content
  aux.select();
  // Copy the highlighted text
  document.execCommand("copy");
  // Remove it from the body
  document.body.removeChild(aux);
  alert("Print screen desabilitado.");
}

$(window).keyup(function(e){
  if(e.keyCode == 44){
    copyToClipboard();
  }
}); 

$(window).focus(function() {
  $("body").show();
}).blur(function() {
  $("body").hide();
});

Вот пример работы:

Here i try to unfocus the window, on unfocus i hide content and show modal

Это невозможно.

К счастью, эта возмутительная идея невозможна надежно реализовывать, ни «отключить экран захватить» часть, ни «отключить расширения Firefox пользователя». И даже если это было, как @kbok указывает на его комментарий выше, у вас нет правильно сделать это.

Единственный способ защитить свой контент в Интернете - законы об авторских правах - упоминание тех, кто часто достаточно, чтобы напугать людей от неправильного использования! - или не показывая это вообще.

Попробуй это

$(document).keyup(function(e){
  if(e.keyCode == 44) return false;
});

Надеюсь, что это работает

Вы можете изменить содержимое буфера обмена с помощью JavaScript или Flash. Это уже немного помогает.

Как сказал @sjoerd, это невозможно.

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

Но да ... Если вы хотите, чтобы они были невозможны скопировать ... не кладите их онлайн.

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

<p id="test">test</p>

function copyToClipboard(elementId) {

  // Create a "hidden" input
  var aux = document.createElement("input");

  // Assign it the value of the specified element
  aux.setAttribute("value", document.getElementById(elementId).innerHTML);

  // Append it to the body
  document.body.appendChild(aux);

  // Highlight its content
  aux.select();

  // Copy the highlighted text
  document.execCommand("copy");

  // Remove it from the body
  document.body.removeChild(aux);

}
$(document).ready(function(){
    $(window).keyup(function(e){
      if(e.keyCode == 44){
        copyToClipboard('test');
      };
    });
});

Однако нет прямого метода, однако, есть способ охранять ваш контент как можно больше от PRNT Scrn.

Идея такова:

  1. Составьте свой контент недоступным, если Java отключен, и используйте какой-то скрипт, такой как копия Artist Cappy.

  2. Обнаружение PRNT Scrn отправит сообщение администратору с зарегистрированный пользователь Информация, это означает, что ограниченный контент, который доступен членами, только могут извлечь выгоду из этого. отправка Ип Адреса звучит как хорошая идея, но запрещение IPS нет, поэтому вы не получите много выгоды от этого.

  3. Оценка за пределами окна вашего сайта, ваш контент будет покрыт наложением, которое не может быть удалено, если вы не вернетесь на свой веб-сайт и не активируете его, что повторно активирует код обнаружения PRNT SCRN, упомянутый в предыдущей точке.

  4. Если устройство является мобильным устройством, вы можете либо скрывать изображения, либо, как в моем случае, перенаправляйтесь на страницу «Мы извините».

  5. ножницы И другие подобные расширения браузера и дополнения будут бесполезными. кроме одного инструмента, который я нашел под названием Полная страница захвата экрана

    • Этот инструмент захватывает веб-контент примерно через 3 секунды от кнопки нажатия, что достаточно времени, чтобы отклонить наложение и вернуться к вашему контенту
    • Хороший оборот состоит в том, чтобы начать счетчик при нажимающемся «отклонении наложения», который потребуется 5 секунд или более, то есть. После этого продления уже сделали снимок
  6. Также есть косвенный метод для предотвращения захвата видео, все еще работающих над ним, опубликует его здесь или в моем блоге.

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

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

Почему вы хотите предотвратить экран печати?

Если это несколько фотографий, которые вы хотите защитить, вы, возможно, захотите поставить его в низкое разрешение и включить какое-то логотип авторского права в PHP.

Я думаю, что это в значительной степени это.

Вот еще одно решение:

<script type="text/javascript"> $(document).ready(function() {
    $(window).keyup(function(e){
      if(e.keyCode == 44){
        $("body").hide();
      }

    }); }); </script>

Это похоже на решение @ ZX12R. Увеличивается, этот код будет работать, даже если программное обеспечение для захвата печати - это 3-я сторонним инструментом (например, Snagit).

Вы можете заменить $("body").hide(); с чем-то, что вам подойдет лучше. Например, вы можете скрыть все фотографии $("img").hide(); И, возможно, покажет их снова на секунду.

Недостаток - это не будет работать, если веб-страница не является активным окном.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top