【问题标题】:Programmatically using CMD in C在 C 中以编程方式使用 CMD
【发布时间】:2009-04-04 16:53:04
【问题描述】:

如何在程序中模拟这些调用? 就像说我想找到所有活动的连接。所以我想使用 netstat -a 我怎么能使用它而不必真正打开一个窗口?

【问题讨论】:

    标签: c windows


    【解决方案1】:

    使用 CreateProcess,重定向输出。

    如果调用应用程序不是 Windows 应用程序,则控制台窗口没有问题(因为默认情况下,控制台程序会继承其父控制台)。

    如果调用应用程序是 Windows 应用程序,请将传递给 CreateProcess 的正确选项设置为默认将创建的控制台窗口隐藏。

    【讨论】:

      【解决方案2】:

      您可以使用 system() 库函数 - 我猜 Windows 也有它,因为它是自 C89 以来的标准 C 函数。

      【讨论】:

        【解决方案3】:

        您必须使用“开始”命令的“/B”选项。

        cmd /C start "标题" /B netstat -i

        我假设弹出控制台是您的主要问题, 和你收集数据的策略。

        【讨论】:

          【解决方案4】:

          永远不要使用 system() (不专业,蹩脚)
          使用 Win32 网络 API。
          见netstat的源码。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-09-27
            • 1970-01-01
            • 2011-09-20
            • 2016-01-13
            • 1970-01-01
            • 2019-01-30
            相关资源
            最近更新 更多