Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.10;
Скачать: CL | DM;

Вниз

Командный процессор   Найти похожие ветки 

 
Alex870   (2004-09-01 11:54) [0]

Уважаемые знатоки API!
У меня такая задача: открыто консольное окно (command.com или cmd.exe в зависимости от системы) моя программа должна набрать и запустить определенную команду соответствующего командного процессора, т.е. ,например, после C:>\ набрать dir и, чтобы в этом окне она отработала. Запускается этот процессор не из моей программы, поэтому запустить его с опр. параметрами я не могу, да и команд я хочу дать не одну, а несколько. Зарание спасибо!


 
Digitman ©   (2004-09-01 12:21) [1]

для начала контрвопрос - как ты намерен решить (либо уже решил) проблему с идентификацией именно требуемого процесса, создавшего именно требуемое конс.окно  ? ведь таких процессов в общем случае м.б. более одного .. и все они в списке процессов будут выглядеть просто как, например, cmd.exe


 
Alex870   (2004-09-01 12:58) [2]

Честно говоря я не стал вдаваться в подробности, посчитав их ненужными. Дело в том, что у меня не совсем командный процессор, а окно программы эмулирующее его, как пример - файловый менеджер far (я думаю всем известный) - он имеет Caption, и я думаю, что и окна cmd (command) можно отличить друг от друга, в зависимости от того, что в них запущено (где-то код видел).


 
Digitman ©   (2004-09-01 13:17) [3]

я что-то ни шута не понял ..


> не совсем командный процессор, а окно программы эмулирующее
> его


что значит "эмулирующее" ? ты же сказал, что процесс cmd.exe стартован другим процессом, а не твоим ?


 
enel ©   (2004-09-01 13:39) [4]

Почему бы тебе не воспользоваться bat-файлом?


 
Alex870   (2004-09-01 17:21) [5]

Извините за некорректно поставленный вопрос!
Поставлю его по другому. Во-первых bat-файл непойдет, т.к. это окно не моё, и перезапускать его нельзя.Во-вторых я конечно неправ на счет слова "эмулированный", ведь cmd и command это уже эмуляция ms-dos. Просто запущена программа типа Far, а мне там в командной строке необходимо много чего набрать и исполнить, объем большой и появилась мысль автоматизировать ввод команд и их запуск, но так как окно это создано не моей программой, я не знаю как это сделать...


 
GrayFace ©   (2004-09-01 17:24) [6]

Вариант: эмулировать нажатия клавиш


 
Alex870   (2004-09-01 17:38) [7]

Отличная мысль, мне она тоже приходила в голову, но хотелось как бы грамотнее решить, и еще мне там нужно реализоать ввод данных в файл, типа: echo ...данные.. > otchet.txt, а вот здесь клавишь не хватит, чтобы ввести набор байт...


 
BiN ©   (2004-09-01 17:50) [8]

>>Alex870   (01.09.04 17:38) [7]

используй
WriteConsoleInput

Только сдается мне, что задача у тебя поставлена криво, ты бы определился, ЧТО ИМЕННО тебе надо


 
Alex870   (2004-09-01 20:18) [9]

>>BiN ©   (01.09.04 17:50) [8]
Спасибо за ответ, даже нашел код (пример) использования этой функции, однако чего-то не выходит, к тому же (повторюсь) консольное приложение я запускаю не из своей программы, поэтому с унаследованными описаниями ввода-вывода уже косяк. А, что именно мне надо: надо сделать примерно тоже самое, что в Windows каким-то образом уже реализовано, т.е. допустим есть какой-то буфер обмена и консольное приложение с командной строкой вида "С:\>" нужно вставить так "C:\> Echo содержимое буфера > otchet.txt" и потом естественно сэмулировать нажатие Enter, и уж было бы совсем хорошо, если отследить конец этой операции, т.е. появление опять "C:\>", чтобы продолжить в том же духе.


 
KSergey ©   (2004-09-02 07:30) [10]

> [9] Alex870   (01.09.04 20:18)

Это уже все поняли
Не понятно нафиг такое извращение: искать именно открытое окно и в нем чего-то эмулировать. Чем не подходит новое, созданное собственными силами и, потому, подконтрольное?


 
Дмитрий Ботвин   (2004-09-02 08:52) [11]

KSergey тебе дельный совет дал - не глумись над самим собой!!!
Запускай всё что хош из своего приложения и управляй им как тебе
вздумается :-))))



Страницы: 1 вся ветка

Текущий архив: 2004.10.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
14-1095411345
SPeller
2004-09-17 12:55
2004.10.10
Сколько стоит сайт построить?


1-1095798519
][ncognito
2004-09-22 00:28
2004.10.10
New()


1-1095943162
Erik1
2004-09-23 16:39
2004.10.10
Как создать функцию возвращающею разные типы?


4-1093845468
Роман Снегирев
2004-08-30 09:57
2004.10.10
MMF


14-1095508040
Программер_
2004-09-18 15:47
2004.10.10
Вот привожу код и пусть кто мне сможет сказать что нем