Вниз
Скачать: CL | DM;

Вопрос: Как убить процесс?   Найти похожие ветки 

← →
Yanis ©   (2003-05-28 21:34) [0]

Мне известно имя процесса(по Диспечеру задач), процесс невидимый.
Собственно сам вопрос: Как убить этот самый процесс(убивать нада приблизительно раз в 2 минуты), у которого мне известно только имя?
Буду признателен всем кто примет любое участие в данном топике. Спасибо.


← →
Holy ©   (2003-05-28 21:50) [1]

TerminateProcess() по-моему...., но сначала получить список процессов.


← →
jack128 ©   (2003-05-28 21:56) [2]

procedure TForm1.Button1Click(Sender: TObject);
var th : THandle;
pi : TProcessENTRY32;
ph : THAndle;
begin
th := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
pi.dwSize := SizeOf(pi);
if (th <> invalid_handle_value) and Process32First(th,pi) then begin
repeat
if pi.szExeFile = <твое имя> then
begin
ph := OpenProcess(PROCESS_TERMINATE,false,pi.th32ProcessID);
if ph <> INVALID_HANDLE_VALUE then
begin
TerminateProcess(ph,0);
CloseHandle(ph) ;
end;
Break;
end;
until not Process32Next(th,pi);
CloseHandle(th);
end;
end;


← →
Yanis ©   (2003-05-28 21:58) [3]

А где про эту функцию написано? В WinXP не получается получить список всех процессов, т.е. скрытые не видно, как получить список всех процессов, а потом убить нужный?


← →
Holy ©   (2003-05-28 22:02) [4]

msdn.microsoft.com но можно и MAPI от делфей.


← →
default ©   (2003-05-28 22:11) [5]

см. раздел Tool Help Functions файла 95GUIDE.HLP
он в поставку Delphi входит
там про это всё написано


← →
Yanis ©   (2003-05-29 09:15) [6]

To jack128 ©

var th : THandle;_________________________________?
pi : TProcessENTRY32;__________________________?
ph : THAndle;__________________________________?

CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);_______?


← →
DVM ©   (2003-05-29 09:34) [7]

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/terminateprocess.asp


← →
Yanis ©   (2003-05-29 13:13) [8]

Спасибо большое всем кто хотя бы пытался мне помочь!!!!!!!!!!!!!
Я нашел решение проблемы убить процесс зная только его имя(которое можно посмотреть в Диспечере задач), если кому интересно вот код:

unit UProcessKiller;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,Tlhelp32,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
function KillTask(ExeFileName: string): integer;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

{ TForm1 }

function TForm1.KillTask(ExeFileName: string): integer;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result := 0;

FSnapshotHandle := CreateToolhelp32Snapshot
(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,
FProcessEntry32);

while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess(
PROCESS_TERMINATE, BOOL(0),
FProcessEntry32.th32ProcessID), 0));
ContinueLoop := Process32Next(FSnapshotHandle,
FProcessEntry32);
end;

CloseHandle(FSnapshotHandle);

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.KillTask("NOTEPAD.EXE");
end;

end.




Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.012 c
7-26817
Seb_Kost
2003-04-08 06:36
2003.06.09
Как очистить буфер порта в Async


4-26841
akvilon
2003-04-11 16:06
2003.06.09
когда загрузилось приложение


1-26519
anod
2003-05-30 05:15
2003.06.09
Как создать новый класс?


1-26493
Avreliy
2003-05-29 18:24
2003.06.09
LowerCase для работы с кириллицей.


14-26650
ZoomerSahs
2003-05-13 23:38
2003.06.09
Зацените офигительну демку.




   Наверх