上班一个星期了。今天把刚在工作中解决的小问题总结一下。在c++中如何调用外边程序呢?
如下面的一个要求:reg.exe调用参数把REG文件导入到系统中?
对于这个问题,我的想法是用CreateProcess()方法去创建一个进程。如打开C:/Windows/system32/reg.exe应用程序,
现在解释一下他的各个参数的具体含义:
STARTUPINFO sui;
PROCESS_INFORMATION pi;
ZeroMemory(&sui,sizeof(STARTUPINFO));
sui.cb=sizeof(STARTUPINFO);
sui.dwFlags=STARTF_USESTDHANDLES;
sui.hStdInput=hRead;
sui.hStdOutput=hWrite;
sui.hStdError=GetStdHandle(STD_ERROR_HANDLE);
CreateProcess(TEXT("C://WINDOWS//system32//reg.exe"),TEXT("REG IMPORT c://Registry.reg"),NULL,NULL,TRUE,0,NULL,NULL,&sui,&pi)
第一个参数:是所需要倒开的进程的具体路径。
第二个参数是:如我要打开注册表应用程序,导入相应的注册表,则需要用到reg import这个语法然后后面跟需要导入的注册表的路径(c://Registry.reg).
第三个和第四个参数设置为NULL代表让系统为两个对象赋予默认的安全描述符.
第五个参数设置为TRUE说明让子进程继承附父进程所创建的管道的读写句柄。