1、我們用CreateProcess執(zhí)行一個外部程序時,怎樣才能得到這個程序的輸入輸出呢?CreateProcess已經(jīng)替我們準備好了,在CreateProcess的STARTUPINFO參數(shù)里有這樣幾個hStdInput、hStdOutput、hStdError東東,用來為創(chuàng)建的進程指定輸入輸出,例如用CreateFile創(chuàng)建一個文件,接著把得到的文件句柄指定給hStdOutput,并且把dwFlags的值設(shè)為USESTDHANDLES,這樣外部程序的輸出就會輸?shù)竭@個文件里。注意:CreateFile的SECURITY_ATTRIBUTES.bInheritHandle參數(shù)要設(shè)為TRUE。
?
2、在Create系列函數(shù)中通常都會有一個叫SECURITY_ATTRIBUTES的參數(shù),
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
如果把bInheritHandle的值設(shè)為TRUE,意思就是它所創(chuàng)建出來的東西是可以被其他的子進程使用的,例如用CreatePipe創(chuàng)建的管道可以用在CreateProcess創(chuàng)建的進程中。
3、用CreateProcess創(chuàng)建子進程時通過lpCurrentDirectory參數(shù)指定子進程運行的路徑。