CreateProcess不应该运行应用程序(nc.exe)吗?

时间:2012-12-09 08:54:12

标签: c winapi createprocess netcat

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

感谢。

1 个答案:

答案 0 :(得分:1)

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

cmd.exe /K nc.exe localhost 4444