Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Возможно ли доступиться из JavaScript к OLE интерфейсам?   Найти похожие ветки 

 
Дмитрий Белькевич   (2010-05-11 14:21) [0]

Сабж, в общем?


 
xayam ©   (2010-05-11 14:38) [1]

ActiveXObject ?


 
Palladin ©   (2010-05-11 14:38) [2]

запросто


 
xayam ©   (2010-05-11 14:43) [3]

А с чем вообще работать? В сети встречал примерно такой код для excel:

try {
 var objExcelApp = new ActiveXObject("Excel.Application");
 objExcelApp.Visible = true;
 objExcelApp.Activate();
 ...
}
catch(e) {
 alert("Добавьте сайт в список доверенных и включите ActiveX");
}


 
Palladin ©   (2010-05-11 14:48) [4]

и ole, и activex и прочая dde это все, для клиентского (хоть автор и не потрудился указать контекст вопроса) js и vbs, работа с IDispatch и пофик как это называется. работает в IE, остальным позволено на это наплевать, ибо кроссплат., но не проверял


 
Palladin ©   (2010-05-11 14:49) [5]

и вообще, все что построенно на MSSriptControl работает с внешним миром через IDispatch


 
Дмитрий Белькевич   (2010-05-11 14:58) [6]

Спасибо за ответы.

Уточняю вопрос. Есть некий свой интерфейс, пусть будет называться ITest и в нём несколько методов. Создаю его так: new - activex - automation object.
Как мне достучаться до него из JS?

Так: new ActiveXObject("ITest"); ?


 
xayam ©   (2010-05-11 15:00) [7]

через точку?


 
Palladin ©   (2010-05-11 15:05) [8]

Интерфейс в Делфи это просто интерфейс и ничего общего с ole, activex и тем более js, не имеет. Не путай интерфесы с automation object. У твоего объекта должно быть имя, вот по нему и вызвай ActiveXObject, + объект должен быть зарегестрирован regsvr


 
Дмитрий Белькевич   (2010-05-11 15:23) [9]

Еще уточняю :)

Этот интерфейс - это интерфейс COM сервера. Сервер зарегистрирован (регистрируется сам при старте).


> У твоего объекта должно быть имя


Как в среде (имеется в виду Delphi IDE) можно указать имя объекта? При создании automation object имени нет. При редактировании .ridl есть имя (поле "name") - но оно нигде дальше в коде не учитывается, кроме как в названиях некоторых констант.

Сорри за ламерские вопросы - я действительно плохо разбираюсь в этой части кодинга


 
Palladin ©   (2010-05-11 15:30) [10]

Сначала создается ActiveX Library. У нее есть имя. Потом в ActiveX Library добавляются от одного и более ActiveX Automation Object"ов, при этом wizard просит указать CoClass name. Сответственно объекты будут именоватся для CreateOleObject(оно же ActiveXObject в js) как ИмяПроектаActiveXLibrary.ActiveXAutomationObjectCoClassName


 
Дмитрий Белькевич   (2010-05-11 15:32) [11]

Спасибо, Palladin, буду разбираться.


 
Дмитрий Белькевич   (2010-05-11 15:57) [12]


> Потом в ActiveX Library добавляются от одного и более ActiveX
> Automation Object"ов


Еще два вопроса. Можно ли подключить Automation Object из другого приложения? Или нужно делать еще один Automation Object в ActiveX Library, а уже в его вызовах стучаться к COM-серверному ITest"у?

Сам exeшник COM сервера не может быть ActiveX Library? Или ActiveX Library - это всегда dll"ка посредник между COM сервером и браузером?


 
Palladin ©   (2010-05-11 16:05) [13]


> Можно ли подключить Automation Object из другого приложения?
>  Или нужно делать еще один Automation Object в ActiveX Library,
>  а уже в его вызовах стучаться к COM-серверному ITest"у?
>

не знаю не пробовал, а зачем?


> Сам exeшник COM сервера не может быть ActiveX Library? Или
> ActiveX Library - это всегда dll"ка посредник между COM
> сервером и браузером?

dll"ка это ни какой не посредник, это и есть сервер


 
Дмитрий Белькевич   (2010-05-11 16:10) [14]


> не знаю не пробовал, а зачем?


Что бы не переносить код из экзешника в длл.


> dll"ка это ни какой не посредник, это и есть сервер


Перефразирую. Сервером (к которому есть доступ из JS) может быть экзешник?


 
Palladin ©   (2010-05-11 16:11) [15]


> Сервером (к которому есть доступ из JS) может быть экзешник?

конечно, я dll для пример образования имени привел...



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.049 c
2-1268313251
Rail
2010-03-11 16:14
2010.08.27
Поле Edit


2-1271962588
Сергей
2010-04-22 22:56
2010.08.27
Замена и уберине лишнего (Делфи)


15-1275393586
bss
2010-06-01 15:59
2010.08.27
Отключить скрол у TComboBox


2-1275046068
Крапивин Олег
2010-05-28 15:27
2010.08.27
Как очистить DBLookComboBox.Text


2-1270734164
Pavel
2010-04-08 17:42
2010.08.27
Проблема с кодировкой