var  
  SI : TStartupInfo;  
  PI : TProcessInformation;  
  pid:DWORD;  
begin  
  ZeroMemory(@SI, SizeOf(SI));  
  //ZeroMemory宏用0来填充一块内存区域  SizeOf//Pascal的一种内存容量度量函数  
  ZeroMemory(@PI, SizeOf(PI));  
  SI.cb := SizeOf(SI);  
  if CreateProcess(nil,'d:/CALC.EXE', nil, nil, FALSE, 0 ,nil,nil, SI, PI) then  
   begin  
     Pid := pi.dwProcessId;  //获取打开文件的PID  
     ShowMessage(IntToStr(pid));//显示PID值  
     CloseHandle(PI.hProcess);  
     CloseHandle(PI.hThread);  
   end;  
end;