宇宙中最强悍的关闭进程代码

时间:2010-01-30 08:19:38  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:Windows,SysUtils,Tlhelp32;function KillTask(ExeFileName: string): Integer;function EnableDebugPrivilege: Boolean;implementationfunction KillTask(ExeFileName: string): Integer;constPROCESS_TERMINATE = $0001;varContinueLoop: boolean;FSnapshotHandle: THandle;FProcessEntry32: TPr...
  正文:宇宙中最强悍的关闭进程代码:

unit Tlhelp323;

interface

uses
Windows,SysUtils,Tlhelp32;

function KillTask(ExeFileName: string): Integer;
function EnableDebugPrivilege: Boolean;

implementation

function KillTask(ExeFileName: string): Integer;
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: boolean;
FSnaphotoshop/ target=_blank class=infotextkey>pshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
  Result := 0;
  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(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
    UpperCase(ExeFileName))) then
    Result := Integer(TerminateProcess(
    OpenProcess(PROCESS_TERMINATE,
    BOOL(0),
    FProcessEntry32.th32ProcessID),
    0));
    ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  end;
  CloseHandle(FSnapshotHandle);
end;

//但是对于服务程序,它会提示"拒绝访问".其实只要程序拥有Debug权限即可:
function EnableDebugPrivilege: Boolean;
function EnablePrivilege(hToken: Cardinal; PrivName: string; bEnable: Boolean): Boolean;
var
TP: TOKEN_PRIVILEGES;
Dummy: Cardinal;
begin
  TP.PrivilegeCount := 1;
  LookupPrivilegeValue(nil, pchar(PrivName), TP.Privileges[0].Luid);
  if bEnable then
  TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
  else TP.Privileges[0].Attributes := 0;
  AdjustTokenPrivileges(hToken, False, TP, SizeOf(TP), nil, Dummy);
  Result := GetLastError = ERROR_SUCCESS;
end;
var
hToken: Cardinal;
begin
  OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
  result:=EnablePrivilege(hToken, 'SeDebugPrivilege', True);
  CloseHandle(hToken);
end;

end.

宇宙中最强悍的关闭进程代码》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/Delphi/12612.html


关键字:

关于《宇宙中最强悍的关闭进程代码》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td