正在阅读:在一个程序中打开其它应用程序在一个程序中打开其它应用程序

2004-04-22 10:16 出处:CSDN 作者:eliner 责任编辑:linjixiong

  3、CreateProcess

  上面的几种方式都实现了我们在自己的应用程序中打开其他的应用程序的目的,但是,我们没有得到足够多的关于新的进程的信息,也没有使用过多的手段去控制新的进程的细节属性,所以,如果要达到这些目的,我们就需要使用CreateProcess函数了,首先看看这个函数的原型:

  BOOL CreateProcess(

  LPCTSTR lpApplicationName, //执行程序名

  LPTSTR lpCommandLine, // 参数行

  //下面两个参数描述了所创建的进程和线程的安全属性,如果为NULL则使用默认的安全属性
  LPSECURITY_ATTRIBUTES lpProcessAttributes, // process security attributes
  LPSECURITY_ATTRIBUTES lpThreadAttributes, // thread security attributes

  BOOL bInheritHandles, // 继承标志
  DWORD dwCreationFlags, // 创建标志
  LPVOID lpEnvironment, // 环境变量
  LPCTSTR lpCurrentDirectory, // 运行该进程的初始目录
  LPSTARTUPINFO lpStartupInfo, // 用于在创建子进程时设置各种属性
  LPPROCESS_INFORMATION lpProcessInformation //用于在进程创建后接受相关信息
  );

  在上面的参数中,使用了两个比较重要的数据结构:STARTUPINFO和PROCESS_INFORMATION。这两个结构的定义分别如下:

  typedef struct _STARTUPINFO { // si
  DWORD cb; //结构长度
  LPTSTR lpReserved; //保留
  LPTSTR lpDesktop; //保留
  LPTSTR lpTitle; //如果为控制台进程则为显示的标题
  DWORD dwX; //窗口横坐标
  DWORD dwY; //窗口丛坐标
  DWORD dwXSize; //窗口宽度
  DWORD dwYSize; //窗口高度
  DWORD dwXCountChars; //控制台窗口字符号宽度
  DWORD dwYCountChars; //控制台窗口字符号高度
  DWORD dwFillAttribute; //控制台窗口填充模式
  DWORD dwFlags; //创建标记
  WORD wShowWindow; //窗口显示标记,如同ShowWindow中的标记



察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品