如何在Java應用程序中打開和關閉監視器?如何在Java應用程序中打開和關閉監視器?
如果您想知道爲什麼,這是一個亭式應用程序,在晚上關閉顯示器會很好。是的,您可以在機器的屏幕保護程序設置中執行此操作,但以編程方式執行並避免在每臺計算機上進行配置會很好。
如何在Java應用程序中打開和關閉監視器?如何在Java應用程序中打開和關閉監視器?
如果您想知道爲什麼,這是一個亭式應用程序,在晚上關閉顯示器會很好。是的,您可以在機器的屏幕保護程序設置中執行此操作,但以編程方式執行並避免在每臺計算機上進行配置會很好。
假設你在Windows上部署Java應用程序,你可以使用這個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 wrapper來調用提到SendMessage
和使用小包裝功能關閉顯示器來自Java。
雖然您可以使用Java查詢監視器配置,但是沒有辦法以編程方式打開和關閉監視器而不使用JNI。
您可以打開一個全屏幕的擺動窗口,使其完全變黑,所以就可觀察到的行爲而言,關閉監視器。
好主意!爲了讓您的解決方案更好,可以將攝像頭連接到自助服務終端上,並在「關閉」之前拍攝照片。然後就可以計算(也許使用Java Advanced Imaging(JAI)API)並顯示反射圖片,如果顯示器真的關閉,將顯示這些圖片。比僅僅顯示黑屏更好,現在超過95%的人走過來無法分辨其中的差別。噢,如果顯示器的正面有一個LED電源指示燈,那麼使用錶殼顏色的觸摸式鉛筆來塗抹它是最合適的。 – bobndrew 2010-09-29 16:42:03
黑色噴漆不會更有效嗎? :-) – 2013-08-02 09:25:37
我已經在網上看到這個exe文件nircmd。它是一個免費軟件,可以被任何人使用。它具有內置的功能。
nircmd.exe monitor off
在網站上也有詳細的幫助。 只是用它在你的程序和使用
Runtime.getRuntime().exec(this.getClass().getResource("nircmd.exe").getPath());
調用它或把它到windows目錄下,並從那裏運行它。
除了JNI,您可以使用JNA直接調用WIN32API,從而避免需要任何C代碼。 http://en.wikipedia.org/wiki/Java_Native_Access – 2010-09-07 21:34:22