Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Регистрация ОЛЕ/АктивХ компонент [ в HKCU ] (число прочтений - 16280 )
alexqc
Junior Member
**
Отсутствует



Сообщений: 77
Местоположение: АР Крым, Симферополь
Зарегистрирован: 21. Июня 2006
Пол: Мужской
Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
14. Ноября 2007 :: 07:47
Печать  
Предлагаю добавить метод, регистрирующий ОЛЕ-компоненты (т.е. чтоб с regsvr32 на юзверских местах не париться). Ну и соответственно, с возможностью регистрации в пользовательской ветке реестра.
  

Везде - от моря Черного до снежной Колымы - мы трудностям показываем кукиш.
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #1 - 14. Ноября 2007 :: 07:53
Печать  
хмм... у меня дежавю?
  
Наверх
 
IP записан
 
alexqc
Junior Member
**
Отсутствует



Сообщений: 77
Местоположение: АР Крым, Симферополь
Зарегистрирован: 21. Июня 2006
Пол: Мужской
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #2 - 14. Ноября 2007 :: 08:04
Печать  
Arta писал(а) 14. Ноября 2007 :: 07:53:
хмм... у меня дежавю?

В смысле - этот вопрос поднимался? Честно говоря форум просматриваю от случая к случаю, не видел.
В доке про это ничего нет (по крайней мере у класса "Система") - только РегистрироватьКомпонентыВ_HKCU().

На всяк случай уточню - я НЕ О внеш. компонентах 1С, я об остальных олешных/комовских компонентах.
  

Везде - от моря Черного до снежной Колымы - мы трудностям показываем кукиш.
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #3 - 14. Ноября 2007 :: 08:38
Печать  
То же интересно - можно ли что то сделать вместо regsvr32 v7chart.dll ?
(диаграммы)
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #4 - 14. Ноября 2007 :: 08:50
Печать  
alexqc писал(а) 14. Ноября 2007 :: 08:04:
В смысле - этот вопрос поднимался?


Я вот к чему
  
Наверх
 
IP записан
 
alexqc
Junior Member
**
Отсутствует



Сообщений: 77
Местоположение: АР Крым, Симферополь
Зарегистрирован: 21. Июня 2006
Пол: Мужской
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #5 - 14. Ноября 2007 :: 10:14
Печать  
С манифестами скорее всего не получится. Т.к. на них все равно как-то ссылаться надо будет, а единственный возможный для этого способ - прописать dependency в манифесте к 1Ске Улыбка. Либо (может быть) к какой-нибудь подгружаемой dllке.

Ну и катит только для ХР и выше.
  

Везде - от моря Черного до снежной Колымы - мы трудностям показываем кукиш.
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #6 - 14. Ноября 2007 :: 10:31
Печать  
Тады ой.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #7 - 14. Ноября 2007 :: 10:36
Печать  
alexqc писал(а) 14. Ноября 2007 :: 10:14:
С манифестами скорее всего не получится. Т.к. на них все равно как-то ссылаться надо будет, а единственный возможный для этого способ - прописать dependency в манифесте к 1Ске Улыбка. Либо (может быть) к какой-нибудь подгружаемой dllке.

Эээ... Я не совсем в теме, поэтому не въехал Улыбка Не напишешь подробнее, что ты имеешь в виду?

alexqc писал(а) 14. Ноября 2007 :: 10:14:
Ну и катит только для ХР и выше.

XP - тоже хорошо Улыбка
  
Наверх
 
IP записан
 
alexqc
Junior Member
**
Отсутствует



Сообщений: 77
Местоположение: АР Крым, Симферополь
Зарегистрирован: 21. Июня 2006
Пол: Мужской
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #8 - 14. Ноября 2007 :: 11:07
Печать  
Начиная с ХР к программам можно добавлять "манифесты" - это либо файл в каталоге программы с доп. расширением .manifest (т.е. для например проги myprog.exe это будет myprog.exe.manifest) либо соответв. ресурс exe-файла. Сам манифест представляет собой xml, и в нем описываются различные параметры проги. В числе прочих там есть зависимости (dependency)
Например

Код
Выбрать все
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
	<assemblyIdentity name="BmpView" processorArchitecture="*" version="1.0.0.0" type="win32" />
	<description>
		BmpView Sample Program
	</description>
	<dependency>
		<dependentAssembly>
			<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*" />
		</dependentAssembly>
	</dependency>
</assembly>
 



Тут указывается, что программе нужна библиотека Microsoft.Windows.Common-Controls. И система при запуске будет ее искать и подключать (в результате приложение примет "ХРшный" вид).

Так вот, в зависимостях можно указывать не только компоненты системы, но и свои. И не только те которые зарегистрированы в реестре, но и любые иные. Для этого надо иметь их манифесты в каталоге программы.

