По пути к исполняемому файлу определяем, запущен ли он.
1 2 3 4 5 6 7 8 9 10 11 12 |
Uses Winapi.TlHelp32; ... var exePath: WideString; pid: Integer; begin exePath:= 'C:\Windows\explorer.exe'; pid:= isExeRunning(exePath); if pid <> 0 then ShowMessage('Файл запущен') else ShowMessage('Файл не запущен'); end; |
Параметры
exePath - путь к исполняемому файлу
Результат
Идентификатор его процесса (PID) если файл запущен или 0 если нет.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
function isExeRunning(exePath: WideString): Integer; var hSnapshot: THandle; procPath: string; lppe: TProcessEntry32; begin Result := 0; hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); lppe.dwSize := sizeof(lppe); if Process32First(hSnapshot, lppe) then repeat try procPath:= GetFilePathByProcessID(lppe.th32ProcessID); except procPath:= ''; end; if AnsiCompareText(procPath, exePath) = 0 then begin Result := lppe.th32ProcessID; Break; end; until not Process32Next(hSnapshot, lppe); CloseHandle(hSnapshot); end; |