程序中通过什么方式判断另外一程序已在进程运行中? 请指教。

解决方案 »

  1.   

    查找进程function IsProcessRunning(const ProcessName: string): THandle;  //查找进程句柄
    const
      PROCESS_TERMINATE = $0001;
    var
      ContinueLoop: BOOL;
      FSnapShotHandle: THandle;
      FProcessEntry32: TProcessEntry32;
    begin
      Result := 0;
      FSnapShotHandle := CreateToolhelp32SnapShot(TH32CS_SNAPPROCESS, 0);
      FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
      ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
      while WordBool(ContinueLoop) do
      begin
        if AnsiPos(LowerCase(ProcessName), LowerCase(FProcessEntry32.szExeFile)) > 0 then
        begin
          Result:= FProcessEntry32.th32ProcessID;
          Break;
        end;
        ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
      end;
      CloseHandle(FSnapshotHandle);
    end;