windwos中的进程

来源:互联网 发布:丅VB欢乐今宵主题曲 编辑:程序博客网 时间:2024/04/29 02:00
进程
  进程 就是一个容器,该容器是程序
  
  进程的主线程开始意味着程序执行.
  
进程的特点
   每个进程都有ID号
   每个进程都有自己的地址空间
获取进程信息
   GetCurrentProcessId - 获取当前进程的ID
   GetCurrentProcess - 获取当前进程的句柄,(获取的是一个伪句柄)
进程环境信息
   1. 环境信息
   void* GetEnviormentStrings();  返回进程信息.
   2. 释放
   FreeEnvironmentStrings();  // 释放进程信息
环境变量
   1.设置(增加)环境
     SetEnvironmentVariable(
Name,   //环境变量名
Value,  // 环境变量值
)
   2. 获取环境变量的值
     DWORD GetEnvironmentVariable(
 
  LPWSTR lpName,  // 环境变量名
  LPTSTR lpBuffer,  // 接收环境变量的值
  DWORD nSize    // buff的大小
  
)
创建进程
   CreateProcess() - 目前主推 类似于linux C 中的 vfork+exec
   
   
   BOOL CreateProcess(
  LPCTSTR lpApplicationName,                 // 应用程序路径
  LPTSTR lpCommandLine,                      // 命令行
  LPSECURITY_ATTRIBUTES lpProcessAttributes, // 进程安全属性
  LPSECURITY_ATTRIBUTES lpThreadAttributes,  // 线程安全属性
  BOOL bInheritHandles,                      // 继承标识
  DWORD dwCreationFlags,                     // 创建方式
  LPVOID lpEnvironment,                      // 环境信息
  LPCTSTR lpCurrentDirectory,                // 当前目录
  LPSTARTUPINFO lpStartupInfo,               // 起始信息
  LPPROCESS_INFORMATION lpProcessInformation // 进程信息
  );
  
结束进程
   void ExitProcess(UINT uExitCode) // 
   BOOL TerminateProcess(
    HANDLE hProcess, // handle to the process.
UINT uExitCode  // exit code for the process.
   )
进程间的等候
  
    DWORD WaitForSingleObject(
 HANDLE hHandle,  // 句柄
 DWORD dwMilliseconds // 等候时间
);
该函数为阻塞函数,等候句柄的信号,只在句柄有信号或超出等候时间,才会结束等候,
进程执行期间进程句柄无信号,结束时进程句柄无信号.
如果dwMillseconds是INFINTE则一直等待该hAndle有信号

 
0 0