Имя: Пароль:
1C
 
Не загружается mscomm32
Ø
0 arta
 
05.03.05
14:46
Тема уже не раз обмусоливалась. Но у меня так и не получается.
1. ЗагрузитьВнешнююКомпоненту("C:\Windows\system32\mscomm32.ocx");
выдает
Ошибка при создании объекта из компоненты C:\Windows\system32\mscomm32.ocx (отсутствует CLSID)
2. ЗагрузитьВнешнююКомпоненту("mscomm32.ocx");
Не загружает, и не ругается. Делаю вывод - незарегистрирована.
regsvr32.exe C:\Windows\system32\mscomm32.ocx делал, права админа.
Где искать грабли?
1 dma
 
05.03.05
14:49
Дело в том, что этот COM-сервер не бесплатный, поэтому он и не грузится. Я ставил VB 6.0. и все начинало работать. Правда потом было лень в реестре искать место записи лицензии, чтобы пользовать без инсталяции VB.
2 arta
 
05.03.05
15:01
Предупреждение не должно вылазить в этом случае? Говорит, что зарегистрировался, в реестре запись есть.
VB весит много?
3 1Сукпун
 
05.03.05
15:09
Подтверждаю без лицензий работать не будет , у меня если что есть соответствующий рег файл
5 dma
 
05.03.05
15:14
+4 VB весит около 80М. Могу ошибиться как в ту, так и в другую сторону.
7 1Сукпун
 
05.03.05
16:08
(4), (6) УШЛО
9 Gloom
 
05.03.05
16:44
А чего, Microsoft теперь все ActiveX в виде внешних компонент для 1цэ делает?
10 arta
 
05.03.05
16:56
(9) Как тогда обратиться к ней?
11 Gloom
 
05.03.05
17:01
СоздатьОбъект("MSCOMMLib.MSComm.1")
12 arta
 
05.03.05
17:09
От ведь... Как только я не извращался. Сенкс!
а 1 это что в данном случае?
13 1Сукпун
 
05.03.05
17:09
НАПРИМЕР ВОТ ТАК
Процедура ДисплейСтрокаВерх(стр) экспорт
  Попытка
    
    Экран=СоздатьОбъект("MSCOMMLib.MSComm");
    Экран.CommPort=Константа.ПортДисплеяПокупателя;
    Экран.Settings = "9600,N,8,1";
    Экран.PortOpen = 1;
    //очистим верхнюю строку
    Экран.Output=Симв(27)+"QA"+Симв(32);
    Экран.Output=Симв(24);
    //Обрежем строку до 20 символов
    стр=СокрЛП(стр);
    стр=ЛЕв(Стр,20);
    стр=AnsiToOem(Стр);
    //Выберем кодировку
    Экран.Output=Симв(27)+симв(102)+"R";
    Экран.Output=Симв(27)+симв(99)+"R";
    //теперь строку в верхнюю строку экрана
    Экран.Output=Симв(27)+"QA"+стр+Симв(13);
    Экран.PortOpen = 0;
    Экран=0;
    Исключение
  КонецПопытки;
  
КонецПроцедуры
14 arta
 
05.03.05
17:41
Как сделать PortOpen примапленному терминальной сессией компорту?
Или в этом случае пойдет только net use?
Цитрикс пока не предлагать, знаю что решение, но пока хотелось бы обойтись стандартными решениями на время теста :)
15 arta
 
06.03.05
00:47
Up
17 arta
 
08.03.05
11:36
Up, ну хоть бы гадость кто сказал что ли...
18 arta
 
08.03.05
21:16
Up
19 1Сукпун
 
09.03.05
07:04
 я читал из компорта типа вот так
  компорт=СоздатьОбъект("MSCOMMLib.MSComm");
  
  компорт.CommPort=1;
  компорт.Settings = "9600,N,8,1";
  компорт.InputLen = 0;
    компорт.PortOpen = 1;
  Пока 1=1 Цикл
   Буфер= Компорт.InBufferCount;
   даные=Компорт.Input;
   // Сообщить(Буфер);
     //Сообщить(даные);
     Если Даные<>"" тогда
     Прервать;
     КонецЕсли;
    
  конецЦикла;
  Предупреждение(даные,0)
  
20 arta
 
09.03.05
10:28
Проблема оказалась в терминальном режиме. Через терминал mscomm32 на чтение отказывается работать, хотя через гипертерминал порт активен в обе стороны.
Ищу другие библиотеки.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.