本帖最后由 hwj383 于 2010-07-10 13:18:48 编辑

解决方案 »

  1.   

    Microsoft.Win32.SystemEvents.PowerModeChanged 
    GetSystemPowerStatus
      

  2.   

    CallNtPowerInformation NTSTATUS WINAPI CallNtPowerInformation(
      __in          POWER_INFORMATION_LEVEL InformationLevel,
      __in          PVOID lpInputBuffer,
      __in          ULONG nInputBufferSize,
      __out         PVOID lpOutputBuffer,
      __in          ULONG nOutputBufferSize
    );
      

  3.   

    http://msdn.microsoft.com/zh-tw/library/hxkc1kwd(VS.80).aspx
      

  4.   

    http://beta.codeproject.com/KB/vista/VGPowerMonitor.aspx
      

  5.   

    public partial class Form1 : Form
    {
        System.Windows.Forms.Timer timer = new Timer();
        public Form1()
        {
            InitializeComponent();        timer.Interval = 30 * 1000;
            timer.Tick += delegate { SetThreadExecutionState(3); };  //<---
            timer.Start();
        }
        [DllImport("kernel32")]
        extern static int SetThreadExecutionState(int esFlags);
    }注意它是在一个定时器中,每隔一阵子进行调用。SetThreadExecutionState的具体解释见
    http://msdn.microsoft.com/en-us/library/aa373208(VS.85).aspx
      

  6.   

    多谢各位,忘了问了,还有个屏幕保护程序API