Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по OLE   Найти похожие ветки 

 
Тимохов   (2004-02-19 12:24) [0]

Есть такая функция CreateActiveOleObject, которая позволяет подключится к существующему серверу.
Шеф наконец заставил нас сделать нормальную работу с Excel.
Самы мы создаем объект Excel.Application через CreateOleObject. При этом делаем его невидимым и неинтерактивным. После работы показываем его на экране и отключаемся от него. При том, что мы закладываемся на то, что с рабочей кникой работаем только мы из программы. От пользователя мы защитились тем, что interactive := false. Теперь бы хотелось защититься от других программ, использующих CreateActiveOleObject.

Вопрос такой. Можно ли как-то заставить excel не давать подключаться к нему другим программам?


 
Тимохов   (2004-02-19 19:28) [1]

Прошу прощения, но up!


 
just me   (2004-02-19 19:39) [2]

Написать свой СОМ-сервер, который будет "подниматься" при попытке кого-либо "прицепиться" к excel и затем будет "пускать" кого нужно и пробрасывать остальных


 
Тимохов   (2004-02-19 19:41) [3]


> который будет "подниматься" при попытке кого-либо "прицепиться"
> к excel

Интересно, а это как? Разве так можно? Это типа комовского хука :))))
Единственно, что мне приходит в голову, это сделать свой объект с тем же id, что у excel. Что-то типа этого?


 
just me   (2004-02-20 15:37) [4]

Совершенно верно!


 
Тимохов   (2004-02-20 15:38) [5]


> just me (20.02.04 15:37) [4]
> Совершенно верно!

Интересно, как себя поведут другие программы (не мои) использующие ексел по оле:))))
И вообще, не уверен, что данный путь вообще реален.
Делал ли кто-нить так в действительности?


 
just me   (2004-02-20 16:16) [6]

Странно - сам пишешь "хотелось защититься от других программ, использующих CreateActiveOleObject", а теперь беспокоишься про "поведут другие программы (не мои) использующие ексел по оле"
Схоли на форум по СОМ на rsdn.ru, так зубры СОМ-а такое делают и советуют в примерно таких ситуауиях


 
Тимохов   (2004-02-20 16:35) [7]


> Странно - сам пишешь "хотелось защититься от других программ,
> использующих CreateActiveOleObject

Ничего странного - хотелось бы защиться, когда я с ним работаю, а когда вообще я его не касаюсь, то должно работать штатно.
Спасибо за совет о другом форуме - пойду туда.


 
Digitman   (2004-02-20 16:40) [8]

см. штатные механизмы делегации интерфейсных вызовов


 
Тимохов   (2004-02-20 16:43) [9]


> Digitman © (20.02.04 16:40) [8]

И Вам спасибо - пойду смотреть.


 
Бином Ньютоныч   (2004-02-21 11:38) [10]

>Тимохов ©

Можно вынести работу с сервером в специально созданную оконную станцию. Чтобы другому приложению подключиться к этому экземпляру сервера, ему придется переключиться на ту-же станцию, а этому нетрудно воспрепятствовать. Правда с визуализацией будут сложности, но и это решаемо.



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

Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
11-6002
chum
2003-06-17 10:59
2004.03.03
Не найден файл exptintf.dcu


14-6194
Piter
2004-02-11 20:52
2004.03.03
Дурацкие ошибки


3-5962
lightix
2004-02-05 13:03
2004.03.03
Выборка из DBF


3-5955
Lisa
2004-02-05 22:15
2004.03.03
Какие поля содержатся в результате выполнения запроса в TQuery?


1-6082
Builder
2004-02-21 11:16
2004.03.03
число





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский