一个朋友要我帮忙想想如何在关机时添加服务,这些在网上都没找到相关资料。
  个人的想法是HOOK 关机的API,然后根据返回值判断是否调用添加服务的函数,但是不知有更简单的方法没?
  有源码最好,如果没有的话也无妨。
  散分把可用分玩光了,100算是全部家当了,不够的话请等两三天,我有了可用分再加分……
  

解决方案 »

  1.   

    以前曾经做过一个重启时删除文件的程序,那个直接调用了相关API,但是这个程序似乎找不到API来调用?
      

  2.   

    如果是非强制关机,会发一个消息WM_QUERYENDSESSION,此时在回复这个消息前可以去处理。
      

  3.   

    >>添加服务
    不知道你写的是什么样的一个程序,与其关机安装还不如添加一个windows启动任务,查找服务是否安装然后再安装,关机的方式有很多种啊
    yourservice.exe -install
      

  4.   

    这样的话你参考僵哥的截获WM_QUERYENDSESSION消息,不过你还得等360先关闭了再进行你的操作,要不一样可以吱声吧
    :)
      

  5.   

    procedure TForm1.WndProc(var Message: TMessage);   
    begin   
      if (Message.Msg = WM_QueryEndSession) then   
      begin   
        Message.Result := 1;   
      end   
      else   
        if Message.Msg = WM_EndSession then   
        begin   
          Close;   
        end   
      else   
        inherited WndProc(Message);   
    end;