本实例介绍如何列举系统中正在运行的进程。
![]()
向窗体上添加一个TListBox组件和一个TButton组件,设计完成的主界面如图4-27所示。

图4-27 主界面
![]()
首先需要向程序的uses段中加入TLHelp32,并且添加TList类型的变量lstProgress,然后再自定义一个记录类型:
type
TProcessInfo = Record
ExeFile : String;
ProcessID : DWORD;
end;
pProcessInfo = ^TProcessInfo;
这样,在程序设计过程中就可以使用pProcessInfo来定义指针变量了。
还需要向程序中添加一个自定义过程ViewProgress,该过程没有参数,它的作用就是显示系统中正在运行的进程,当用户需要刷新显示时,也可以调用该过程。ViewProgress过程的内容代码如下:
procedure TfrmMain.ViewProgress;
var
PI:pProcessInfo;
ContinueLoop:BOOL;
FSnapshotHandle:THandle;
FProcessEntry32:TProcessEntry32;
I:Integer;
begin
ListBox1.Items.Clear;
lstProgress.Clear;
FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop)<>0 do
begin
New(PI);
PI.ExeFile := FProcessEntry32.szExeFile;
PI.ProcessID := FProcessEntry32.th32ProcessID;
lstProgress.Add(PI);
ListBox1.Items.Add(PI.ExeFile);
ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
在程序运行的初期或单击Refresh按钮时,就会调用ViewProgress过程。首先清空列表框中显示的内容和全局变量lstProgress中存储的进程列表。然后创建一个THandle类型的变量FSnapshotHandle。最后通过调用Process32First 和Process32Next 函数就可以遍历当前系统中运行的进程了。
| Visual C++编程窃取QQ密码 | 12-08 | |
| 编程实现重起网卡等设备 | 12-07 | |
| 一个邮件群发的Delphi代码! | 12-06 | |
| Delphi下Internet的编程技巧 | 11-20 | |
| Delphi黑客编程-如何映射虚拟盘 | 11-15 | |
| 用DETOURS库获取NT管理员权限 | 11-08 | |
| 一篇关于vb代码质量提高的文章 | 10-30 | |
| 解析Asp.net木马文件操作 | 10-04 | |
| 盗QQ源码 | 10-01 | |
| 如何映射肉鸡磁盘(Delphi黑客编程 | 09-24 | |
| 打造无DLL版穿墙Downloader(Delp | 09-22 | |
| 调用指定的Windows程序(Delphi编 | 09-19 | |