Технологии запуска OCX файлов без предварительной регистраци

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Технологии запуска OCX файлов без предварительной регистраци

Сообщение Pantalone » 28.07.2008 (Пн) 17:22

Microsoft предоставляет такую возможность - запуск любых OCX файлов без регистрации в системе. Эта штука например позволит избежать dll hell, т.е. можно все такие файлы держать в папке с программой, причем даже системные но другой например версии. Для этого достаточно добавить специальным образом скомпилированный манифест.
Хотелось бы спросить у тех кто вплотную работает с этой технологией какие грабли можно заполучить вместе с ней?
Одну граблю я нашел: запустив таким образом один раз программу не удасться ее запустить повторно после ее закрытия и переименования или перемещения папки в которой она находится. Похоже OCX все же где-то временно прописываются в текущей сессии Windows. Как быть хотелось бы знать.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Сообщение SLIM » 28.07.2008 (Пн) 21:13

Телепатов в студию.....
Пишите жизнь на чистовик.....переписать не удастся.....

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 28.07.2008 (Пн) 21:20

Каких еще телепатов, написал же "Хотелось бы спросить у тех кто вплотную работает с этой технологией ", если ты не знаешь об чем речь то эта тема не для тебя :)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 29.07.2008 (Вт) 5:19

На первый взгляд какая-то чушь.

Начнём с того, что OCX -- не более чем расширение. Требую уточнить, что имелось в виду -- COM-библиотеки, ActiveX-билиотеки или же ActiveX-библиотеки с контроллами (являющимися особыми видами классов) внутри.

Текст выглядит так, как будто Microsoft недавно предоставила какую-то такую технологию. И судя по тому, что речь идёт о каком-то манифесте, видимо речь идёт о том, о чём я ещё не слышал -- о чём-то новом. (Задолблали эти новые работчники в MS. Прежде чем создавать что-то, по интересловались бы, что до них сделали старые кадры).

Так вот, возможность создавать PublicCreateable-объекты из библиотек, не регистрируя их была с самого начала появления таких библиотек. В моей FireNativeDLL такой способ отлично проиллюстрированю.

Во-вторых, я не понимаю, о каком DLL HELL может идти речь. COM-библиотечка может лежать где ей вздумается, никто ей слово не скажет. Так что фраза "даже в папке с программой" -- не знаю к чему -- всю жизнь можно было держать их в папке с программой.

И при регистрации в реестре две разные (действительно разные) версии одной и той же библиотеки не перепишут друг-друга, т.к. у них будут разные UUID-ы.

Если же говорить о системных DLL, то есть SxS.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.07.2008 (Вт) 8:02

Речь о другом. В XP есть возможность одновременного присутствия в системе библиотек разных версий, притом, что они не мешают друг другу.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 29.07.2008 (Вт) 8:22

alibek
Это же WinSxS и оно не имеет никакого конкретного отношения к OCX. Мне кажется, всё-таки, автор о чём-то ещё.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 29.07.2008 (Вт) 12:39

Я прошу прощения если кого-то запутал, просто не мог вспомнить как же называется эта штука, которая меня заинтересовала и которую я как-то пробовал.
Registration-Free Activation of COM Components
И самое интересное это работает, можно хоть системные OCX к себе в папку положить и они там будут прекрасно себя чувствовать независимо от того что уже стоит в системе и какой версии.

Не видел как это сделано:
Хакер писал(а):Так вот, возможность создавать PublicCreateable-объекты из библиотек, не регистрируя их была с самого начала появления таких библиотек. В моей FireNativeDLL такой способ отлично проиллюстрированю.

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

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 29.07.2008 (Вт) 13:52

Но предполагаю, что надо писать какие-то невизуальные хитрые вызовы.

Поясни, что такое невизуальные хитрые вызовы.

штука от микрософта позволяет запускать уже написанное просто свалив все компоненты в папку с программой.

Ну и что в этом хорошего? И что хорошего в тулзе, кроме того, что она уже написана, в отличие от той же возможности, но реализации её самостоятельно?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 29.07.2008 (Вт) 21:37

Хакер
Не визуальные я имел в виду когда ты не мышкой перетаскиваешь на форму ListView например, а ручками пишешь код с его размещением. Да реакцию на действия с этим контролом тоже наверное как-то надо ручками прописывать, фиг знает, не видел то о чем ты говоришь.

Хорошего в написанной тулзе то что она написана и парить семе мозг больше не надо.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.07.2008 (Ср) 6:12

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


Ну перехвати соотв. Co-функции, будет также точно работать. Почему ты придумываешь, что надо будет иным образом работать с контроллом, если речь только о создании?

Хорошего в написанной тулзе то что она написана и парить семе мозг больше не надо.

Да ты и так его себе не утруждаешься иногда попарить.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 30.07.2008 (Ср) 17:58

Хакер
К можалению я не такой гигант как ты или некоторые чтобы, чего-то там уметь перехватывать. И потом для большого проекта наверное запаришься перехваты эти реализовывать чтобы перевести VB-шный проект в работу из одной папки без инсталляции всех осх.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.07.2008 (Ср) 18:03

