delphi 查看指定文件是否在进程列表中


本文整理自网络,侵删。

 
uses tlhelp32;

// 查看指定文件是否在进程列表中
function FileInProcessList(strFileName: string): Boolean;
var
  pe32: PROCESSENTRY32;
  me32: MODULEENTRY32;
  hSnapShot: THandle;
  bFlag: Boolean;
  hModuleSnap: THandle;
  strTemp: string;
begin
  Result := False;
  ZeroMemory(@pe32, sizeof(pe32));
  pe32.dwSize := SizeOf(pe32);

  hSnapShot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  if hSnapShot = 0 then exit;

  bFlag := Process32First(hSnapShot, pe32);
  while bFlag do
  begin
    if UpperCase(ExtractFileName(strFileName))= UpperCase(ExtractFileName(pe32.szExeFile)) then
    begin
      hModuleSnap := CreateToolhelp32Snapshot(TH32CS_SNAPALL, pe32.th32ProcessID);
      if hModuleSnap = INVALID_HANDLE_VALUE then
        strTemp := string(pe32.szExeFile)
      else
      begin
        ZeroMemory(@me32, sizeof(me32));
    me32.dwSize := sizeof(me32);
  if Module32First(hModuleSnap, me32) then
          strTemp := string(me32.szExePath);
      end;
      CloseHandle(hModuleSnap);
      if UpperCase(strTemp) = UpperCase(strFileName) then
      begin
        Result := True;
        exit;
      end;
    end;
    bFlag := Process32Next(hSnapShot, pe32);
  end;
  CloseHandle(hSnapShot);
end;

相关阅读 >>

Delphi 系统服务状态获取管理员用户名

Delphi最全面的dbgrid点击标题实现排序

Delphi10.3通过rest单元使类和json数据互相转换

Delphi 删除指定字符串的所有实例

Delphi query1 导出csv txt

Delphi 使用并行库中的ttask

Delphi 多核机器上编程实现将指定进程pid放到指定cpu上运行

Delphi 7中ado控件打开access数据库文件

Delphi 自动填表代码

Delphi 比较俩组mac地址

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...