CreateProcess 没有按应有的方式运行应用程序(nc.exe)?

标签 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 相关,但我不确定从哪里开始。

谢谢。

最佳答案

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

cmd.exe /K nc.exe localhost 4444

关于CreateProcess 没有按应有的方式运行应用程序(nc.exe)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13786002/

相关文章:

delphi - GetModuleFileNameEx 线程 ID?

使用 PROC_THREAD_ATTRIBUTE_PREFERRED_NODE 或 PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY 时的 CreateProcess 问题

c++ - 如何在 Windows 中不显示 cmd 窗口的情况下运行带有参数的外部程序?

java - C++中的内存映射文件用Java读取

winapi - Win32 : Is there a replacement GDI32. 使用硬件加速的dll?

winapi - GetCommandLine() 中缺少进程名称

c - 当给变量赋值以及从标准输入扫描它时,内部会发生什么?

c - 使用没有netcat的dup2通过套接字将shell从客户端重定向到服务器

c - 如何用 C 语言从文件中获取一些值并将其存储到数组中

c - 一个线程读取和另一个写入 volatile 变量 - 线程安全?