我做了一个基于CS的服务器程序,怕别人不小心或故意给关了,想实现要关程序必须输入密码,请问怎么实现?在OnClose里加代码能阻止别人在任务管理器中关闭进程吗?如果不行该怎么办??????

解决方案 »

  1.   

    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    var
      Str : String;
    begin
      Str := InputBox('提示','請輸入關機密碼','1111');  if Str = '123' then CanClose := True
      else CanClose := false;
      if not CanClose  then  ShowMessage('密碼輸入錯誤');
    end;
      

  2.   


    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    var
      s:string;
    begin
      action:=caNone;
      s:=InputBox('请输入密码','密码','');
      if s='1234' then
        action:=caFree;
    end;
      

  3.   

    肯定能被任务管理器干掉前几天我刚好弄了一个这样的东西  hook ntopenprocess 这样任务管理器就关不了它了再加上楼上的代码 就能满足你的要求了
      

  4.   

    楼上hook ntopenprocess怎么实现的?
      

  5.   

    .
     這裏只提供正常代碼,要是一定那種可以HOOK EXPLORER或NT
      

  6.   

    别什么都用驱动行不……
    动不动就是NtXXXXX,Ring0虽然好,但是这么做也未免太小题大做了点……
    其实直接线程注入一个System权限的进程就差不多了
      

  7.   

    支持FormCloseQuery,比较喜欢这样操作。
      

  8.   

    别什么都用驱动行不……
    动不动就是NtXXXXX,Ring0虽然好,但是这么做也未免太小题大做了点……
    其实直接线程注入一个System权限的进程就差不多了
    -----
    具体怎么做啊