Вопрос: CMD.EXE | Добавлено: 23.08.07 12:15 |
Автор вопроса: ![]() |
Люди помогите пожалуйста. В VB6 деалется Консоль API хотя мне надо cmd.exe Открыть эexe не составляет никаких проблем
shell "C:\windows\system32\cmd.exe" и все. Проблема заключается в следующем. Я никак не могу записать туда строку, например ipconfig чтоб он вывел мне мой IP адрес. Помогите плиз очень прошу. |
Ответы | Всего ответов: 23 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 56 |
Профиль | Цитата | #1 | Добавлено: 23.08.07 12:42 |
Догадываюсь, что после массы извращений следующим вопросом будет как обработать вывод команды ipconfig... ![]() Не проще ли с помощью API или через контрол Winsock определить свой IP? |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 427682013 Вопросов: 14 Ответов: 464 |
Профиль | Цитата | #2 | Добавлено: 23.08.07 12:49 |
2KreAtoR
Вот один из способов: 1. Запусти коммандную строку. 2. Жди появления окна (API-функция WaitForSingleObject, или как-то так) 3. Активируй окно через AppActivate или API-функцию SetForegroundWindow. 4. Отправляй активному окну текст через SendKeys. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 427682013 Вопросов: 14 Ответов: 464 |
Профиль | Цитата | #3 | Добавлено: 23.08.07 12:53 |
+ В конце каждой команды SendKeys "{ENTER}"
|
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 56 |
Профиль | Цитата | #4 | Добавлено: 23.08.07 13:37 |
Ну воо.. ![]() |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 427682013 Вопросов: 14 Ответов: 464 |
Профиль | Цитата | #5 | Добавлено: 23.08.07 14:08 |
2el-paso
Уламываем KreAtoR'а на использование API'шной консоли! ![]() 2KreAtoR На заметку: в API'шной консоли можно отлавливать ответы команд. Например, тот-же ipconfig.exe |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 120 Ответов: 438 |
Профиль | Цитата | #6 | Добавлено: 23.08.07 14:14 |
да мне если честно не ip надо. это просто к примеру.
Моя задача, сделать программу, которая при запуске exe открывала консоль. выводила переменные из Registry и закрывалась. Я начал это делать, но пришел к выводу что надо cmd.exe использовать и в нем писать. тоесть API Console не подходит для этого. Тоесть надо такие команды как cd чтоб могла выполнять или еще чтонить. 2.Arcady а ты можешь примерчик дать к этим 4 шагам, было бы очень классно наглядно посмотреть. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 120 Ответов: 438 |
Профиль | Цитата | #7 | Добавлено: 23.08.07 14:14 |
да мне если честно не ip надо. это просто к примеру.
Моя задача, сделать программу, которая при запуске exe открывала консоль. выводила переменные из Registry и закрывалась. Я начал это делать, но пришел к выводу что надо cmd.exe использовать и в нем писать. тоесть API Console не подходит для этого. Тоесть надо такие команды как cd чтоб могла выполнять или еще чтонить. 2.Arcady а ты можешь примерчик дать к этим 4 шагам, было бы очень классно наглядно посмотреть. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 120 Ответов: 438 |
Профиль | Цитата | #8 | Добавлено: 23.08.07 14:16 |
да уламывайте, без проблем. Если я через API консоль сделаю тоже самое, то ок. а пока после SenkKeys у меня прога зависает. |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ICQ: 295002202 Вопросов: 87 Ответов: 1684 |
Профиль | Цитата | #9 | Добавлено: 23.08.07 14:41 |
http://vbnet.ru/forum/show.aspx?id=150871
|
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 56 |
Профиль | Цитата | #10 | Добавлено: 23.08.07 15:57 |
А я, простите, все-таки позанудствую... ![]() Как я понял, целью открытия консольного окна является вывод неких переменных из Регистра? Я - ламо, знаю.. Но объясните, зачем? ![]() |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 427682013 Вопросов: 14 Ответов: 464 |
Профиль | Цитата | #11 | Добавлено: 23.08.07 16:29 |
2KreAtoR
Скажи, твоя программа должна дать одну команду консоле и после этого закрыться? Если да, то запускай консоль с параметрами. ("[путь к cmd.exe]" /K [имя exe-файла] [параметры]) |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 120 Ответов: 438 |
Профиль | Цитата | #12 | Добавлено: 23.08.07 18:27 |
2el-paso
Как я понял, целью открытия консольного окна является вывод неких переменных из Регистра? Я - ламо, знаю.. Но объясните, зачем?
да из регистра. Если я смогу сделать ipconfig то и смогу сделать и это. А в принципе прога должна скопировать переменную из регистра и настроить при помощи этих переменных другую программу, которую я могу настроить, но если только доберусь до консоли. Вот, а как зайти в нее я незнаю, вот и прошу дать примерчик, чтоб выучить и запомнить. А почему и нет? 2Arcady да в данном случае мне нужно чтоб открылась консоль, туда было написано,ipconfig и "TestText" после чего подождать нажатия на кнопку а потом закрыться. ... Теоретически я уже сделал консоль о которой говорил через API, но на тесте у меня прога при обработке SendKeys "{ENTER}" виснет. В принципе могу открыть cmd.exe но написать там ничего не могу. |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 56 |
Профиль | Цитата | #13 | Добавлено: 23.08.07 18:53 |
Наконец-то, задача становится более понятной...
Но вопросы все равно остаются: 1) Зачем использовать консоль для извлечения данных из Регистра, если это же самое можно сделать (и легче сделать) через API функции? 2) Зачем использовать консоль для запуска конфигурирующей программы, если можно использовать тот же Shell (даже если конфигурирование заключается в передаче некоторых особых параметров)? Еще раз прошу прощения за занудство.. Я не со зла, честно.. |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #14 | Добавлено: 23.08.07 20:04 |
Сформируй программно bat файл и запусти обычным Shell'ом.
Получить данные выводимые в эту консоль проще всего через промежуточный файл. Берёшь в консоле пишешь например ipconfig > C:\1.txt а потом просто программно читаешь 1.txt |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 120 Ответов: 438 |
Профиль | Цитата | #15 | Добавлено: 24.08.07 10:21 |
2HACKER
должен быть exe файл. Я тоже сначала о bat подумал. а за .txt спасибо, незнал, пригодится, сенкс. 2el-paso да не важно что да как, главное чтоб в cmd.exe я мог написать хотя бы Hello World. Неважно что. ну или cd C:\ главное туда что нить написать... |
|