Форум: "Система";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];
ВнизЗакрытие процесса Найти похожие ветки
← →
xman (2003-04-28 21:12) [0]Как закрыть нужный мне процесс, если я знаю только его имя?
пытался это осуществить через terminateprocess(handle,exitcode);
как тогда узнать handle процесса если есть только имя?
У меня в проге все процессы и длл показуются listbox"e в порядке их запуска.
← →
Guerrillero (2003-04-29 00:39) [1]а как заполняешь listbox ?
← →
xman (2003-04-29 13:43) [2]Я не помню. Вроде бы через какой-то enum*
короче выдает список процессов в порядке запуска и полным путем
← →
xman (2003-04-30 10:50) [3]как закрыть процесс зная его только путь.
выводил я процессы в listbox так:
pe.dwSize:=SizeOf(pe);
hSnap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
If Process32First(hSnap,pe) then begin
listbox1.Items.Add(pe.szExeFile);
While Process32Next(hSnap,pe) do listbox1.Items.Add (pe.szExeFile);
end;
form1.Label1.Caption:=form1.listbox1.Items.Strings[0];
HELP!
← →
Guerrillero (2003-04-30 13:40) [4]не самый лучший способ, но работает:
1) Заполняешь:
var
PE: TProcessEntry32;
hSnap: THandle;
begin
ListBox1.Items.Clear;
PE.dwSize := SizeOf(TProcessEntry32);
hSnap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if hSnap = -1 then RaiseLastWin32Error;
if Process32First(hSnap,PE) then
begin
Listbox1.Items.AddObject(PE.szExeFile,TObject(PE.th32ProcessID));
while Process32Next(hSnap,PE) do
Listbox1.Items.AddObject(PE.szExeFile,TObject(PE.th32ProcessID));
end;
CloseHandle(hSnap);
2) закрыть процесс:
function TForm1.TerminateProcessEx(const AItemIndex: Integer): Boolean;
var
ID: Cardinal;
hProcess: THandle;
begin
Result := False;
ID := Cardinal(ListBox1.Items.Objects[AItemIndex]);
hProcess := OpenProcess(PROCESS_TERMINATE,FALSE,ID);
if hProcess = 0 then RaiseLastWin32Error;
Result := TerminateProcess(hProcess,0);
CloseHandle(hProcess);
end;
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c