CreateProcess創建的子進程的命令行參數
2006-10-17 08:13

CreateProcess 建的子 程所 得的命令行參數有以下幾 情況:

1 .子 程中, WinMain 函數的第三個參數 lpCmdLine 表示的命令行參數中除去 用程序路徑、文件名以及與參數相隔的空格等字符串后的內容。比如

程:

CreateProcess(NULL, “c:\\test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

程中, lpCmdLine 參數 -p, 注意沒有雙引號

?

2 .如果通 lpCmdLine 參數 看命令行參數, 建子 程的 候,需要在子程序和參數中加上空格號。比如:

程:

CreateProcess(“c:\\test.exe” “ -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

程中, lpCmdLine 參數 -p ,沒有空格了。

?

3 .如果想 得子 程的完整命令行參數, 調 GetCommandLine 函數。通常通 GetCommandLine 函數 得的命令行參數,是父 調 的完整參數。

CreateProcess(NULL, “c:\\test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

程中, GetCommandLine 返回的參數 c:\\test.exe -p, 注意沒有雙引號

?

以下情況都是 調 GetCommandLine 函數 得命令行參數

4 CreateProcess 第一個參數是 NULL ,第二個參數指定子 用程序和命令行參數,那 程的命令行參數是第二個參數,不 雙引號。比如:

程:

CreateProcess(NULL, “c:\\test.exe -p“, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

程中, GetCommandLine 得的命令行參數 c:\\test.exe -p

?

5 CreateProcess 第一個參數指定子 用程序路徑和文件名,第二個參數 NULL ,那 程的命令行參數是第一個參數, 雙引號。 比如:

程:

CreateProcess(“c:\\test.exe“, NULL ?NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

程中, GetCommandLine 得的命令行參數 ”c:\\test.exe“

?

6 CreateProcess 第一個參數指定子 用程序路徑和文件名,第二個參數 為傳遞給 程的參數,那 程的命令行參數是第二個參數,不 雙引號。比如:

程:

CreateProcess(“c:\\test.exe“, ”-p“ ?NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

程中, GetCommandLine 得的命令行參數 -p

注意同第二點比 ,如果用 lpCmdLine 看命令行參數,沒什 都沒有。但是將 ”-p” 改成 ” -p” ,用可以看到參數是 -p ,是不是很混亂?