Вниз
Скачать: CL | DM;

Проверка процессов   Найти похожие ветки 

 
ArchValentin ©   (2006-02-12 08:09) [0]

Доброго всем времени суток. Проблема такая, у меня есть путь типа c:\Прога\proga.exe, как можно проверить, запущена ли она. Заранее благодарен


 
kaZaNoVa ©   (2006-02-12 11:33) [1]

в uses добавь Tlhelp32, PsApi

Function IfRunProgram(ProgramFullName:string):Boolean;
var
hSnapshot, hProcess: THandle;
PE: TProcessEntry32;
Path: array [0..MAX_PATH] of Char;
begin
Result:=False;
hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if hSnapshot <> INVALID_HANDLE_VALUE then
begin
  PE.dwSize := sizeof(PE);
  if Process32First(hSnapshot, PE) then
    repeat
      hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE, PE.th32ProcessID);
      if GetModuleFileNameEx(hProcess, 0, Path, sizeof(Path)) <> 0 then
        if (pos(UpperCase(ProgramFullName),UpperCase(Path))>0  ) then Result:= True;
      CloseHandle(hProcess)
    until not Process32Next(hSnapshot, PE);
    CloseHandle(hSnapshot)
end
end;

//пример использования

If IfRunProgram("Explorer") then MessageBox(0,"Программа запущена","Внимание",0);



 
maxim161 ©   (2006-02-12 17:29) [2]

Так это надо в каком-нибудб таймере ставить?


 
kaZaNoVa ©   (2006-02-13 00:22) [3]

maxim161 ©   (12.02.06 17:29) [2]
ага


 
kaZaNoVa ©   (2006-02-13 12:14) [4]

да, чуть не забыл .. код  [1] может некорректно выдавать начало пути.. поэтому лучше писать тока конец . .например If IfRunProgram("proga.exe") then MessageBox(0,"Программа запущена","Внимание",0);




Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.055 c
15-1145185280
Sirian
2006-04-16 15:01
2006.05.07
Программная Компиляция


2-1145433320
TrainerOfDolphins
2006-04-19 11:55
2006.05.07
Проверить фокус TToolButton


2-1145209259
SamProf
2006-04-16 21:40
2006.05.07
Как получить содержимиое ListView по handle?


6-1137685582
Ibrox
2006-01-19 18:46
2006.05.07
Трафик


3-1142487231
alex_pv2
2006-03-16 08:33
2006.05.07
ИМПОРТ В ACCESS




   Наверх