最近要用VC++6.0做一个系统服务程序,
实现的功能就是当Windows2003的系统执行账户注销的时候(即在“开始”处执行“注销”),
监测到系统的注销事件继而执行相应的某功能。
现在服务以及功能实现部分的代码已经没有问题了,
可监测2003系统注销事件却完全没有头绪。
不知道大家有没有做过类似的东西,
希望高手指点,
谢谢!

解决方案 »

  1.   

    重载WindowProc函数,截获WM_ENDSESSION,WM_QUERYSESSION消息做自己的处理
      

  2.   

    使用getmessage()么?
    能否说得具体些。
    我这个程序是服务程序,没有窗口的。不知道getmessage()会不会有影响。
      

  3.   

    没有窗口那就没有消息循环,也就是说你得不到这个消息。
    我以前开发的所有服务程序实际上都会产生一个隐藏的窗口用来接收消息。或者你再做一个普通进程,然后接受消息以其他方式(PIPE等)通知服务程序。
    或者服务程序中定时枚举所有进程,看EXPLORER是否还存在。(这个方法我不确定行不行)
      

  4.   

    看EXPLORER是否还存在倒是一个折中的办法,
    不过EXPLORER不太好说,注销状态下EXPLORER还是有可能启动的
    有没有其他的进程方便判断啊?
      

  5.   

    RegisterServiceCtrlHandlerEx,  HandlerEx
      

  6.   

    RegisterServiceCtrlHandlerEx 

    HandlerEx