Detener usuario de usar “Imprimir pantalla” clave / “Imprimir Pantalla” del teclado para cualquier página web

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

Pregunta

Actualmente estoy haciendo un proyecto, en el que necesito parar al usuario de tomar la instantánea de cualquier página Web, por la que se puede utilizar el "Impr Pant" / "PrintScreen" clave disponibles en cualquiera de los teclados normales.

He estado tratando de encontrar su solución, pero en vano. Si es posible, tengo que tener en cuenta la " Screengrab " complemento del navegador Firefox, deteniendo también.

Cualquier ayuda es muy apreciada, y estoy usando PHP (como lenguaje de servidor) y jQuery para mi proyecto.

¿Fue útil?

Solución

Se puede desactivar la pantalla no agarrar desde el navegador Web, sólo sería posible mediante la instalación de software adicional en el PC del usuario.

Existen herramientas alguna IRM (Information Rights Management) disponibles que hacen que por ejemplo, mediante la protección de llamadas a la API de Windows / DirectX y también el seguimiento de la memoria de vídeo, como Oracle IRM o como la tecnología IRM de Microsoft .

Especialmente este último podría ser de interés, ya que es también un Rights Management para Internet Explorer .

Pero, como ya se ha dicho otra, cualquier tecnología IRM / DRM es polémica y se debe entender que con más frecuencia se limitará o molestar a sus usuarios.

Otros consejos

No me gusta el "no es posible", sentencia. He aquí todas las soluciones se combinaron para ayudarle a:

1- Usted puede agarrar la solución de Haluk:

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

    }); }); 
</script>

Sin embargo, ocultar el cuerpo, pero ya es "impreso" en el portapapeles. Puede disparar otro evento que copiar un texto en el portapapeles, como se puede ver en esta respuesta "Editar partir de 2016" Haga clic en el botón copiar a portapapeles utilizando jQuery , es algo como esto:

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();
  }
}); 

Esto bloqueará una parte de su problema. Si el foco usuario en otro objeto fuera de esta ventana que va a ser capaz de tomar capturas de pantalla. ** Pero hay otra solución para que, así, simplemente desactivar el cuerpo agujero cuando la ventana de fuera de foco a conseguir. solución completa, de su amigo brasileño querida:

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();
});

Aquí está el ejemplo de trabajo:

 Aquí trato de desenfocar la ventana, en unfocus puedo ocultar y mostrar el contenido modal

Esto no es posible.

Afortunadamente, esta idea extravagante no es posible llevar a cabo de forma fiable, ni la parte de "desactivar la pantalla agarrar" ni "desactivar las extensiones de Firefox de usuario" el uno. E incluso si lo fuera, como puntos @kbok fuera en su comentario anterior, que no tienen un derecho para hacer esto.

La única manera de proteger su contenido en línea es las leyes de copyright - mencionar los suele ser suficiente para asustar a la gente lejos de abusar de ella! -. O no aparece en absoluto

Probar

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

Esperanza funciona

Se puede cambiar el contenido del portapapeles utilizando JavaScript o Flash. Esto ya ayuda un poco.

Al igual que @Sjoerd dijo, esto no es posible.

Si se trata de imágenes que desea proteger, le sugiero que para las imágenes ejemplo de visualización de menor calidad que son marca de agua en su lugar y sólo muestran la marca de agua no los de alta calidad cuando sea apropiado.

Pero sí ... Si queremos que sean imposibles de copiar ... no ponerlos en línea.

Se puede copiar al portapapeles otra cosa, cuando la pantalla de impresión clave de usuario clic. Este es el ejemplo y copio texto de usuario.

<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');
      };
    });
});

No hay ningún método directo para hacer eso, sin embargo, hay una manera de proteger su contenido tanto como sea posible de scrn prnt.

La idea es la siguiente:

  1. Haga que su contenido inaccesible si Java está desactivado, y el uso de una secuencia de comandos como Artista del alcance de protección de copia.

  2. Detección prnt scrn enviará un mensaje al administrador con el usuario registrado información, esto significa que el contenido restringido que sea accesible por los miembros sólo puede beneficiarse de ello. enviando IP direcciones suena como una idea buena, pero la prohibición de PI no está, por lo que no va a obtener una gran cantidad de beneficios de ello.

  3. Una vez fuera de la ventana de su sitio web, su contenido será cubierto con una capa que no se puede quitar a menos que vuelva a su sitio web y lo activa, que se volverá a activar el código prnt scrn detección mencionado en el punto anterior.

  4. Si el dispositivo es un teléfono móvil, puede ocultar imágenes, o como en mi caso, redirección a un "lo siento" página.

  5. herramienta de recortes y otras extensiones del navegador similares y complementos será inútil. Excepto una herramienta que he encontrado llamado página completa de captura de pantalla

    • este contenido herramienta de captura web después de unos 3 segundos de pulsar el botón, que es tiempo suficiente para descartar la superposición y volver a su contenido
    • una buena respuesta es comenzar un contador cuando "despedir superposición" se hace clic que necesitará 5 segundos o más, es decir. después de esta ampliación ya ha tomado una instantánea
  6. También hay un método indirecto para evitar la captura de vídeo, sigue trabajando en ella, hará publicar aquí o en mi blog.

  7. Si su contenido es realmente mucho la pena, los usuarios aún podría capturarlo usando sus cámaras, podría haber un método para eso también! Pero yo alféizar de que hacer una investigación antes de hablar de ello.

Yo estaré actualizando este post en mi blog para otras técnicas que he utilizado / utilizará para mayor protección. Por favor, compruebe esta prueba (aún en desarrollo) para una demostración.

¿Por qué quiere evitar que la pantalla de impresión?

Si se trata de unas fotos que desea proteger, es posible que desee poner en baja resolución, e incluir algún tipo de logotipo de los derechos de autor mediante programación en php.

Creo que es más o menos la misma.

Aquí hay otra solución:

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

    }); }); </script>

Esto es similar a la solución de @ ZX12R. La ventaja es el código funcionará incluso si la pantalla de impresión del software es una herramienta de captura de tercera parte (por ejemplo snagit).

Puede reemplazar $("body").hide(); con algo que se adapte mejor. Por ejemplo, puede ocultar todo el $("img").hide(); imágenes y tal vez mostrarles de un segundo más tarde.

El inconveniente es que no va a funcionar si la página web no es la ventana activa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top