![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как убить процесс, зная его Handle? [D6, Win95/98, WinXP]
KDenis © (2003-02-10 23:07:00)Как пользоватся функцией TerminateProcess, зная только Handle программы?
KDenis (2003-02-12 11:20:00) [1]Все работает, спасибо!
thanks! :)))))))))))))))))))))))))))))
jack128 (2003-02-11 23:52:00) [2]у тя в pe.th32ProcessID храниться id процесса
нужно его (процесс) открыть OpenProcess(...) - получишь хендл процесса
потом терминейтишь его TerminateProcess(...) и закрываешь хендл
CloseHandle(...)
KDenis (2003-02-11 22:09:00) [3]Меня кто-то слишит??????????????????????
KDenis (2003-02-11 18:24:00) [4]Заполняю так:
{$A-}
frmAddHandle.lbProcList.Clear;
pe.dwSize:=SizeOf(pe);
hSnap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
If Process32First(hSnap,pe) then begin
frmAddHandle.lbProcList.Items.Add(pe.szExeFile);
While Process32Next(hSnap,pe) do
frmAddHandle.lbProcList.Items.Add(pe.szExeFile);
end;
{$A+}
Что тут, где и к чему, не спрашивай, я не знаю. Просто нашел где-то в интернете, и подставил свои переменные
Игорь Шевченко (2003-02-11 17:36:00) [5]А как ты ListBox заполняешь и что у тебя там ?
KDenis (2003-02-11 17:29:00) [6]А как узнать этот handl зная строку?
Игорь Шевченко (2003-02-11 17:24:00) [7]Все не так. Handle это число, а не строка
KDenis (2003-02-11 16:41:00) [8]Воспользовался...
неработает!
Вот, допустем запущен у меня Excel, тогда я беру хедл этого процесса(EXCEL.EXE) и делаю следующее:
terminateProcess(cardinal(form1.lbPcocesses.Items[x]),0);
гдеform1.lbPcocesses- этоListBox, в котором список процессов, аx- номер строки.
Что тут нетак?
jack128 (2003-02-11 04:50:00) [9]у программы хендла нет.
если это хендл процесса,
то так и пользуйся TerminateProcess(hProcess,0)