延时几秒只是缓解,没法彻底关屏。
可能关掉又亮了,或者过几分钟,过十分钟 …… 又自动亮了,还不一定每次都遇到。
彻底关屏的方法:
1、弄个定时器持续发送关屏消息。
2、关屏同时创建一个全屏的窗口,挡在所有窗口前面。
窗口接收到指定的按键后亮屏,清除定时器。
用 aardio 写个例子:
import win.ui;
/*DSG{{*/
var winform = win.form(text="暴力关屏";bgcolor=0)
/*}}*/
winform.timerId = winform.setInterval(
function(){
::User32.PostMessage(0xFFFF,0x112, 0xF170,2);
},500
)
winform.onMouseDown = function(){
winform.clearInterval( winform.timerId );
::User32.PostMessage(0xFFFF,0x112, 0xF170,-1);
winform.close();
}
winform.fullscreen();
win.setTopmost(winform.hwnd);
win.loopMessage();