我想写个程序,在屏幕保护恢复到桌面的时候做点事,可是不知道怎么得到这个消息,求助

解决方案 »

  1.   

    要用API了SPI_GETSCREENSAVERRUNNING参考:
    http://hi.baidu.com/linrao/blog/item/1507c10ee9795de4aa645751.html
      

  2.   

    WTSRegisterSessionNotification.
    然后捕获WM_WTSSESSION_CHANGE Message  
      

  3.   


           // 屏保状态
            const uint SPI_SETSCREENSAVEACTIVE = 0x0011;
           [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
           static extern bool SystemParametersInfo(uint uAction, uint uParam, StringBuilder lpvParam, uint init);
            //关闭屏保
            public static void CancelScreener()
            {
                bool ok;
                StringBuilder str = new StringBuilder(100);
                ok = SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, str, 0);
            }如果OK为true则屏保关闭了。