Главная страница
    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.038 c
3-1095068946
aliced
2004-09-13 13:49
2004.10.10
Где хранятся данные для CachedUpdates?


1-1096025332
SergeyM
2004-09-24 15:28
2004.10.10
Текст в формате HTML


8-1089930613
Ribinzon
2004-07-16 02:30
2004.10.10
Работа с JPG


14-1095759644
Dimedrol
2004-09-21 13:40
2004.10.10
Какие драйвера гразяться при старте ?


1-1095702519
bloodman
2004-09-20 21:48
2004.10.10
Возможно ли при помощи TButton.perform сэмулировать зажатую...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский