WScript.shell + Telnet #780177


#0 by ШримпРолл
Добрый день господа и дамы. Прошу помочь в решении сей проблемы. Есть такой код: Исключение Сообщить("Не удалось по причине: "+ОписаниеОшибки); Вылетает с ошибкой : Ошибка при вызове метода контекста (Run): Произошла исключительная ситуация (0x80070002) Если в место telnet ввожу ping и убираю порт или просто ввожу notepad, например, то все работает. В чем может быть дело?
#1 by orefkov
errorlookup выдает что 0x80070002 - "Не удается найти указанный файл".
#2 by Метранпаж
А просто из командной строки работает? А не вин7 и выше утебя ли?
#3 by orefkov
Возможно, телнета нет. Возможно, надо указать полный путь. Возможно, не хватает прав на запуск телнета. Возможно, надо запускать как cmd.exe /c telnet .... или runas
#4 by sitex
Возможно клиентская часть telnet не установлена.
#5 by NorthWind
телнетика по умолчанию в виндах нет, ставить надо
#6 by ШримпРолл
Винда -Windows Server2012 Телнета не было, но подключил. Из командной строки работает. - Сейчас проверю.
#7 by ШримпРолл
Весьма странно. wshshell.run("cmd.exe /c telnet 192.168.1.2 3312",2,0); Срабатывает, но ничего не происходит. То -есть сообщение "Команду выполнил" есть, а окна открытого с телнетом нет.
#8 by orefkov
ну, cmd стартует, о чем shell и говорит. А вот запустить телнет cmd не может. Права проверь. Если ты командную строку запускаешь через win+R, она запускается под админ-правами, потому и может телнет запустить. А 1С не может.
#9 by NorthWind
там была такая фишка, что wshell.run консольные приложения прятать умеет. Какой-то ключ у команды за это отвечает, могу даже посмотреть какой
#10 by Метранпаж
" Если ты командную строку запускаешь через win+R, она запускается под админ-правами" С чего бы?
#11 by orefkov
Я нажимаю Win+R и там русским языком написано: "Это задание будет выполнено с правами администратора".
#12 by NorthWind
Cmd.Run "telnet.exe", 1, True     у меня вот так простартовывает, открывает окно. Win10.
#13 by orefkov
+ не "выполнено", а "создано", извиняюсь.
#14 by Метранпаж
У меня вин7 - и такой надписи нет
#15 by ШримпРолл
Я действительно использую этот ключ. Но команду пинг он у меня скрывает просто свернув. А тут ничего нет. Хотя сейчас проверю, выключив вообще этот ключ. Строку я реально через win+R открываю.
#16 by NorthWind
-> . Только что проверил.
#17 by ШримпРолл
У меня не стартует( Все та же ошибка. Пойду права смотреть.
#18 by orefkov
Всё может быть...
#19 by Torquader
TelNet где лежит ? Возможно, что он должен лежать в директории, которая прописана в пути. Не забываем, что telnet в Windows после Xp ставится как дополнительная программа.
#20 by ШримпРолл
Telnet лежал на диске С в папке system32. И это был еще один подводный камень. Для запуска телнета помимо установки прав, пришлось перенести все его файлы в доступную папку. т.к. system32 командная строка из 1С (без прав) не видела. Всем огромное спасибо! С вашей помощью все получилось.
#21 by NorthWind
в 2012 все настолько круто с правами, что даже нельзя запускать утилиты командной строки, находящиеся по PATH?
#22 by NorthWind
вроде даже в никсах под обычным пользователем телнетом по умолчанию можно пользоваться спокойно...
#23 by ШримпРолл
Видимо настолько. А я пришел к новому тупику. Я запускал telnet и командами типа: wshshell.SendKeys("сообщенька"); засылал различные сообщеньки. Но обнаружил, что при смене раскладки клавиатуры ничего не работает. То-есть SendKeys  эмулирует нажатие на кнопку и чувствительна к раскладке. Как это можно обойти? Знает кто-нибудь?
#24 by ШримпРолл
Реально вообще адекватно управлять телнетиной из 1С?
#25 by ШримпРолл
Или подскажите, как можно передать на определенный порт сервера простые строки? Например, отправить на 192.168.1.2 3312 строку "привет" ?
#26 by orefkov
ничего, кроме как создать временный файл с расширением cmd и с содержимым echo привет|telnet args и запуска этого файла - мне в голову не приходит. Почитай справку к телнету, может он умеет из файла текст брать?
#27 by NorthWind
ВК какую-нибудь присмотреть для сокетов. Или свою написать. Как я понял, с произвольным сетевым взаимодействием (кроме почты и web) продукты 1С пока не особенно дружат.
#28 by Torquader
Телнет - консольный. Его через SendKey управлять сложно. Можно запускать через потоки и давать команды.
#29 by ШримпРолл
Большое спасибо за ваши предложенные варианты. Буду пробовать все. О результате отпишусь.
#30 by ШримпРолл
Где-то читал, что умеет. Проверю на практике.
#31 by Torquader
Если что - вам в помощь:
#32 by orefkov
Есть еще вариант кстати запускать не через .Run, а через Exec. Тогда возвращается объект, в котором есть StdIn StdOut StdErr потоки, и в StdIn поток делать Write.
#33 by orefkov
+ Вот так я запускал одну консольную прогу, которой надо было потом ввести пароль и прочитать вывод:
#34 by Torquader
Ты смотрел - там именно это и описано. Хотя, согласен, некоторым нужно разжевать и проглотить.
#35 by orefkov
Ясно. ЗЫ: забавно, в движок форума скушал один слэш в 'cntlmcntlm.exe" - там два слэша, а не один.
#36 by Torquader
Как говорится, приятного ему аппетита - и пусть его создателю будет стыдно.
#37 by ШримпРолл
Torquader и orefkov : Супер! Большое спасибо! Таким методом реально можно управлять консольными программами. Класс) Задача решилась. Спасибо)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С