Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизВозможно ли доступиться из 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.065 c