![]() |
проблема с WScript.Shell.Exec
Доброго дня.
Есть скрипт: Код:
set WshShell = WScript.CreateObject("WScript.Shell") Пробовал вместо cmd запускать ping "ipaddress" так же вижу черный экран, но по завершению отправки стандартных четырех пакетов окно закрывается (то есть обработка команд таки идет, только ничего не отображается) Оконные приложения типа calc открываются и работают нормально, причем для них даже не нужна конструкция do...loop С Run все отрабатывает нормально, но при таком способе я не имею в наличии объект запускаемого приложения (то есть не могу никак им управлять), поэтому нужен именно Exec. Помогите разобраться. Заранее спасибо! |
Цитата:
|
Цитата:
Этого достаточно? |
Первое можно выполнить и после «.Run()». А второе и третье — да, только «.Exec()». Но Вы не ответили на:
Цитата:
|
Цитата:
Цитата:
Скажите, а Вы совсем не догадывались что именно я ожидал увидеть? А если у Вас были догадки, скажите, среди них была "открывая командную строку ожидал увидеть немецкое порно"? :) |
Вложений: 2
Ожидал
cmd2.PNG Увидел cmd1.PNG |
Цитата:
Цитата:
Пример программной работы с потоками дочернего консольного приложения: Код:
Option Explicit |
После прочтения вот этого
Цитата:
|
Ну тогда вопрос такой.
Как мне открыть командную строку с возможностью ей управлять и иметь информацию о выводе в скрипте. Мне это нужно для того, чтобы, например, подключиться по telnet к чему либо и автоматом ввести логин и пароль при приглашении их ввести. Ну и выполнить так же автоматом нужный набор команд. И само собой иметь возможность ввести команды самостоятельно с клавиатуры. Ну и еще с несколькими утилитами требуется работа. SendKeys + Sleep не предлагать. Если это будет собственная консоль для ввода/вывода заместо стандартной, то необходимо еще и как то скрыть это черное окошко (зачем оно будет висеть на экране смущать людей). Ну и наброски на Delphi или на C++, чтобы я хоть имел представление с чего начать. Хотя я все же представляю себе это так. Открывается консольное окошко, скрипт все с него перехватывает, потом каким то образом отключает перехват и отправляет перехваченное снова в окно, чтобы это было видно пользователю. Ну или как то так. |
morebeauty, Вам следует написать свой клиент telnet. Иных вариантов, чтобы удовлетворить все Ваши запросы, нет.
|
Цитата:
Есть еще мнения? |
Тогда еще вопрос. В контекстном меню командной строки есть пункт "Пометить". То есть я могу выделить нужный мне текст и скопировать его в буфер. Как происходит эта операция? поток уже выведен на терминал, значит он не перехватывается. Происходит что-то другое. Кто нибудь знает об этом? Как программно это осуществить?
|
Цитата:
Цитата:
|
Цитата:
|
morebeauty, у «.Exec()» нет возможности произвольно, по Вашему желанию, подключаться/отключаться к потокам дочернего процесса.
|
Если исключить это
Цитата:
|
Время: 14:50. |
Время: 14:50.
© OSzone.net 2001-