![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Мне надо узнать запущен ли процесс 'excel.exe'?
|
|
#2
|
|||
|
|||
|
|
|
#3
|
|||
|
|||
|
Function check(processname:string):boolean;
var snap WORD;pe:TprocessEntry32; begin result:=false; snap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if snap <>INVALID_HANDLE_VALUE then begin pe.dwSize:=sizeof(TPROCESSENTRY32); if process32First(snap,pe) then repeat if pe.szExeFile=processname then begin result:=true; break; end; until not process32Next(snap,pe); closehandle(snap); end; end; Не забываем добавлять модуль TlHelp32 Admin: Бан на 5 дней за несоблюдение правил форума по части оформления кода. Последний раз редактировалось Admin, 18.04.2008 в 10:27. |
|
#4
|
|||
|
|||
|
Я так сделал, но TlHelp32 не потребовала.
Мне кажется что внутри цикла(в сравнении) есть что то лишнее? а так вообще работает, просто интересно. Код:
function FindTask(ExeFileName:string):boolean;
const
PROCESS_TERMINATE=$0001;
var
Co:BOOL;
FS:THandle;
FP:TProcessEntry32;
begin
result:=false;
FS:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FP.dwSize:=Sizeof(FP);
Co:=Process32First(FS,FP);
while integer(Co) <> 0 do
begin
if ((UpperCase(ExtractFileName(FP.szExeFile))=UpperCase(ExeFileName)) or
(UpperCase(FP.szExeFile)=UpperCase(ExeFileName))) then
Result:=true;
Co:=Process32Next(FS,FP);
end;
CloseHandle(FS);
end;
Admin: Пользуемся тегами, иначе последуют санкции! Последний раз редактировалось Admin, 18.04.2008 в 10:20. |