6
votes

Comment allumez-vous et désactivez-vous un moniteur depuis une application Java?

Comment allumez-vous et éteignez-vous un moniteur depuis une application Java?

Si vous vous demandez pourquoi, il s'agit d'une application de style kiosque où il serait génial d'éteindre les moniteurs la nuit. Oui, vous pouvez le faire dans les paramètres d'économiseur d'écran de la machine, mais ce serait génial de le faire de manière programmative et d'éviter de le configurer sur chaque machine.


0 commentaires

4 Réponses :


10
votes

En supposant que vous déployez vos applications Java sous Windows, vous pouvez utiliser ces fonctions Win32API: xxx

alors vous écrivez un peu C-JNI Wrapper aux fonctions qui appellent le mentionné sendMessage et utilisez le petit wrapper pour éteindre le moniteur de Java. < / p>


1 commentaires

Alternativement à JNI, vous pouvez utiliser la JNA pour appeler directement le Win32API directement, en évitant le besoin de code de colle C. en.wikipedia.org/wiki/java_native_access



2
votes

Bien que vous puissiez interroger les configurations du moniteur avec Java, il n'existe aucun moyen de tourner les moniteurs sur et éteindre de manière programmative sans utiliser JNI.


0 commentaires

-4
votes

Vous pouvez ouvrir une fenêtre de swing en plein écran, le rendre complètement noir, de sorte que le moniteur, en ce qui concerne le comportement observable, est désactivé.


2 commentaires

Bonne idée! Pour rendre votre solution encore meilleure, on pourrait attacher une webcam au kiosque-pc et prendre une photo avant de "arrêter". Il serait alors possible de calculer (peut-être avec l'API d'imagerie avancée Java (JAI)) et de montrer une image des réflexions, qui serait montrée si le moniteur était vraiment désactivé. Mieux que montrer juste un écran noir, plus de 95% des personnes qui marchent ne pouvaient pas dire la différence. Oh, et si le moniteur a une conduite à l'avant à l'avant, l'utilisation d'un crayon de retouche dans la couleur du boîtier pour le peindre serait le plus approprié.


La peinture de pulvérisation noire ne serait-elle pas plus efficace? :-)



2
votes

J'ai vu cet exe nommé NIRCRMD sur le net. C'est un freeware et peut être utilisé par quiconque. Il a une fonction intégrée pour le faire.

Runtime.getRuntime().exec(this.getClass().getResource("nircmd.exe").getPath());


0 commentaires