Имя: Пароль:
1C
1С v8
И снова WScript.shell + Telnet
,
0 SerF_2011
 
11.12.21
20:39
Привет всем.
Пытаюсь отправить команду через telnet. Нашел тему WScript.shell + Telnet в 33 посте вроде бы решение, но у меня не срабатывает.

&НаКлиенте
Процедура Команда1(Команда)
    
    
    WshShell = Новый COMОбъект("WScript.Shell");
    СтрокаЗапуска = "C:\Windows\System32\telnet.exe";

    WshExec = WshShell.Exec(СтрокаЗапуска);

    
КонецПроцедуры

На строчке с Exec вылетает с ошибкой:

Произошла исключительная ситуация (WshShell.Exec): Не удается найти указанный файл.

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(9)}:    WshExec = WshShell.Exec(СтрокаЗапуска);

по причине:
Произошла исключительная ситуация (WshShell.Exec): Не удается найти указанный файл.

Ткните куда копать, пжлст.
1 Василий Алибабаевич
 
11.12.21
20:41
(0) Установить телнет.
2 SerF_2011
 
11.12.21
20:45
(1) да есть он, из cmd открывается, не в этом дело
3 SerF_2011
 
11.12.21
20:46
Я пробовал копировать сам файл telnet.exe в каталог bin платформы и запускать оттуда. Но ошибка та же.
4 SerF_2011
 
11.12.21
20:48
Если написать:
СтрокаЗапуска = "calc";
то все работает, открывает калькулятор.
5 SerF_2011
 
11.12.21
21:07
Нужен orefkov или ШримпРолл из той ветки, может они подскажут, что там наваяли.
6 Franchiser
 
гуру
11.12.21
21:16
Сделай переменную среды
7 Franchiser
 
гуру
11.12.21
21:19
А если заменить слэш на два слэша работает?
8 SerF_2011
 
11.12.21
21:45
(7) Это в смысле так:
    СтрокаЗапуска = "C:\\Windows\\System32\\telnet.exe";
?
9 SerF_2011
 
11.12.21
21:49
Два слэша не работает. Переменную среды для telnet.exe или для папки где она лежит?
10 acht
 
11.12.21
22:46
(4) > СтрокаЗапуска = "calc";
СтрокаЗапуска = "telnet";

?
11 ДедМорроз
 
12.12.21
00:48
Во-первых,exec не очень красиво работает - ему нужно указывать путь целиком и правильно.
То есть то место,где живет telnet и его библиотеки.
Во-вторых,нсли нужна командная строка,то запускать telnet можно через bat-файл.

И потом,если нужно "плюнуть" в порт,то есть объект WinSock из семейства VbScript.
12 acht
 
12.12.21
01:44
(11) > WinSock из семейства VbScript.
Не трынди.
Он всю свою недолгую жизнь поставлялся в библиотеке MSWINSCK.OCX входящей в состав Visual Basic 6.0. При этом до сих пор требует отдельной лицензии, и просто так не ставится.
13 ДедМорроз
 
12.12.21
19:39
Лицензия сия проптсывается или в реестр или в тег лицензирования проекта.
Но печаль в том,что 32 бита.
14 acht
 
12.12.21
21:35
(13) > проптсывается или в реестр или в тег лицензирования
Но сначала лицензия ведь покупается, правда?
15 SerF_2011
 
12.12.21
21:51
(10) Если так, то окно телнета на полсекунды появляется и пропадает. Причем успел заметить сверху путь к файлу - в каталоге bin платформы.
Может туда нужно еще какие то файлы кинуть, относящиеся к телнету?
(11) Да, про винсокет знаю, пробовал, с ним заморочек не меньше, плюс лицензия опять же. Прописать ее, конечно, можно в реестре, но я не знаю платная она или фри.
Я не пойму одного, есть exec, пишут что работает, но вот не работает.
Еще если использовать run, то телнет открывается, но run не возвращает объект, с которым можно дальше работать и что то отправить через него.
16 Злопчинский
 
12.12.21
21:55
(15) попробуй перенаправить на телнет поток ввода из файла
17 ДедМорроз
 
12.12.21
22:47
(15) WsWinsock требует лицензию разработчика,то есть,строго говоря,лицензию на visual basic.
RunTime лицензия - это лицензия,которкю компиллятор Visual Basic встраивает в код,чтобы он работал на любой машине - для изпользования в ActiveX есть даже утмлита встраивания лицензии.
Но,опять же,утмлита работает,если на компьютере есть установленный Visual Basic 6.
18 SerF_2011
 
21.12.21
20:51
Спасибо всем, кто ответил. В итоге нашел вот такую вещь https://1clancer.ru/catalog/4336, она позволила сделать что требовалось. Может кому то тоже пригодится.
19 SerF_2011
 
21.12.21
20:53
Запятую в конце ссылки нужно удалить.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн