过程名:    EndProcess
  作者:      liubin
  日期:      2010-12-20
  参数:      AFileName
  功能描述: 结束进程 

  需要引用的单元use ShellAPI,TlHelp32 

  用法:ExtractFileName(Application.ExeName)
  返回值:    无
-------------------------------------------------------------------------------}
procedure EndProcess(AFileName: string);
const
  PROCESS_TERMINATE = $0001;
var
  ContinueLoop: BOOL;
  FSnapShotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
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(AFileName))
       or (UpperCase(FProcessEntry32.szExeFile ) = UpperCase(AFileName))) then
      TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0);
      ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  end;
end;

 

摘自 #Define