Программно используя CMD в C - PullRequest
0 голосов
/ 04 апреля 2009

Как я могу симулировать эти вызовы внутри программы? Как сказать, я хочу найти все активные соединения. Поэтому я хочу использовать netstat -a Как я могу использовать это, не имея буквально открытого окна?

Ответы [ 4 ]

6 голосов
/ 04 апреля 2009

Используйте CreateProcess, перенаправляя вывод.

Если вызывающее приложение не является приложением Windows, с окном консоли не возникает проблем (поскольку программирование консоли по умолчанию наследует родительскую консоль).

Если вызывающее приложение является приложением Windows, установите правильные параметры, передаваемые CreateProcess, чтобы по умолчанию окно консоли, которое будет создано, было скрыто.

1 голос
/ 04 апреля 2009

Существует библиотека system(), которую вы можете использовать - я полагаю, что в Windows она есть, потому что это стандартная функция C начиная с C89.

0 голосов
/ 04 апреля 2009

Никогда не используйте систему () (не профессионально, дерьмо)
Используйте Win32 net apis.
См. Исходный код netstat.

0 голосов
/ 04 апреля 2009

Вам нужно будет использовать параметр «/ B» команды «start».

cmd / C начало "Заголовок" / B netstat -i

Я предполагаю, что всплывающая консоль - ваша главная проблема, а у вас стратегия сбора данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...