Имя: Пароль:
1C
 
определение количества COM-портов
0 Cap_1977
 
19.09.07
10:58
Как через WHS (из 1С) посмотреть сколько и какие порты есть на машине !?
1 Cap_1977
 
19.09.07
11:06
+0 Ошибся ... через WSH
2 у лю 427
 
19.09.07
11:09
а зачем?
3 Cap_1977
 
19.09.07
11:11
(2) +1 Безусловно очень важный и нужный вопрос ... ;))))
Разное подключение юзеров, поэтому по разному мапяться порты на терминале. Т.е. COM1 может быть замаплен как COM3 ... Вот это мне и нужно отследить.
4 Cap_1977
 
19.09.07
11:26
up
5 Cap_1977
 
19.09.07
15:22
up
6 Cap_1977
 
19.09.07
17:01
up
7 smaharbA
 
19.09.07
17:34

//*******************************************
Процедура Сформировать()
   Текст=СоздатьОбъект("Текст");
   Текст.КодоваяСтраница(1);
   Тест=КаталогВременныхФайлов()+_GetPerformanceCounter()+".txt";
   Для к=1 По 10 Цикл
       КомандаСистемы(Шаблон("dir /b \\.\com[к] 2>[Тест]"));
       Текст.Открыть(Тест);
       Для н=1 По Текст.КоличествоСтрок() Цикл
           Сообщить(Текст.ПолучитьСтроку(н));
       КонецЦикла;
   КонецЦикла;
   //Выбирай
   Локатор=СоздатьОбъект("WbemScripting.SWbemLocator");
   Сервис=Локатор.ConnectServer();
   Для к=1 По 10 Цикл
       Попытка
           Сообщить(Сервис.Get("win32_serialport.DeviceId='com"+к+"'").Name);
       Исключение
       КонецПопытки;
   КонецЦикла;
КонецПроцедуры

еще есть методы
8 Cap_1977
 
19.09.07
17:49
(7) Не совсем то. Аська твоя живая ? Я вечером постучусь ...
9 smaharbA
 
19.09.07
17:50
(8) стучись, но отвечу скорее всего завтра
а почему не то ?
10 Cap_1977
 
19.09.07
17:58
(9) В 1С юзера ходят:
- прямой коннект по сети;
- через терминальный доступ;
- тонким клиентом;

Порты мапятся:
- мапинга нет (COM1 -> COM1) и т.д.
- мапинг есть (COM1 -> COM1) и т.д.
- мапинг есть (COM1 -> COM3) (COM2 -> COM4) и т.д.
Мне нужно определить как мапиться COM1: если в COM1 то все пучком, если в COM3 то мне нужно модифицировать номер порта.

Сейчас сделал через "change port > port.txt" с последующим парсингом, но теряются фокусы окон (юзера нервничают - дергают меня по бне всякой) вот и ищу более изящное решение ...
11 Override
 
19.09.07
17:59
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
   "SELECT * FROM Win32_SerialPort",,48)
For Each objItem in colItems
   Wscript.Echo "-----------------------------------"
   Wscript.Echo "Win32_SerialPort instance"
   Wscript.Echo "-----------------------------------"
   Wscript.Echo "Caption: " & objItem.Caption
Next
12 Cap_1977
 
19.09.07
18:02
(11) Расширение у файла .js !?
13 Override
 
19.09.07
18:05
VB
14 Override
 
19.09.07
18:06
vbs
15 smaharbA
 
19.09.07
18:08

Локатор=СоздатьОбъект("WbemScripting.SWbemLocator");
Сервис=Локатор.ConnectServer();
Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
Скрипт.language="javascript";
Порты=Сервис.ExecQuery("select * from win32_serialport");
Скрипт.AddObject("Порты",Порты);
ПереченьПортов=Скрипт.Eval("ПереченьПортов=new Enumerator(Порты)");
ПараметрыПортов=Скрипт.Eval("new Enumerator(ПереченьПортов.item().Properties_)");
Пока ПереченьПортов.atEnd(0)=0 Цикл
   Пока ПараметрыПортов.atEnd(0)=0 Цикл
       Попытка
           Сообщить(ПараметрыПортов.item(0).Name+" = "+ПереченьПортов.item(0).Properties_.item(ПараметрыПортов.item(0).Name).Value);
       Исключение
       КонецПопытки;
       ПараметрыПортов.moveNext(0);
   КонецЦикла;
   ПереченьПортов.moveNext(0);
КонецЦикла;
16 smaharbA
 
19.09.07
18:10
(11) == (7) (после слов //Выбирай)
Ошибка? Это не ошибка, это системная функция.