Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.09;
Скачать: 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 вся ветка

Текущий архив: 2003.06.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
1-26444
Frist_May
2003-05-29 09:34
2003.06.09
Десктоп...


1-26514
alexdbases
2003-05-30 10:37
2003.06.09
Приложение с о встроеной XPThemes


14-26773
Wonder
2003-05-23 12:40
2003.06.09
Может перейдем на другой язык? :)


7-26818
mike-d
2003-04-05 15:30
2003.06.09
режим stand-by монитора


3-26389
Маша
2003-05-21 10:59
2003.06.09
Не обновляется поле в базе