Delphi获取系统当前进程名和进程ID

该日志由 samool 发表于 2007-10-22 9:52 AM

获取系统当前进程名和进程ID,注意在编写本单元时,应注意引用"TLHelp32"单元"use TLHelp32".

delphi代码
  1. procedure TForm1.Button1Click(Sender: TObject);   
  2. var  
  3.   ProcessName : string//进程名   
  4.   ProcessID  : integer//进程表示符   
  5.   i : integer;   
  6.   ContinueLoop:BOOL;   
  7.   FSnapshotHandle:THandle; //进程快照句柄   
  8.   FProcessEntry32:TProcessEntry32; //进程入口的结构体信息   
  9. begin  
  10.   FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); //创建一个进程快照   
  11.   FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);   
  12.   ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32); //得到系统中第一个进程   
  13.   //循环例举   
  14.   while ContinueLoop  do  
  15.   begin  
  16.     ProcessName := FProcessEntry32.szExeFile;   
  17.     ProcessID := FProcessEntry32.th32ProcessID;   
  18.     Listbox.Items.add('应用程序名 :'+ProcessName +'#进程ID:'+ inttostr(ProcessID));   
  19.     ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);   
  20.   end;   
  21. end;  

图片附件(缩略图):
fek}k2iwo2$38p8atn}wvp4.jpg

大小: 61.72 K
尺寸: 380 x 336
浏览: 9 次
点击打开新窗口浏览全图

该日志标签: 系统, 进程名, 进程id, 进程, tlhelp32

WinExecAndWait32调用外部程序,等待外部程序运行完成

该日志由 samool 发表于 2007-10-22 9:45 AM

 调用外部程序,等待外部程序运行完成,相当于Showmodal功能,呵呵

delphi代码
  1. function WinExecAndWait32(FileName: string; Visibility: Boolean): integer;   
  2. var  
  3.   zAppName: array[0..512of char//存放应用程序名   
  4.   StartupInfo: TStartupInfo;   
  5.   ProcessInfo: TProcessInformation;   
  6.   exitCode: Dword;   
  7.   aVisibility: integer;   
  8. begin  
  9.   StrPCopy(zAppName, FileName);   
  10.   FillChar(StartupInfo, Sizeof(StartupInfo), #0);   
  11.   //给StartupInfo结构体赋值   
  12.   StartupInfo.cb := Sizeof(StartupInfo);   
  13.   StartupInfo.dwFlags := STARTF_USESHOWWINDOW;   
  14.   if Visibility then  
  15.     aVisibility := 1  
  16.   else  
  17.     aVisibility := 0;   
  18.   
  19.   StartupInfo.wShowWindow := aVisibility;   
  20.   //调用CreateProcess 创建进程,执行指定的可执行文件   
  21.   if not CreateProcess(nil, zAppName, nilnilfalse  
  22.     , CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS   
  23.     , nilnil, StartupInfo, ProcessInfo) then  
  24.     Result := -1  
  25.   else  
  26.   begin  
  27.     //等待可执行文件退出   
  28.     WaitforSingleObject(ProcessInfo.hProcess, INFINITE);   
  29.     //得到进程终止状态码   
  30.     GetExitCodeProcess(ProcessInfo.hProcess, exitCode);   
  31.     result := Exitcode;   
  32.   end;   
  33. end;  

该日志标签: 函数, 程序, 进程, 运行, winexec

Delphi强制结束进程

该日志由 samool 发表于 2006-06-08 10:55 PM

   //提高权限
   EnableDebugPrivilege;
   //结束进程
   KillTask('svchost.exe');

» 阅读该日志全文...

该日志标签: 进程