Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - проблема с WScript.Shell.Exec

Ответить
Настройки темы
VBS/WSH/JS - проблема с WScript.Shell.Exec

Аватара для morebeauty

Старожил


Сообщения: 210
Благодарности: 29

Профиль | Отправить PM | Цитировать


Доброго дня.
Есть скрипт:
Код: Выделить весь код
set WshShell = WScript.CreateObject("WScript.Shell")
Set cmdl = WshShell.Exec("cmd")

do 'Цикл для того, чтобы cmd не завершалось после окончания скрипта, а иначе гаснет сразу как запускается

loop while cmdl.Status=0
Запускает cmd.exe, но при этом вместо привычного приглашения ввести команды "C:\*****>" видно только черный экран. !!!

Пробовал вместо cmd запускать ping "ipaddress"
так же вижу черный экран, но по завершению отправки стандартных четырех пакетов окно закрывается (то есть обработка команд таки идет, только ничего не отображается)

Оконные приложения типа calc открываются и работают нормально, причем для них даже не нужна конструкция do...loop

С Run все отрабатывает нормально, но при таком способе я не имею в наличии объект запускаемого приложения (то есть не могу никак им управлять), поэтому нужен именно Exec.
Помогите разобраться.
Заранее спасибо!

Отправлено: 08:01, 12-11-2013

 

Аватара для morebeauty

Старожил


Сообщения: 210
Благодарности: 29

Профиль | Отправить PM | Цитировать


Цитата Iska:
Вам следует написать свой клиент telnet »
А еще свои утилиты ping, tracert и многие другие.

Есть еще мнения?

Отправлено: 07:03, 13-11-2013 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для morebeauty

Старожил


Сообщения: 210
Благодарности: 29

Профиль | Отправить PM | Цитировать


Тогда еще вопрос. В контекстном меню командной строки есть пункт "Пометить". То есть я могу выделить нужный мне текст и скопировать его в буфер. Как происходит эта операция? поток уже выведен на терминал, значит он не перехватывается. Происходит что-то другое. Кто нибудь знает об этом? Как программно это осуществить?

Отправлено: 10:25, 13-11-2013 | #12


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата morebeauty:
А еще свои утилиты ping, tracert и многие другие. Есть еще мнения? »
Можете самостоятельно поискать у объекта WshExec методы для отключения и подключения стандартных потоков дочернего процесса. Как найдёте — вот тогда и начинайте иронизировать, я первый сниму перед Вами шляпу и начну побивать себя в грудь со словами «Mea culpa».
Вот только причём здесь ping и tracert; они разве интерактивные?! Речь шла именно про клиента telnet, которым Вы хотели манипулировать и программно, и ручками одновременно. Я указал Вам путь.

Цитата morebeauty:
Как программно это осуществить? »
Легко: Console Functions (Windows).

Отправлено: 12:31, 13-11-2013 | #13


Аватара для morebeauty

Старожил


Сообщения: 210
Благодарности: 29

Профиль | Отправить PM | Цитировать


Цитата:
Мне это нужно для того, чтобы, например, подключиться по telnet к чему либо и автоматом ввести логин и пароль при приглашении их ввести. Ну и выполнить так же автоматом нужный набор команд. И само собой иметь возможность ввести команды самостоятельно с клавиатуры. Ну и еще с несколькими утилитами требуется работа.

Отправлено: 07:10, 14-11-2013 | #14


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


morebeauty, у «.Exec()» нет возможности произвольно, по Вашему желанию, подключаться/отключаться к потокам дочернего процесса.

Отправлено: 08:00, 14-11-2013 | #15


Пользователь


Сообщения: 70
Благодарности: 19

Профиль | Отправить PM | Цитировать


Если исключить это
Цитата morebeauty:
Если это будет собственная консоль для ввода/вывода заместо стандартной, то необходимо еще и как то скрыть это черное окошко (зачем оно будет висеть на экране смущать людей). »
, то можно было бы попробовать свой скрипт запускать через cscript, чтобы получить ещё собственное окно консоли, и в него выводить то, что перехватывает Exec через stdout.

Отправлено: 07:45, 15-11-2013 | #16



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - проблема с WScript.Shell.Exec

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
exec(), system() indig_0 Вебмастеру 0 30-07-2012 23:02
Разное - подскажите что за wscript.exe mithell Лечение систем от вредоносных программ 2 26-10-2009 13:56
Службы - При загрузке ОС автоматом запускается wscript.exe Flynet005 Microsoft Windows 2000/XP 14 22-09-2008 12:28
проблема с 'find' (скрипт на shell) romez777 Программирование в *nix 1 20-02-2007 13:12
Проблема с Х в качестве shell noemotion Общий по FreeBSD 9 27-04-2005 13:07




 
Переход