0/5 (2 avis)
Vue 5 278 fois - Téléchargée 755 fois
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls,Tlhelp32; type TForm1 = class(TForm) Button1: TButton; ListView1: TListView; Button2: TButton; procedure Button1Click(Sender: TObject); procedure ListView1ColumnClick(Sender: TObject; Column: TListColumn); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.DFM} Function HexToInt(s:string):integer; var Num,k:integer; begin Num:=0; for k:=1 to length(s) do begin if (s[k]='F')or(s[k]='f') then Num:=Num*16+15; if (s[k]='E')or(s[k]='e') then Num:=Num*16+14; if (s[k]='D')or(s[k]='d') then Num:=Num*16+13; if (s[k]='C')or(s[k]='c') then Num:=Num*16+12; if (s[k]='B')or(s[k]='b') then Num:=Num*16+11; if (s[k]='A')or(s[k]='a') then Num:=Num*16+10; if (s[k]='9') then Num:=Num*16+9; if (s[k]='8') then Num:=Num*16+8; if (s[k]='7') then Num:=Num*16+7; if (s[k]='6') then Num:=Num*16+6; if (s[k]='5') then Num:=Num*16+5; if (s[k]='4') then Num:=Num*16+4; if (s[k]='3') then Num:=Num*16+3; if (s[k]='2') then Num:=Num*16+2; if (s[k]='1') then Num:=Num*16+1; if (s[k]='0') then Num:=Num*16+0; end; result:=Num; end; procedure TForm1.Button1Click(Sender: TObject); var i:integer;s:string;FSnapshotHandle:THandle; FProcessEntry32: TProcessEntry32; ContinueLoop:boolean; begin i:=1; ListView1.Items.Clear; FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := Sizeof(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32); while integer(ContinueLoop) <> 0 do begin s:=inttostr(i);ListView1.Items.Add.Caption:=s; s:=inttohex(FProcessEntry32.th32ProcessID,8); ListView1.Items.Item[ListView1.Items.Count-1].SubItems.Add(s); s:=FProcessEntry32.szExeFile; ListView1.Items.Item[ListView1.Items.Count-1].SubItems.Add(s); s:=inttohex(FProcessEntry32.cntThreads,4); ListView1.Items.Item[ListView1.Items.Count-1].SubItems.Add(s); s:=inttohex(FProcessEntry32.th32ParentProcessID,4); ListView1.Items.Item[ListView1.Items.Count-1].SubItems.Add(s); s:=inttohex(FProcessEntry32.pcPriClassBase,4); ListView1.Items.Item[ListView1.Items.Count-1].SubItems.Add(s); i:=i+1; ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32); end; CloseHandle(FSnapshotHandle); end; procedure treeparnum; begin // end; procedure treeparhandle; begin //form1.ListView1.Arrange(arAlignTop); end; procedure treeparname; begin //form1.ListView1.Arrange(arAlignTop); end; procedure treeparshow; begin //form1.ListView1.Arrange(arAlignTop); end; procedure TForm1.ListView1ColumnClick(Sender: TObject;Column: TListColumn); begin if Column.Index=0 then treeparnum else if Column.Index=1 then treeparhandle else if Column.Index=2 then treeparname else treeparshow; end; procedure TForm1.FormCreate(Sender: TObject); begin Button1Click(nil); end; procedure TForm1.Button2Click(Sender: TObject); var HProsses:THandle;ProssesID:DWord;ExitCodes:DWord; begin ProssesID:=hextoint(ListView1.Selected.SubItems[0]); HProsses:=openprocess(PROCESS_ALL_ACCESS,false,ProssesID); if not GetExitCodeProcess(HProsses,ExitCodes) then messagebox(handle,'Not ExitCode','ERROR',0); if (TerminateProcess(HProsses,ExitCodes)) then ListView1.Selected.Delete else messagebox(handle,'Not Termined','ERROR',0); end; end.
13 janv. 2008 à 18:34
en premier je dit: bon courage trés bien ce code et bonne continuation.
Une petite idé à vous proposer: si vous arriver à faire la distinction entre les fichiers chargés par le système et les autres chargés par l'utilisateur ca sera encore mieux.
11 déc. 2007 à 20:42
Sinon, tu devrais indenter plus ton code pour le rendre plus sympa à lire.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.