参考一下吧
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids,tlhelp32, Buttons, rsWin32, DBGrids, rsdbgrid, ExtCtrls,
rsListbox, RzLstBox, RzChkLst, RzLabel, RzBHints;type
TForm1 = class(TForm)
rsSpeedButton1: TrsSpeedButton;
rsSpeedButton2: TrsSpeedButton;
RzCheckList1: TRzCheckList;
RzURLLabel1: TRzURLLabel;
RzURLLabel2: TRzURLLabel;
RzURLLabel3: TRzURLLabel;
RzBalloonHints1: TRzBalloonHints;
RzLabel1: TRzLabel;
RzLabel2: TRzLabel;
procedure Button1Click(Sender: TObject);
procedure rsSpeedButton2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;type
TProcessInfo = Record
ExeFile : String;
ProcessID : DWORD;
end;
pProcessInfo = ^TProcessInfo;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
var p:pProcessInfo;
ContinueLoop:BOOL;
FSnapshotHandle:THandle;
FProcessEntry32:TProcessEntry32;
begin
RzCheckList1.Clear;
try
begin
FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop)<>0 do
begin
New(p);
p.ExeFile := FProcessEntry32.szExeFile;
p.ProcessID := FProcessEntry32.th32ProcessID;
RzCheckList1.Add('['+inttostr(p.ProcessID)+']'+p.ExeFile); //add
ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
end;
end;
except
showmessage('都说了只能在98下搞的嘛!:)');
end;
end;//StringGrid1.Cells[0,2]:='0,2';
procedure TForm1.rsSpeedButton2Click(Sender: TObject);
var i,j:integer;
id:string;
handle1:Thandle;
begin
//RzCheckList1.SelectedItem
for i:=0 to RzCheckList1.Count-1 do
begin
if RzCheckList1.ItemChecked[i] then
begin
id:=Copy(RzCheckList1.Items.Strings[i],2,(Pos(']',RzCheckList1.Items.Strings[i])-2));
//showmessage(id);
handle1:=openprocess(PROCESS_ALL_ACCESS,True,strtoint64(id));
TerminateProcess(handle1,0);
end;
end;j:=0;
for i:=0 to RzCheckList1.Count-1 do
if RzCheckList1.ItemChecked[i-j] then
begin
RzCheckList1.Delete(i-j);
j:=j+1;
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Button1Click(Sender);
end;end.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids,tlhelp32, Buttons, rsWin32, DBGrids, rsdbgrid, ExtCtrls,
rsListbox, RzLstBox, RzChkLst, RzLabel, RzBHints;type
TForm1 = class(TForm)
rsSpeedButton1: TrsSpeedButton;
rsSpeedButton2: TrsSpeedButton;
RzCheckList1: TRzCheckList;
RzURLLabel1: TRzURLLabel;
RzURLLabel2: TRzURLLabel;
RzURLLabel3: TRzURLLabel;
RzBalloonHints1: TRzBalloonHints;
RzLabel1: TRzLabel;
RzLabel2: TRzLabel;
procedure Button1Click(Sender: TObject);
procedure rsSpeedButton2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;type
TProcessInfo = Record
ExeFile : String;
ProcessID : DWORD;
end;
pProcessInfo = ^TProcessInfo;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
var p:pProcessInfo;
ContinueLoop:BOOL;
FSnapshotHandle:THandle;
FProcessEntry32:TProcessEntry32;
begin
RzCheckList1.Clear;
try
begin
FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop)<>0 do
begin
New(p);
p.ExeFile := FProcessEntry32.szExeFile;
p.ProcessID := FProcessEntry32.th32ProcessID;
RzCheckList1.Add('['+inttostr(p.ProcessID)+']'+p.ExeFile); //add
ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
end;
end;
except
showmessage('都说了只能在98下搞的嘛!:)');
end;
end;//StringGrid1.Cells[0,2]:='0,2';
procedure TForm1.rsSpeedButton2Click(Sender: TObject);
var i,j:integer;
id:string;
handle1:Thandle;
begin
//RzCheckList1.SelectedItem
for i:=0 to RzCheckList1.Count-1 do
begin
if RzCheckList1.ItemChecked[i] then
begin
id:=Copy(RzCheckList1.Items.Strings[i],2,(Pos(']',RzCheckList1.Items.Strings[i])-2));
//showmessage(id);
handle1:=openprocess(PROCESS_ALL_ACCESS,True,strtoint64(id));
TerminateProcess(handle1,0);
end;
end;j:=0;
for i:=0 to RzCheckList1.Count-1 do
if RzCheckList1.ItemChecked[i-j] then
begin
RzCheckList1.Delete(i-j);
j:=j+1;
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Button1Click(Sender);
end;end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货