|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как узнать запущен ли процесс excel.exe?
Мне надо узнать запущен ли процесс 'excel.exe'?
|
#2
|
|||
|
|||
|
#3
|
|||
|
|||
Function check(processname:string):boolean;
var snapWORD; 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. |