两种取系统进程的方法

要在uses里加入PsAPI,PsAPI可以取得模块的带路径名,但对于system用户的进程有无法访问的错误返回。

先看代码:

 

上面的代码主要用到三个API函数,MSDN上的C++语法描述:

一、枚举系统中的进程,EnumProcesses,如果此函数返回0表示出错。

二、打开一个进程,OpenProcess,如果此数返回0表时打开进程出错,在Delphi中用SysErrorMessage(GetLastError)可以得到出错原因。

三、取进程的全路径名, GetModuleFileNameEx,如果此函数成功,返回往lpFileName中写了多少个字节,如果此函数返回0,表示出错。要注意的是,如果lpFilename不够大,名字会被载掉,所以,在调用此函数后,可比较一下此函数的返回值与nSize的大小,如果nSize大,说明lpFilename不够大,把lpFilename再设大一点,再次调用此函数就可以了。

四、枚举进程中的模块,EnumProcessModules,如果此函数失败,返回0。

第二种是在uses里加入TlHelp32,这里面的可以取得system用户的进程名,但只是名字,不带路径。

看看代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值