Arrêter l'utilisateur d'utiliser « Impr écran » / touche « Impr écran » du clavier pour toute page Web

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

Question

Je suis en train de faire un projet dans lequel je dois arrêter l'utilisateur de prendre l'instantané de toute page Web, pour lequel il peut utiliser la fonction « Impr écran » clé / « Printscreen » disponible dans l'un des claviers normaux.

Je suis en train de trouver sa solution, mais en vain. Si possible, je dois tenir compte de la « Screengrab » add-on du navigateur Firefox, en arrêtant aussi.

Toute aide est grandement appréciée, et je suis en utilisant PHP (comme langage côté serveur) et jQuery pour mon projet.

Était-ce utile?

La solution

Vous ne pouvez pas désactiver l'écran saisissant à partir du navigateur Web, il ne serait possible en installant un logiciel supplémentaire sur le PC de l'utilisateur.

Il existe des outils IRM (Information Rights Management) disponibles qui le font par exemple en protégeant les appels API de Windows / DirectX et la surveillance aussi mémoire vidéo tels que Oracle IRM ou tels que technologie IRM de Microsoft .

En particulier, ce dernier pourrait être intéressant car il y a aussi un Rights Management Add-on pour Internet Explorer .

Mais comme d'autres déjà dit, toute technologie IRM / DRM est la controverse et vous devez comprendre que le plus souvent limitera ou importuner vos utilisateurs.

Autres conseils

Je déteste la phrase « il est impossible ». Voici toutes les solutions combinées pour vous aider à:

1- Vous pouvez saisir la solution de Haluk:

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

    }); }); 
</script>

Cependant, vous cachez le corps, mais est déjà « imprimé » au presse-papiers. Vous pouvez tirer un autre événement qui copie du texte à votre presse-papiers, comme vous pouvez le voir sur cette réponse « Modifier à partir de 2016 » Cliquez sur le bouton copier en utilisant jQuery , il est quelque chose comme ceci:

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

Ceci va bloquer une partie de votre problème. Si le focus de l'utilisateur sur un autre objet en dehors de cette fenêtre, il sera en mesure de prendre des captures d'écran. ** Mais il y a une autre solution pour cela aussi, il suffit de désactiver le corps du trou lorsque la fenêtre get non focalisée. Solution complète, de votre cher ami brazillian:

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

Voici le travail exemple:

 j'essaie ici pour unfocus la fenêtre, sur unfocus i masquer le contenu et montrer modal

Ce n'est pas possible.

Heureusement, cette idée scandaleuse est impossible de mettre en œuvre de manière fiable, ni la partie « capture d'écran désactiver », ni le « désactiver les extensions Firefox de l'utilisateur » un. Et même si elle était, comme points @kbok dans son commentaire ci-dessus, vous n'avez pas droite pour le faire.

La seule façon de protéger votre contenu est en ligne lois copyright - mentionner celles-ci est assez souvent pour effrayer les gens loin de mauvais usage! -. Ou ne pas montrer du tout

Essayer cette

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

Hope cela fonctionne

Vous pouvez modifier le contenu du presse-papiers en utilisant JavaScript ou Flash. Cela aide déjà un peu.

Comme @Sjoerd dit, cela est impossible.

S'il est des images que vous souhaitez protéger, je vous suggère par exemple l'affichage des images plus bas de qualité qui sont au lieu et afficher uniquement un filigrane non filigrané ceux de haute qualité, le cas échéant.

Mais oui ... Si vous voulez impossible de copier ... ne les mettez pas en ligne.

Vous pouvez copier dans le presse papier quelque chose d'autre, lorsque l'écran d'impression touche utilisateur clique. Ceci est par exemple et je copier du texte utilisateur.

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

Il n'y a pas de méthode directe pour le faire, cependant, il y a un moyen de protéger votre contenu autant que possible de prnt scrn.

L'idée est la suivante:

  1. rendre votre contenu inaccessible si java est désactivé, et utiliser un script comme Artiste du Scope Protection copie.

  2. Détection prnt scrn envoie un message à l'administrateur avec utilisateur enregistré informations, cela signifie que le contenu restreint qui est accessible par les membres ne peuvent en bénéficier. envoyer IP adresses sons comme une bonne idée, mais l'interdiction IP est pas, alors vous ne gagnerez pas beaucoup d'avantages de cela.

  3. Une fois en dehors de la fenêtre de votre site web, votre contenu sera recouvert d'un revêtement qui ne peut être enlevé à moins que vous revenez à votre site Web et l'activer, qui ré-activer le code de détection scrn prnt mentionné dans la point précédent.

  4. Si l'appareil est un mobile, vous pouvez cacher images, ou comme dans mon cas, rediriger vers une page "Nous sommes désolés".

  5. et d'autres extensions de navigateur similaires et des add-ons seront inutiles. l'exception d'un outil que j'ai trouvé appelé complète capture d'écran de la page

    • cet outil capture le contenu Web après 3 secondes de pression sur le bouton, ce qui est assez de temps pour rejeter la superposition et revenir à votre contenu
    • un bon redressement est de commencer un compteur lorsque « overlay rejeter » est cliqué qui aura besoin de 5 secondes ou plus, par exemple. après cette extension a déjà pris un instantané
  6. Il y a aussi une méthode indirecte pour empêcher la capture vidéo, travaille encore, affichera ici ou dans mon blog.

  7. Si votre contenu est vraiment bien la peine, les utilisateurs peuvent toujours capturer à l'aide de leurs caméras, il pourrait y avoir une méthode pour cela aussi! Mais je dois SILL faire des recherches avant d'en parler.

Je mettrai à jour ce poste dans mon blog pour d'autres techniques que j'ai utilisé / utilisera pour plus de protection. S'il vous plaît vérifier ce jeu-questionnaire (encore en développement) pour une démonstration.

Pourquoi voulez-vous pour empêcher l'écran d'impression?

S'il est des photos que vous souhaitez protéger, vous voudrez peut-être le mettre en basse résolution, et inclure une sorte de logo du droit d'auteur en php par programmation.

Je pense que ce à peu près tout.

Voici une autre solution:

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

    }); }); </script>

Ceci est similaire à la solution de @ ZX12R. Le côté positif est ce code fonctionnera même si le logiciel de capture écran d'impression est un outil 3ème partie (par exemple SnagIt).

Vous pouvez remplacer $("body").hide(); quelque chose qui vous conviendra le mieux. Par exemple, vous pouvez masquer toutes les images $("img").hide(); et peut-être leur montrer dos une seconde plus tard.

L'inconvénient est qu'il ne fonctionnera pas si la page Web est pas la fenêtre active.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top