2009-03-29 2 views
1

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

ответ

4

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

+0

Это должно быть cmd/k dir, иначе cmd не выйдет после завершения команды dir. – Ferruccio

+0

точно наоборот./k остается,/c - нет. Просто взгляните на cmd /? – Joey

+0

Вы правы. Виноват. – Ferruccio

1

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

EDIT: Что касается отображения результатов, вам необходимо заполнить элементы STARTUPINFO.hStdXXX, возможно, используя анонимный канал. См. this example.

0

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

0

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

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

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

Смежные вопросы