9
votes

Puis-je empêcher un utilisateur de prendre des captures d'écran dans une application Mac?

J'ai une application d'image et je tiens à le relâcher lorsque les utilisateurs non enregistrés peuvent afficher les fichiers mais je ne peux pas économiser jusqu'à ce qu'ils soient inscrits.

Je cherche un moyen d'empêcher l'utilisateur d'utiliser la fonctionnalité de capture d'écran intégrée afin que je n'ai pas à filmer les images. Comment puis-je accomplir cela?

- Edit ci-dessous -

J'ai décidé de filmer les images. J'avais essayé d'éviter le filigrane puisque les images sont stéréoscopiques, mais je suis plutôt content de la recherche du filigrane maintenant. Je mettais un logo dans le coin et compensez-le assez sur chaque image afin qu'il apparaisse au premier plan.

Si les gens sont d'accord avec cela dans la pratique ou non, ma question est toujours valide. Le lecteur DVD d'Apple cache la vidéo dans ses captures d'écran, qui n'arrêtent pas tout à fait l'utilisateur de prendre des captures d'écran mais qui accomplit mon objectif initial.

Je voudrais encore beaucoup savoir comment faire cela. (Le lecteur DVD)


2 commentaires

Vous pourriez rester derrière eux et saisir leur main lorsque l'a essayé d'appuyer sur la frappe d'écran!


Le lecteur DVD utilise une superposition vidéo matérielle. Je ne sais pas ce que l'API à faire sur Mac OS X est, mais même l'utilisateur dast-que l'utilisateur pouvait sortir de leur appareil photo et prendre une photo :-p votre filigrane est probablement une meilleure solution, assurez-vous que ce n'est pas facile de récolter ça éteint.


5 Réponses :


-4
votes

non; C'est une fonctionnalité système.


0 commentaires

2
votes

Vous pouvez essayer d'exécuter votre application Fullscreen, puis de capturer toutes les frappes de frappe. Mais s'il vous plaît écouter SIRIDE.


1 commentaires

J'ai essayé cela. Ça ne marche pas. J'ai mis en place une application pour capturer tous les coups de frappe et il a été capable de les attraper tous sauf ceux de la prise d'écran.



3
votes

lecteur DVD fait ceci (l'utilisateur peut toujours prendre la capture d'écran, mais la fenêtre du joueur n'apparaît pas), donc je suis sûr qu'il y a un moyen. Peut-être régler le type de partage de la fenêtre vers nswindowsharingnone ?


10 commentaires

La vidéo est probablement mise en œuvre comme une superposition. En effet, ce n'est pas vraiment là dans le tampon d'affichage actif, mais se fait fusionner sur le chemin du câble.


Mettre cette question au repos même que cela n'a jamais été vraiment répondu. C'est la meilleure réponse de ceux reçus.


@Chrisstratton - Comment pourrions-nous accomplir la même chose dans nos applications?


@Artofwarfare s'il vous plaît ne pas.


@Chrisstratton - Entre avoir un filigrane à l'écran jusqu'à ce que mon utilisateur paie ou simplement les bloquer de prendre des captures d'écran, je suis à peu près sûr qu'ils auraient beaucoup préféré que je n'ai pas eu de filigrane en place. Je ne suis pas sur le point d'investir mon temps libre pour les prochains mois dans une application que mes utilisateurs ne vont jamais payer pour - j'ai 40 000 $ de factures d'étudiant à payer (et je suis toujours à l'école.) Si Vous savez comment faire ce que fait le lecteur DVD, pourriez-vous nous faire savoir?


@Artofwarfare Veuillez ne pas perdre votre temps ni la patience de votre utilisateur mettant en œuvre des fonctionnalités négatives qui sont trivialement vaincues et n'encouragent que la distribution des versions plus conviviales, piratées et plus conviviales des programmes.


@Chrisstratton - L'application est gratuite avec IAP - Les utilisateurs ne vous dérangeraient pas de le pirater, car tout ce qu'ils finissaient avec est la même chose que possible sans passer à travers l'effort de piratage. Je suis d'accord avec le type d'utilisateur du pirate informatique qui le trouve trivial pour vaincre; Je pense que mes utilisateurs ne savent généralement pas comment se déplacer et payer volontiers les frais de 4 $ ou 5 $. Je fais une application de dessin - I Figure Les utilisateurs obtiennent tout, mais exportant gratuitement vers un format commun gratuitement. Êtes-vous ou ne savez-vous pas comment faire ce que fait le lecteur de DVD, et pourriez-vous nous faire savoir si vous le faites?


Ne faites pas cela. Ce n'est pas un problème technologique, mais une convivialité une. Si les avantages de travailler autour de votre proposition de restriction sont aussi mineurs que vous prétendez, cela ne vaut pas la peine et la convivialité de l'essai d'essayer de mettre en œuvre ladite restriction.


@Peter Hosey Le lien a été mis à jour. Pourriez-vous mettre à jour le lien vers https://developer.apple.com/documentation/appkit/nswindowsha ringnone / nswindowsha ringnone? Langue = ob JC


NSWINDOWSHARINGNONE n'est pas efficace contre les touches de raccourci de capture d'écran (et uniquement partiellement efficaces contre les applications de capture d'écran) et n'est pas la façon dont le lecteur DVD le fait. De peur que cela devienne un site Q et IRM (question et mon idéologie juste), voyez ma tentative de répondre à la question posée.



3
votes

Une option très utilisateur hostile est de changer le dossier dans lequel les captures d'écran sont stockées dans un répertoire de style / dev / null com .apple.screencapture paramètre.

Un énorme inconvénient est que vous risquez de gâcher les paramètres des utilisateurs et de ne pas pouvoir les restaurer si la sortie de votre application n'est pas propre.


Une autre option consiste à garder une trace de quels fichiers créés dans l'emplacement de capture d'écran , voyez s'ils correspondent au modèle pour Nom , puis supprimez-les.

Cette méthode est encore assez hostile.


J'ai également étudié s'il était possible de tuer le processus qui gère la capture de l'écran, malheureusement le processus qui le gère, SystemUISERver redémarre après avoir été tué.


SystemUISERVER semble refuser de prendre des captures d'écran si le lecteur DVD joue actuellement un DVD. Je n'ai aucune idée de la manière dont la détection de lecture de DVD fonctionne cependant, mais cela pourrait être une conduite pour empêcher les captures d'écran.


Liens


0 commentaires

9
votes

Basé sur une recherche de symboles via un lecteur DVD, il utilise probablement l'API privé CGSSetWindowcoCapTureExShetShape . Richard entendu a eu la gentillesse d'inverser l'ingénieur IT et Enveloppez-le pour une utilisation facile.

Être privé, cela peut arrêter de travailler (ou déjà arrêté de fonctionner) à tout moment.

Mais finalement, la réponse à votre question est "Oui, mais pas de manière documentée publiquement". Quelques autres tampons de ce fil long sont:

  1. poser cette question inévitablement excite beaucoup d'indignation morale myopique.
  2. Étant donné qu'il n'y a pas de méthode publique, le lecteur DVD inverse Engineering est un chemin utile pour poursuivre.
  3. Une demande d'Apple DTS peut être la seule méthode fiable pour trouver une réponse.

2 commentaires

2ème lien est mort.


Wayback machine à la rescousse à nouveau: web.archive.org/web/20171217225230/http://www.cocoabuilder.c herm / ...