Выполнение функциональности командной строки с использованием Win32 - PullRequest
1 голос
/ 29 марта 2009

Какие функции Windows API доступны для выполнения функций командной строки? Например, мне нравится выполнять команду dir и я хочу показать вывод в графическом интерфейсе без использования cmd.exe в Windows.

Ответы [ 5 ]

4 голосов
/ 29 марта 2009

Вы можете запустить cmd /c dir S:\ome\Path из вашего процесса и получить вывод. В противном случае это невозможно. Но если вас не интересуют конкретные детали форматирования dir, вам, вероятно, лучше просто перечислить файлы / каталоги и отобразить их.

1 голос
/ 29 марта 2009

Команда dir встроена в cmd.exe, это не отдельный исполняемый файл. Нет никакого способа выполнить его, кроме запуска cmd.exe.

РЕДАКТИРОВАТЬ: Что касается отображения результатов, вам необходимо заполнить члены STARTUPINFO.hStdXXX, вероятно, используя анонимный канал. См. этот пример .

0 голосов
/ 29 марта 2009

Все, что делает командная строка Windows, выполняется через Win32 API.

Например, что касается «dir», FindFirstFile () и FindNextFile () предоставят вам содержимое каталога.

Для любой данной команды вам необходимо выяснить, какие API / вызовы функций используются, а затем научиться использовать их самостоятельно в своем собственном коде.

0 голосов
/ 29 марта 2009

Если вы хотите получить список файлов в данной папке, см. Этот вопрос , в котором описано, как этого добиться, используя windows api или более общий подход к повышению.

0 голосов
/ 29 марта 2009

Для консольного приложения вы можете использовать popen () , но от GUI-приложения все не так просто. См. http://msdn.microsoft.com/en-us/library/ms682499%28VS.85%29.aspx для одного подхода.

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