0

问题是,当我使用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 的事情有关,但我不确定从那里去哪里。

谢谢。

4

1 回答 1

1

您可以cmd.exe使用/K参数运行它以强制 DOS 窗口保持打开状态,例如:

cmd.exe /K nc.exe localhost 4444
于 2012-12-09T09:41:58.780 回答