Как включить и выключить монитор из приложения 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 и запустите его оттуда.
вы можете открыть полноэкранное окно качания, сделать его полностью черным, поэтому монитор, насколько это касается наблюдаемого поведения, выключен.