我对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,&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做到这一点吗?