У меня проблема с CreateProcess. Я создал следующий исходный код:
STARTUPINFOA si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
CreateProcessA(nullptr,
"plink.exe -telnet -P 9999 192.168.230.75 < C:\\Users\\Mahre\\Scripts\\Telenet_Script.txt",
nullptr,//security
nullptr,// security
FALSE,//inherits handles
0,
nullptr,
nullptr,
&si,
&pi);
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
Проблема в том, что CreateProcess выполняет команду только пополам. Команда plink.exe -telnet -P 9999 192.168.230.75
выполнена, но CreateProcess игнорирует эту часть < C:\\Users\\Mahre\\Scripts\\Telenet_Script.txt
. Я почти уверен, что это знак «меньше».
Со злом system()
он работает очень хорошо и выполнил полную команду:
system("plink.exe -telnet -P 9999 192.168.230.75 < C:\\Users\\Mahre\\Scripts\\Telenet_Script.txt");
Может кто-нибудь объяснить мне, какЯ могу сделать это с помощью CreateProcess?