禁止屏幕保护和待机

[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);
                }

posted @ 2013-03-11 10:24  指尖的流星  Views(360)  Comments(0)    收藏  举报