Вниз
Скачать: 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.032 c
14-26688
Malder
2003-05-25 13:15
2003.06.09
Что у меня с w2k ?


3-26394
Patrick
2003-05-21 14:02
2003.06.09
UpdateSQL в ADO?


7-26824
VR
2003-04-05 04:18
2003.06.09
CD-ROM


3-26344
HardClubber
2003-05-19 19:55
2003.06.09
Работа delphi и mysql вместе


1-26517
MegaVolt
2003-05-29 15:05
2003.06.09
Когда нужно исспользовать SetLength для строк?




   Наверх