[英]CreateProcess command line arguments
使用CreateProcess()
時出現一些問題。
在此示例中, CreateProcess()
可以正常工作:
bSuccess = CreateProcess(
TEXT("os-util.exe"),
TEXT("os-util.exe 0x273e:0x0007:0x0100 --get-channel"), NULL, NULL, TRUE,
0,
NULL, szFileName, &si, &pi);
問題是我想修改我通過的命令行。 我嘗試了一些解決方案,但是它們並沒有給我帶來任何好的結果。 例如:
LPWSTR cmdArgslistSetChannel[] = { TEXT("os-util.exe"), TEXT("0x273e:0x0007:0x0100"), TEXT("--set-channel"), TEXT("11") };
bSuccess = CreateProcess(
TEXT("os-util.exe"),
cmdArgslistSetChannel, NULL, NULL, TRUE,
0,
NULL, szFileName, &si, &pi);
我如何只更改TEXT("")
?
如何從多個TEXT("")
創建命令行?
如果這些選項都不可用,該怎么辦? 我希望UI按鈕按下以使用不同的命令行參數來調用CreateProcess()
。
使用std::wstring
和字符串連接來動態構建命令行,例如:
std::wstring cmdArgslistSetChannel = L"os-util.exe";
cmdArgslistSetChannel += L" 0x273e:0x0007:0x0100";
cmdArgslistSetChannel += L" --set-channel";
cmdArgslistSetChannel += L" 11";
bSuccess = CreateProcessW(
L"os-util.exe",
&cmdArgslistSetChannel[0],
NULL, NULL, TRUE, 0,
NULL, szFileName, &si, &pi);
或者,使用std::wostringstream
進行std::wostringstream
,然后從中檢索std::wstring
:
std::wostringstream cmdArgslistSetChannel;
cmdArgslistSetChannel << L"os-util.exe";
cmdArgslistSetChannel << L" " << L"0x273e:0x0007:0x0100";
cmdArgslistSetChannel << L" " << L"--set-channel";
cmdArgslistSetChannel << L" " << L"11";
std::wstring cmd = cmdArgslistSetChannel.str();
bSuccess = CreateProcessW(
L"os-util.exe",
&cmd[0],
NULL, NULL, TRUE, 0,
NULL, szFileName, &si, &pi);
無論哪種方式,都可以根據需要替換任何單個子字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.