如何得知系统正在运行的程序,又怎样去关闭?

Benjamin 2000-04-07 07:04:00
怎样在自己的程序里监视第三方程序的运行呢?又怎样去关闭它们?
...全文
163 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yangyang 2000-04-07
  • 打赏
  • 举报
回复
PList := TList.Create;
PList.Clear;
//得到进程列表的句柄
ProcessListHandle := CreateToolHelp32Snapshot(TH32CS_SNAPPROCES,0);
ProcessStruct.dwSize := Sizeof(ProcessStruct);
//得到第一个进程
ok := Process32First(ProcessListHandle,ProcessStruct);
while ok do
begin
New(p);
p.ExeFile := ProcessStruct..szExeFile;//进程名
p.ProcessID := processStruct.th32ProcessID;
PList.Add(p);
ok := Process32Next(ProcesslistHandle,ProcessStruct);
end;
//---------关闭进程
h := OpenProcess(PROCESS_ALL_ACCESS,True,p.ProcessID);
//得到进程的退出代码,存入a中
GetExitCodeProcess(h,a);
if TerminateProcess(h,a) then //关闭进程
begin
ListBox1.Clear;
FormCreate(Self); //如果关闭成功,刷新列表
end;
AcherMagic 2000-04-07
  • 打赏
  • 举报
回复
可以查找系统中所有的进程
所用的函数
win9X: CreateToolhelp32Snapshot//取得Handle
Process32First
Process32Next
WINNT: I DON'T KNOW
找完所有进程
结束进程:OpenProcess
TerminateProcess
但是有些进程杀不了

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