HanDs
管理员

[Delphi文章] 进程管理 



//////////////////////////////////////////////////////////////////////////////
//11.取得当前进程列表
//////////////////////////////////////////////////////////////////////////////
procedure ProcessList(Var pList:TList);
var p:ProcessInfo;
    ok:Bool;
    ProcessListHandle:THandle;
    ProcessStruct:TProcessEntry32;
begin
  pList:=TList.Create;
  pList.Clear;
  ProcessListHandle:=CreateToolHelp32SnapShot(TH32cs_SnapProcess,0);
  ProcessStruct.dwSize:=SizeOf(ProcessStruct);
  ok:=Process32First(ProcessListHandle,ProcessStruct);
  while integer(ok)<>0 do
  begin
    New(p);
    p.ExeFile:=ProcessStruct.szExeFile;
    p.ProcessID:=ProcessStruct.th32ProcessID;
    pList.Add(p);
    ok:=Process32Next(ProcessListHandle,ProcessStruct);
  end;
 // dispose(p);  //释放内存
end;


//////////////////////////////////////////////////////////////////////////////
//12.终止某一正在运行的进程
//////////////////////////////////////////////////////////////////////////////
procedure HideProcess(ProcessName:string);
var h:Thandle;
    a:Dword;
    p:ProcessInfo;
    i:integer;
    Current:TList;
begin
  ProcessList(current);
  for i:=0 to current.Count-1 do
  begin
    p:=Current.Items[i];
    if ansiuppercase(p.ExeFile)=ansiuppercase(ProcessName) then
    begin
      h:=OpenProcess(Process_All_Access,true,p.ProcessID);
      GetExitCodeProcess(h,a);
      TerminateProcess(h,a);
    end;
  end;
end;



//////////////////////////////////////////////////////////////////////////////
//8.将鼠标锁定在某一区域
//////////////////////////////////////////////////////////////////////////////
procedure LockedMouse(Rect: TRect;Bz:Bool);
var
  Temp:integer;
  Rect1:Trect;
begin
  if Bz=true then
  begin
    rect1.Left:=rect.Left;
    Rect1.Top:=rect.Top;
    Rect1.Bottom:=rect.Bottom;
    Rect1.Right:=rect.Right;
  end
  else
  begin
    rect1.Left:=0;
    Rect1.Top:=0;
    Rect1.Bottom:=screen.DesktopHeight;
    Rect1.Right:=Screen.DesktopWidth;
  end;
  ClipCursor(@rect1);
  SystemParametersInfo(spi_screensaverrunning,1,@temp,0);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  CloseBz:=false;
  Thidekeys1:=Thidekeys.Create(false);
   //屏蔽alt_f4键
  Form1.HotKeyId := GlobalAddAtom('HotKey') - $C000;
  RegisterHotKey(Handle, form1.hotkeyid, Mod_Alt,vk_f4);

  form1.HotKeyId := GlobalAddAtom('HotKey1') - $C000;
  RegisterHotKey(Handle, form1.hotkeyid, Mod_Alt,vk_tab);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Thidekeys1.Terminate;
winexec('explorer.exe',SW_show);
end;


学习中请遵守法律法规,本网站内容均来自于互联网,本网站不负担法律责任
进程 管理
#1楼
发帖时间:2016-7-9   |   查看数:0   |   回复数:0
游客组
快速回复