Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.049 c
4-1094652705
Grafsky
2004-09-08 18:11
2004.10.10
Информация о дисках


1-1095773917
vigo
2004-09-21 17:38
2004.10.10
Если кто работал с юлианской датой...


14-1095682249
infom
2004-09-20 16:10
2004.10.10
Что лучше применить ?


6-1091603923
Hereticsoul
2004-08-04 11:18
2004.10.10
Socket


14-1095675929
pavel_guzhanov
2004-09-20 14:25
2004.10.10
Воспроизведение мультимедиа файлов в windows





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский