禁止屏幕保护和待机
[DllImport("user32.dll")]
static extern bool SystemParametersInfo(uint uiAction, bool uiParam, ref bool pvParam, uint fWinIni);
const uint SPI_GETSCREENSAVEACTIVE = 0x0010;
const uint SPI_SETSCREENSAVEACTIVE = 0x0011;
const uint SPIF_SENDCHANGE = 0x0002;
const uint SPIF_SENDWININICHANGE = SPIF_SENDCHANGE;
[DllImport("kernel32.dll")]
static extern uint SetThreadExecutionState(uint esFlags);
const uint ES_SYSTEM_REQUIRED = 0x00000001;
const uint ES_DISPLAY_REQUIRED = 0x00000002;
const uint ES_CONTINUOUS = 0x80000000;
//设置屏幕
if (this.chkScreen.Checked == true)
{
bool active = false;
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, false, ref active, SPIF_SENDWININICHANGE);
SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED | ES_SYSTEM_REQUIRED);
}
else
{
bool active = false;
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, true, ref active, SPIF_SENDWININICHANGE);
SetThreadExecutionState(ES_CONTINUOUS);
}

浙公网安备 33010602011771号