www.pudn.com > ProcessSpy.rar > define.pas


unit define; 
 
interface 
  uses 
    Windows; 
 
type 
    //进程有关的函数与结构 
 
    TProcessInfo = packed record 
      dwSize             : DWORD  ;     // 指定结构的大小, 
                                        // 在调用Process32First前需要设置,否则将会失败 
      cntUsage           : DWORD  ;     // 引用计数 
      th32ProcessID      : DWORD  ;     // 进程号 
      th32DefaultHeapID  : DWORD  ;     // 进程的堆号,只对Toolhelp函数有意义,并不是一个有效句柄 
      th32ModuleID       : DWORD  ;     // 进程的模块号,只对Toolhelp函数有意义,并不是一个有效句柄 
      cntThreads         : DWORD  ;     // 进程中包括的线程数 
      th32ParentProcessID: DWORD  ;     // 进程的母进程 
      pcPriClassBase     : Longint;     // 进程的线程的基优先级,所有此进程创建的线程将基于此优先级 
      dwFlags            : DWORD  ;     // 保留,没有使用 
      szExeFile: array[0..255] of Char; // 进程所对应的文件及路径 
    end; 
    //相关函数 
    //function Module32First(hSnapshot: THandle; var lpme: TModuleEntry32): BOOL; //同进程说明 
    //function Module32Next(hSnapshot: THandle; var lpme: TModuleEntry32): BOOL; 
 
    //模块有关的函数和结构 
 
    TModuleInfo = record 
      dwSize       : DWORD;             // 指定结构的大小, 
          	                        // 在调用Module32First前需要设置,否则将会失败 
      th32ModuleID : DWORD;             // 模块号 
      th32ProcessID: DWORD;             // 包含本模块的进程号 
      GlblcntUsage : DWORD;             // 本模块的全局引用计数 
      ProccntUsage : DWORD;             // 包含模块的进程上下文中的模块引用计数 
      modBaseAddr  : PBYTE;             // 模块基地址 
      modBaseSize  : DWORD;             // 模块大小(字节数) 
      hModule      : HMODULE;           // 包含模块的进程上下文中的hModule句柄 
                 	                // 注意:modBaseAddr 与 hModule 只在th32ProcessID的 
   		                        // 上下文才有效 
      ProcessId    :DWORD ; 
      szModule: array[0..255] of Char;  //模块名 
      szExePath: array[0..255] of Char; //模块对应的文件名和路径 
    end; 
 
    //相关函数 
    //function Module32First(hSnapshot: THandle; var lpme: TModuleEntry32): BOOL;  
    //function Module32Next(hSnapshot: THandle; var lpme: TModuleEntry32): BOOL; 
 
    //线程有关的函数和结构 
    TThreadInfo = record 
      dwSize            : DWORD;        // 指定结构的大小, 
                                        // 在调用Thread32First前需要设置,否则将会失败 
      cntUsage          : DWORD;        // 线程引用计数 
      th32ThreadID      : DWORD;        // 线程号 
      th32OwnerProcessID: DWORD;        // 拥有线程的进程号 
      tpBasePri         : Longint;      // 在线程创建时的初始优先级 
      tpDeltaPri        : Longint;      // 现在线程的优先级的相对于初始值的改变量 
      dwFlags           : DWORD;        // 保留,没有使用 
    end; 
    //相关函数 
    //function Thread32First(hSnapshot: THandle; var lpte: TThreadEntry32): BOOL; stdcall; 
    //function Thread32Next(hSnapshot: THandle; var lpte: TThreadENtry32): BOOL; stdcall; 
 
    //堆有关的函数和结构 
    THeapInfo = record 
      dwSize       : DWORD;             // 指定结构的大小, 
                                        // 在调用Heap32First前需要设置,否则将会失败 
      hHandle      : THandle;           // 堆的句柄 
      dwAddress    : DWORD;             // 堆起始位置的线性地址 
      dwBlockSize  : DWORD;             // 堆的大小(字节数) 
      dwFlags      : DWORD;             // 标志,为以下值 
                                            // LF32_FIXED 堆内存块的位置是固定的 
                                            // LF32_FREE 堆内存块没有使用 
                                            // LF32_MOVEABLE 堆内存块的位置是可移动的 
      dwLockCount  : DWORD;                 // 堆的锁定计数,每次对堆的执行GlobalLock 
                                            // 或者LocalLock都将使它增1 
      dwResvd      : DWORD;             // 保留,没有使用 
      th32ProcessID: DWORD;             // 拥有本堆的进程号, 
                                        // 这个ID是可以被其他WIN32 API使用的。 
      th32HeapID   : DWORD;             // 堆号,只能在ToolHelp API中内部使用, 
                                        // 并不是有效的句柄 
    end; 
    //相关函数 
    //function Heap32First(var lphe: THeapEntry32; th32ProcessID, th32HeapID: DWORD): BOOL; 
    //function Heap32Next(var lphe: THeapEntry32): BOOL; 
 
implementation 
 
end.