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