旅途

如果想飞得高,就该把地平线忘掉

CreateProcess使用心得

1、我们用CreateProcess执行一个外部程序时,怎样才能得到这个程序的输入输出呢?CreateProcess已经替我们准备好了,在CreateProcess的STARTUPINFO参数里有这样几个hStdInput、hStdOutput、hStdError东东,用来为创建的进程指定输入输出,例如用CreateFile创建一个文件,接着把得到的文件句柄指定给hStdOutput,并且把dwFlags的值设为USESTDHANDLES,这样外部程序的输出就会输到这个文件里。注意:CreateFile的SECURITY_ATTRIBUTES.bInheritHandle参数要设为TRUE。

?

2、在Create系列函数中通常都会有一个叫SECURITY_ATTRIBUTES的参数,

 SECURITY_ATTRIBUTES sa;

  sa.nLength = sizeof(SECURITY_ATTRIBUTES);

  sa.lpSecurityDescriptor = NULL;

 sa.bInheritHandle = TRUE;

 如果把bInheritHandle的值设为TRUE,意思就是它所创建出来的东西是可以被其他的子进程使用的,例如用CreatePipe创建的管道可以用在CreateProcess创建的进程中。


3、用CreateProcess创建子进程时通过lpCurrentDirectory参数指定子进程运行的路径。


posted on 2007-07-21 17:25 旅途 阅读(1026) 评论(0)  编辑 收藏 引用 所属分类: 深入windows


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理