опубликован 23-01-2002 10:11 MSK
Я так понял, окно ее ты видишь. Вот тебе код, когда стерминатишь, ищи где лежит сама и удаляй!!! Проще всего определить путь к EXE_шнику через ToolHelp(с ним разбирайся сам, мне лень это сейчас тебе писать).//------------------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ListView: TListView;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
m: array[0..255] of HWND;
I: Integer;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var hTmp: HWND;
wText: PChar;
begin
I := 0;
hTmp := FindWindow(nil, nil);
m[I] := hTmp;
with ListView.Items.Add do
begin
Caption := IntToStr(hTmp);
GetWindowText(hTmp, wText, 255);
SubItems.Add(wText);
end;
repeat
hTmp := GetNextWindow(hTmp, GW_HWNDNEXT);
m[I] := hTmp;
with ListView.Items.Add do
begin
Caption := IntToStr(hTmp);
GetWindowText(hTmp, wText, 255);
SubItems.Add(wText);
end;
until (hTmp = 0);
// Тут находишь окно этой проги
end;
procedure TForm1.Button2Click(Sender: TObject);
var hTmp: HWND;
ID: DWORD;
hPr: THandle;
begin
If ListView.SelCount = 0 then
Exit;
hTmp := StrToInt(ListView.Selected.Caption);
GetWindowThreadProcessID(hTmp, @ID);
hPr := OpenProcess(PROCESS_TERMINATE, False, ID);
TerminateProcess(hPr, 0);
end;
end.
//------------------------------------------
На форме - ListView c 2-мя колумсами и стилем vsReport.