守护进程的一个笨写法

function TForm1.Checklogin() : Boolean;
var
  FSnapshotHandle:THandle; //进程快照句柄
  FProcessEntry32:TProcessEntry32; //进程入口的结构体信息
  ContinueLoop, a:BOOL;
begin
  FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//CreateToolhelp32Snapshot函数得到进程快照
  FProcessEntry32.dwSize := Sizeof(FProcessEntry32);//初始化

  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);//Process32First 得到一个系统快照里第一个进程的信息
   //进程ID
  a := False;
  while ContinueLoop do
    begin
      if loginProcessInfo.dwProcessId = FProcessEntry32.th32ProcessID then
        begin
          a := True;
          Break;
        end
      else
        begin
           ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
        end;
    end;
  if a then
    begin
      Result := True;
    end
  else
    begin
      Result := False;
    end;

end;


procedure TForm1.tmr1Timer(Sender: TObject);
begin

  if checklogin() then
    begin

    end
  else
    begin
      StartLogin();
      Memo1.Lines.Add('[' + FormatdateTime('hh:nn:ss', Now)+ '] 登录服务已重启');
    end;

end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值