Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1275300108
[true]TRIx
2010-05-31 14:01
2010.08.27
как разместить MainMenu не в самом верху


2-1270039311
HRustBB
2010-03-31 16:41
2010.08.27
Как изменить высоту заголовка формы


2-1265912850
Делфиец
2010-02-11 21:27
2010.08.27
Сортировка в TADOQuery


6-1222332748
santey
2008-09-25 12:52
2010.08.27
winsock2


2-1271150334
Гость
2010-04-13 13:18
2010.08.27
Try Finally Try Except а оно надо?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский