aardio 文档

aardio 范例: (当前线程)防息屏、保持唤醒

import win.ui;
/*DSG{{*/
var winform = win.form(text="(当前线程)防息屏、保持唤醒";right=759;bottom=469)
winform.add()
/*}}*/

_ES_CONTINUOUS = 0x80000000;  // 持续有效
_ES_SYSTEM_REQUIRED = 1;  // 阻止系统休眠
_ES_DISPLAY_REQUIRED = 2;  // 阻止显示器关闭
_ES_AWAYMODE_REQUIRED = 0x40;  // 启用离开模式

/*
https://learn.microsoft.com/windows/win32/api/winbase/nf-winbase-setthreadexecutionstate

参数指定线程的线程的执行要求。
此函数使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入睡眠状态或关闭显示器。
*/
::Kernel32.SetThreadExecutionState(_ES_CONTINUOUS | _ES_SYSTEM_REQUIRED | _ES_DISPLAY_REQUIRED);//避免息屏

// 窗口退出时恢复正常状态 
winform.onDestroy = function(){ 
    ::Kernel32.SetThreadExecutionState(_ES_CONTINUOUS);  
}

//可选:定时模拟操作,避免息屏
import key;
winform.setInterval(
    function(){  
        // 如果空闲时间超过 45 秒,模拟输入
        if(win.getIdleTime() > 45000){
            key.press(0x7E/*_VK_F15*/)
        }
    }, 1000 );

winform.show();
win.loopMessage();
Markdown 格式