问题是,当我使用上面代码中的 nc
语法从 CMD 打开 nc.exe 时,它可以工作并连接到我的服务器。但是当我通过我的程序(使用上面的代码)这样做时,它只是打开 nc.exe 窗口,但它不允许我运行命令,我只是得到一个空白的 CMD 窗口,没有任何提示。
PROCESS_INFORMATION pi;
STARTUPINFO si;
memset(&si, 0, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
TCHAR nc[] = TEXT("nc.exe localhost 4444");
CreateProcess(NULL, nc, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);
我是否应该使用CreateProcess
的任何其他参数,以使其正常工作(或者当我手动运行它时)?我想也许这个问题在某种程度上与 StdInput StdOutput 相关,但我不确定从哪里开始。
谢谢。
最佳答案
您可以通过 cmd.exe
运行它,并使用 /K 参数来强制 DOS 窗口保持打开状态,例如:
cmd.exe /K nc.exe localhost 4444
关于CreateProcess 没有按应有的方式运行应用程序(nc.exe)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13786002/