我正在編寫一個包裝另一個進程的(Win32控制檯)程序;它需要的參數如下面的例子:將argv轉換回單個字符串
runas.exe user notepad foo.txt
即:runas
解析user
然後將運行記事本,使剩餘的參數。
我的問題是argv
被分解成各個參數,但CreateProcessAsUser
需要一個lpszCommandLine
參數。
構建這個命令行可能並不簡單,只需將空間加入argv
即可。任何指針?
這只是一個例子。我的第一個參數實際上不是用戶名,並且可能有空格。這使得手動解析的結果非常棘手。
同樣,argv
的天真級聯不起作用,因爲它需要處理原始參數被引用並且可能在其中包含空格的情況。
我會說「用空格加盟的argv一起回來」就可以了。是什麼讓你覺得不對? – 2009-06-10 11:30:14
Benoît,因爲它不適用於`runas.exe用戶記事本'foo bat.txt'`。 – avakar 2009-06-10 11:35:39
不要忘記引用任何包含空格的參數 – Hasturkun 2009-06-10 11:35:41