| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Кау убить процесс |
| Автор: Werti 14.9.2004, 20:41 |
| Помогите как убить процесс в диспечере задач. Только не посредством заголовка окна. |
| Автор: Alex 14.9.2004, 20:45 |
| Что именно тебе нужно завершить процесс или скрыть его из диспетчера задач? |
| Автор: Werti 14.9.2004, 20:47 |
| Именно завершить. И при этом не пользоваться ыункцией поиска заголовка окна для убития приложения. |
| Автор: p0s0l 14.9.2004, 20:49 | ||
Если знаешь имя .exe, то:
Если знаешь PID - то сразу OpenProcess + TerminateProcess |
| Автор: Werti 14.9.2004, 22:30 | ||||
Спасибо для новичков выложу компилированый код. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Tlhelp32; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); const PROCESS_TERMINATE=$0001; var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; s:integer; begin 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('iexplore.exe')) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase('iexplore.exe'))) then s:=Integer(TerminateProcess(OpenProcess( PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0)); ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; CloseHandle(FSnapshotHandle); end; end. |