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參數指定子進程運行的路徑。