使用PSAPI获取进程信息,首先要调用EnumProcesses(  )函数,其声明如下:  
function  EnumProcesses(lpidProcess:LPDWORD;cb:DWORD;  
                                               var  cbNeeded:DWORD)BOOL  
•  lpidProcess是一个指向DWORD数组的指针,由函数用进程ID填充。  
•  cb包含由lpidProcess指定的数组的元素数。  
•  cbNeeded返回拷贝到lpidProcess数组的实际字节数。用此值除以SizeOf(DWORD)将得到拷贝到  
数组的元素数,即正在运行的进程数。  
调用这个函数后,  lpidProcess指定的数组将包含一些进程的ID。进程ID在自身进程中无用,但可  
以传递给OpenProcess()  API函数以获取进程的句柄。一旦拥有一个进程句柄,就可以调用针对进程句  
柄的其他PSAPI函数,甚至其他Win32  API函数。  
 
procedure  TWinNTInfo.Refresh;  
var  
     Count:DWORD;  
     BigArray[0..$3fff-1]  of  DWORD;  
begin  
//获取进程ID数组  
   if  not  EnumProcesses(@BigArray,SizeOf(BigArray),Count)  
   then  raise  Exception.Create(SFailMessage);  
   SetLength(FProList,Count  div  SizeOf(DWORD));  
   Move(BigArray,FProList[0],Count);  
end;  
 
 
 这是书上说的,有点看不懂,EnumProcesses(@BigArray,SizeOf(BigArray),Count)中  
SizeOf(BigArray)应该返回的是字节数,但函数的定义要求接受数组的元素数,BigArray定义的是DWORD数组,如果按照上面这样传递参数是不是就出现了问题?除非DWORD是单字节的,但这是不可能的,DWORD是32位的,应该占4字节。