关于DELPHI中检测指定进程的问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 09:32:00
下面的一段代码中是找到系统中的所有进程,然后检测是否有自己感兴趣的进程存在,我看不明白的是一直没有看到其中有“感兴趣”的进程的变量,那怎么会对比检测出来是否存在呢,请各位大虾指教!(声明,下面这段代码是没有问题的,正在正常使用,小第看不明白)
ction FindProc(ProcName: string): boolean; //找进程是否有**进程
var
OK: Bool;
hPL, hML: THandle;
ProcessStruct: TProcessEntry32;
ModuleStruct: TModuleEntry32;
begin
Result := False;
hPL := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0); //创建当前内存的一个快照,将返回的句柄传递给Process32First
//再用OpenProcess打开这个进程,从而获得该进程的进程句柄。最后,利用这个句柄,使用ReadProcessMemory
ProcessStruct.dwSize := SizeOf(TProcessEntry32);
OK := Process32First(hPL, ProcessStruct);
while OK do
begin
if UpperCase(ProcessStruct.szExeFile) = UpperCase(ProcName) then //查看进程名是不是某个感兴趣的进程
begin
Result := True;
// find path info
hML := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessStruct.th32ProcessID);
ModuleStruct.dwSize := SizeOf(TModuleEntry3

所谓的感兴趣的进程,仅仅是指定了一个进程名
通过函数传入该名称,然后用进程快照去比较罢了
if UpperCase(ProcessStruct.szExeFile) = UpperCase(ProcName) then
这句代码已经比较了从快照中取出的进程名与你感兴趣的进程名
如果相同,则快照中的进程中你感兴趣的

也许你看不懂的是进程入口之类的东西,那些都是由API决定的
你记下就行