V
VaStars
Unregistered / Unconfirmed
GUEST, unregistred user!
[]<br>这是个查询运行中进行的函数,在98、2000下运行正常,但在NT4下就不行了。从跟踪的结果看,好像无法获得进程的信息,求助各位大虾了。<br>FileName是指在内存中查询同FileName的系统进程。<br>Function TFrm_Main.LookForProcess(var FileName:String;processInfo):Integer;<br>var<br> ok :Bool;<br> ProcessListHandle :Thandle; //进程的列表句柄<br> ProcessStruct :TProcessEntry32; //进程的结构,进程的信息<br> Flag :Integer;<br>begin<br> //利用CreateToolhelp32Snapshot 函数得到进程列表的句柄<br> ProcessListHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);<br> ProcessStruct.dwSize := Sizeof(ProcessStruct);<br> ok :=Process32First(ProcessListHandle,ProcessStruct); //得到第一个进程<br> Flag := 0;<br> while integer(ok) <> 0 do<br> begin<br> If Trim(ProcessStruct.szExeFile) = Trim(FileName) then //发现进程<br> begin<br> p.ProcessID:=ProcessStruct.th32ProcessId;<br> Flag :=1;<br> Break;<br> end<br> Else ok :=Process32Next(ProcessListHandle,ProcessStruct); //寻找下一个进程<br> end;<br> LookForProcess := Flag;<br>end;