Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как отслеживать в Delphi существование процессоов? [D7, WinXP]


ArtAlex ©   (2003-08-18 20:59:00) 

как отслеживать в Delphi существование процессоов? тоесть мне надо,чтоб по завершению раюоты приложения, комп выключался. Как отследмит процесс существования этого приложения?


Дмитрий В. Белькевич   (2003-08-19 21:21:00) [1]

function IsRunning(sName: string): boolean;
var
han: THandle;
ProcStruct: PROCESSENTRY32; // from "tlhelp32" in uses clause
sID: string;
begin
Result := false;
// Get a snapshot of the system
han := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
if han = 0 then
exit;
// Loop thru the processes until we find it or hit the end
ProcStruct.dwSize := sizeof(PROCESSENTRY32);
if Process32First(han, ProcStruct) then
begin
repeat
sID := ExtractFileName(ProcStruct.szExeFile);
// Check only against the portion of the name supplied, ignoring case
if uppercase(copy(sId, 1, length(sName))) = uppercase(sName) then
begin
// Report we found it
Result := true;
Break;
end;
until not Process32Next(han, ProcStruct);
end;
// clean-up
CloseHandle(han);
end;


Дмитрий В. Белькевич   (2003-08-19 01:09:00) [2]

Если сам запускал, и есть хэндл - по нему. Если нет - перебирай все процессы. FindFirstProcess / FindNext etc. Сам не пользовал, но afair так.


Наверх

Титульная страница Поиск, карта сайта Написать письмо