К можалению я и некоторые — тоже не гиганты. Гиганты это например те, кто способны найти уязвимость в микрокоде процессора. Вот этого гианты, согласен.

Далее, уметь чего-то там перехватывать: очень важно и нужно.

для большого проекта наверное запаришься еерехваты эти реализовывать чтобы перевести VB-шный проект в работу из одной папки без инсталляции всех осх.

Да нет, не запаришьсяя, как для маленького, так и для большого.

Но я так и не понял ценность возможности работать с библиотеками без регистрации. Не иначе как изврат для извращенцев, мечтающих "прочитывать файл, не открывая его".
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 30.07.2008 (Ср) 21:04

Цель вообще-то сделать программу типа portable, т.е. для запуска без сетапа.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.07.2008 (Ср) 21:06

1) Что плохого в сетапе? Видимо проявляется тот же комплекс, который мешает некоторым личностям носить с собой библиотеки. И эти личности тащятся от возможности вшить эти библиотеки в EXE-шник...

2) Так всё равно установка будет. Только неявная. Это гораздо хуже, чем явная.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 30.07.2008 (Ср) 23:34

Плохого в сетапе ничего, меня наоборот Inno например радует в этом плане, только по какой-то причине иногда некоторые ОСХ оказываются незареганными и регаются только после повторного инсталла, фиг знает почему, наверное специфика компов этих пользователей, у меня мой дистриб всегда работает без сбоев. Так вот плохого ничего, просто есть ветвь ТЗ - сделать мобильный вариант типа воткнул флешку и работает. И все бы ничего, этот Registration-Free Activation of COM Components работает, но если после запуска переместить папку с прогой в другое место, то прога уже фиг запустится. Короче косяк.
И потом для чего-то же сделана такая возможность с этим манифестом.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 31.07.2008 (Чт) 7:28

Pantalone писал(а):Так вот плохого ничего, просто есть ветвь ТЗ - сделать мобильный вариант типа воткнул флешку и работает.

А ты читаешь, что тебе пишут?
Регистрируй нужные библиотеки при запуске и разрегистрируй при выходе, вот и будет портабельность.
Lasciate ogni speranza, voi ch'entrate.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 31.07.2008 (Чт) 10:10

alibek
Это очень кривой путь.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 31.07.2008 (Чт) 10:23

Интересно, в чем же кривость этого пути?
Весь мир матрица, а мы в нем потоки байтов!

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 31.07.2008 (Чт) 10:32

Pantalone
Это очень кривой путь.

Не использовать библиотеки сторонних разработчиков - вот ровный путь. :lol: Не использовать языки программирования сторонних разработчиков - вот гладкий путь. :lol: Только fasm!
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 31.07.2008 (Чт) 10:34

Я думаю, что в последнее время в этом разделе развелось очень много оффтопика и флуда.

Я думаю, что если те, кого я имею в виду, сами не поймут, модераторы им это сделать помогут.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Re: Технологии запуска OCX файлов без предварительной регистраци

Сообщение Pantalone » 21.10.2008 (Вт) 22:17

Продолжаю я париться с этой затеей. Нашел две программы, которые составляют необходимый манифест для запуска OCX прямо из папки программы без регистрации в системе. Одна прога делает простенький манифест. Другая неимоверно сложный, просто ну ваще :) И оба работают. Ни кто не работал до сих пор с сабжем? Интересует какой все-таки должен быть манифест простой или навороченный?

Sergeant Pepper
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 25.08.2006 (Пт) 8:49

Re: Технологии запуска OCX файлов без предварительной регистраци

Сообщение Sergeant Pepper » 29.10.2008 (Ср) 21:41

У пользователя может не быть прав для регистрации, а с манифестом нет проблем.
Тем более уже говорили о том, что появляется возможность использования разных версий.
А что за проги для генерации манифеста? А то я вручную их делал...

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Re: Технологии запуска OCX файлов без предварительной регистраци

Сообщение Pantalone » 29.10.2008 (Ср) 23:05

Приятель тут протестировал сию технологию в мировом масштабе, все равно появляются какие-то странные компы на которых прога выдает сообщение что OCX не зарегистрирован... И это при том что манифест в папке, OCX в папке и при инсталляции требуются права админа или повер юзера, т.е. по идее если уж сетап прошел, то и работать все должно. Какое-то фиг знает что :?

Программ всего две есть:
http://mazecomputer.com/sxs.htm
http://mmm4vb6.atom5.com/error75-065-may-help-1316.html

werbersoft
Новичок
Новичок
Аватара пользователя
 
Сообщения: 31
Зарегистрирован: 09.11.2008 (Вс) 17:13
Откуда: Ростова-на-Дону

Re: Технологии запуска OCX файлов без предварительной регистраци

Сообщение werbersoft » 09.11.2008 (Вс) 19:29

Хм... Интерсно. Я вот помню есть такие ActiveX-компоненты, которые можно запускать без какой либо регистрации.

Кстати, это так, для справки, регистрировать можно так:
Код: Выделить всё
Shell "RegSvr32 " + App.Path + "\sample.ocx \s" '\s для невидимости процесса регистрации.
Мирный программист, помогающий другим. Нехочу никого обижать и грубить.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 55

    TopList