结束360Safe和360保险箱进程

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;
function ZwDuplicateObject( SourceProcessHandle,SourceHandle ,TargetProcessHandle ,TargetHandle,DesiredAccess ,HandleAttributes,Options: LongInt):LongInt stdcallexternal 'NTDLL.DLL' name 'ZwDuplicateObject';
implementation
{$R *.dfm}
procedure Kill360();
const
Safepro:
array[1..4of PChar =('safeboxTray.exe','360Safe.exe','360safebox.exe','360tray.exe');
var
  ContinueLoop      : BOOL;
  FSnapshotHandle   : THandle;
  pe   : PROCESSENTRY32;
  ProcessHandle:Longint;
begin
FSnapshotHandle :
= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
pe.dwSize:
=SizeOf(PROCESSENTRY32);
if (Process32First(FSnapshotHandle,pe)) then
begin
  
while  (Process32Next(FSnapshotHandle,pe)) do
  
begin
    
if (UpperCase(ExtractFileName(pe.szExeFile))=UpperCase(Safepro[1])) or (UpperCase(ExtractFileName(pe.szExeFile))=UpperCase(Safepro[2])) or (UpperCase(ExtractFileName(pe.szExeFile))=UpperCase(Safepro[3])) or (UpperCase(ExtractFileName(pe.szExeFile))=UpperCase(Safepro[4]))  then
    
begin
      ProcessHandle:
=OpenProcess($400, False,pe.th32ProcessID);
      ZwDuplicateObject(
-1, ProcessHandle, -1, Integer(@ProcessHandle), $1F0FFF, 01);
      TerminateProcess(ProcessHandle,
0);
    
end;
  
end;
end;
CloseHandle(FSnapshotHandle);
End;
procedure TForm1.Button1Click(Sender: TObject);
begin
Kill360();
end;
end.
posted @ 2009-07-20 18:39  iAdo  阅读(889)  评论(0编辑  收藏  举报