新到一家公司上班,公司要用考勤卡记录员工的上下班的时间,可我有时会忘记打卡,我希望可以在我关机的时候提醒我去打卡。如何截获 Window 2000 的关机消息不让系统执行?或者如何使用钩子是系统收到关机消息执行我得程序?我希望可以由我的程序来控制系统的关机

解决方案 »

  1.   

    在Form的OnCloseQuery事件中就可以了:
    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      CanClose :=
        Application.MessageBox('Shutdown?', 'ask', MB_OKCANCEL) = ID_OK;
    end;
      

  2.   

    sysu(死树) :
        我不希望要先启动一个前台程序来维持这种状态,我希望可以用一个像服务一样的后台程序去控制系统的关机,一有关机的消息就调用我的程序,由我的程序来控制系统的关机
      

  3.   

    响应主窗体的OnCloseQuery事件,代码:if messsagedlg('ShutDown',mtinformation,[mbyes,mbno],0)=idyes then
       canclose:=true
    else
       canclose:=false;
    如果是无窗体程序,应当捕捉WM_QUERYENDSESSION,参考开发人员指南
      

  4.   

    easy,就用上面两位老兄的方法,没错的
    写个服务也一样啊