Как включить и выключить монитор из приложения Java? - PullRequest
6 голосов
/ 07 сентября 2010

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

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

Ответы [ 4 ]

10 голосов
/ 07 сентября 2010

Предполагая, что вы развертываете свои 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.

2 голосов
/ 15 октября 2013

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

nircmd.exe monitor off 

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

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

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

2 голосов
/ 07 сентября 2010

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

0 голосов
/ 08 сентября 2010

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

...