Например, у нас есть некая библиотека cool.control (файл cool.ocx) которую хотим использовать. Мы в манифест программы в часть <dependency>      / <dependentAssembly> добавляем запись навроде <assemblyIdentity type="win32" name="cool.control">, а в каталог программы кладем файл cool.control.manifest в кртором указываются все параметры данной библиотеки (в часности и имя файла)

(вот типа так)
Код
Выбрать все
...
<assemblyIdentity type="win32" name="cool.control"/>
<file name = "cool.ocx">
<comClass clsid="{12345678-90ab-cdef-0987-654321012345}"
   progid = "cool.text" threadingModel = "Apartment" />
----описание всяких прочих cls_id и prog_id и т.п
</file>
....
 



Таким образом, можно использовать ком-компоненты, не регистря их в реестре.
  

Везде - от моря Черного до снежной Колымы - мы трудностям показываем кукиш.
Наверх
 
IP записан
 
alexqc
Junior Member
**
Отсутствует



Сообщений: 77
Местоположение: АР Крым, Симферополь
Зарегистрирован: 21. Июня 2006
Пол: Мужской
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #9 - 14. Ноября 2007 :: 11:16
Печать  
Ну и соответственно, для 1Ски надо сделать 1cv7.exe.manifest с таким содержанием:

Код
Выбрать все
...
	<dependency>
		<dependentAssembly>
			<assemblyIdentity type="win32" name="my.activx1" />
			<assemblyIdentity type="win32" name="my.comdll2" />
			... и т.п.
		</dependentAssembly>
	</dependency>
...
 



К каждому my.activx1,my.comdll2,... сделать манифесты, где фактически продублировать всю их реестровую запись. И все это хозяйство (вместе с компонентами) положить в каталог 1Ски (не базы, программы! блин), на всех компах. А если понадобиться добавить еще какой компонент - опять придется везде делать. Так что, применительно к куче машин, - пользы от этого никакой.

  

Везде - от моря Черного до снежной Колымы - мы трудностям показываем кукиш.
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #10 - 14. Ноября 2007 :: 11:29
Печать  
Ну почему никакой? Обычно все работают либо в терменале, либо запускают программу 1С из одного расшаренного каталога, т.е. достаточно туда запихать и всё.
А за подкинутый материал - спасибо.
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #11 - 14. Ноября 2007 :: 11:29
Печать  
Я помню что можно еще прописывать в манифесте гуид'ы этих объектов. И тогда регистрация не нужна.
  
Наверх
 
IP записан
 
alexqc
Junior Member
**
Отсутствует



Сообщений: 77
Местоположение: АР Крым, Симферополь
Зарегистрирован: 21. Июня 2006
Пол: Мужской
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #12 - 14. Ноября 2007 :: 11:49
Печать  
Arta писал(а) 14. Ноября 2007 :: 11:29:
Я помню что можно еще прописывать в манифесте гуид'ы этих объектов. И тогда регистрация не нужна.


Я ж об этом и сказал. Но фишка в том что НАДО прописывать (мне к примеру такое делать ну совсем влом), да и все равно надо лазать по всем машинам (тогда уж проще батник с regsvr'ами под админом позапускать). Ну и наконец, если появится ком-объект, которого ты не предусмотрел (не напмисал манифест), то его все равно регистрить придется.
  

Везде - от моря Черного до снежной Колымы - мы трудностям показываем кукиш.
Наверх
 
IP записан
 
alexqc
Junior Member
**
Отсутствует



Сообщений: 77
Местоположение: АР Крым, Симферополь
Зарегистрирован: 21. Июня 2006
Пол: Мужской
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #13 - 14. Ноября 2007 :: 11:53
Печать  
JohnyDeath писал(а) 14. Ноября 2007 :: 11:29:
Ну почему никакой? Обычно все работают либо в терменале, либо запускают программу 1С из одного расшаренного каталога, т.е. достаточно туда запихать и всё.
А за подкинутый материал - спасибо.


В таком варианте - да. Но я б не сказал что это "обычно". Например у нас - терминальщики только бухи с ДБФными базами, а остальные в торговой SQLной базе сидят.
  

Везде - от моря Черного до снежной Колымы - мы трудностям показываем кукиш.
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Регистрация ОЛЕ/АктивХ компонент [ в HKCU ]
Ответ #14 - 14. Ноября 2007 :: 11:55
Печать  
alexqc писал(а) 14. Ноября 2007 :: 11:49:
Я ж об этом и сказал.

Просмотрел.


Но тема все равно прикольная, у меня ком-объекты используются только на терминальных серверах.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать