Как включить и выключить монитор из приложения Java?

Как включить и выключить монитор из приложения Java?

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

4 ответов


предполагая, что вы развертываете свои приложения Java в Windows, вы можете использовать эти функции WIN32API:

// turn off monitor
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) 2); 

// turn on monitor
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) -1);    

тогда вы пишете немного обертка C-JNI к функциям, которые вызывают упомянутый SendMessage и используйте маленькую обертку, чтобы отключить монитор от Java.


в то время как вы можете запросить конфигурации монитора с помощью Java, нет возможности включать и выключать мониторы программно без использования JNI.


Я видел этот exe с именем nircmd в сети. Это бесплатная программа и может быть использована кем угодно.Он имеет встроенную функцию для этого.

nircmd.exe monitor off 

подробная справка также находится на веб-сайте. Просто используйте его в своей программе и называйте его using

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

или поместите его в каталог windows и запустите его оттуда.


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