Можно ли обратиться к Mscomctl.ocx напрямую без регистрации?

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

Можно ли обратиться к Mscomctl.ocx напрямую без регистрации?

Сообщение Pantalone » 09.03.2006 (Чт) 18:51

Допустим в системе нет такого ocxб можно ли притащить его с собой, но не регистрировать в системе, а как-то хитро обратиться напрямую. Просьба без вопросов "зачем?", "а на хрена?", вопрос есть и на него нужен ответ :)

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

Сообщение alibek » 09.03.2006 (Чт) 18:53

Нельзя.
Можно ли открыть файл не открывая его?
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.03.2006 (Чт) 19:02

alibek писал(а):Можно ли открыть файл не открывая его?

В оригинале было "прочитать файл, не открывая его" ;-)


И таки-да, низя.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.03.2006 (Чт) 19:07

И просьба без вопросов "ну как же так?", "а может всё-таки?", ответ есть и он получен.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение Pantalone » 09.03.2006 (Чт) 19:35

А чем сабж отличается от Mscomctl.dll?

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 09.03.2006 (Чт) 19:36

насколько я помню, в нерегистрированные КОМ библиотеки подхватываются из папки, хотя могу ошибаться. Но где то такое проскакивало.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.03.2006 (Пт) 6:22

Pantalone писал(а):А чем сабж отличается от Mscomctl.dll?

После этого вопроса топик однозначно перемещается в данный раздел.

Тем же, чем winsock.ocx отличается от wsock32.dll, Pantalone.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 10.03.2006 (Пт) 12:13

Не понял. Если есть скомпилированных exe, которому нужен ocx, то если этот ocx таскать в папке с прогой, то exeшник должен работать, даже если ocx не зареген. Или я вру?

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 10.03.2006 (Пт) 12:22

Для некоторых ocx это так.
Изображение

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 30.05.2007 (Ср) 10:34

странно, или мне кажется, но вчера поставил с нуля 98-ую...
кинул в папку, прогу, msvbm60, и mscomctl. И никакой регистрации не потребовалось...
тривьюха забивается...
может регистрация влияет только на какие-то отдельные вещи? а для некоторых достаточно нахождение mscomctl в папке?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 30.05.2007 (Ср) 10:50

Просто при обнаружении необходимой библиотеки она регистрируется.
Лучший способ понять что-то самому — объяснить это другому.

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

Сообщение Денис » 30.05.2007 (Ср) 10:58

Значит, если говорить о таких парах ocx-dll как comctl и winsock то такие ocx'ы являются какбы обертками для соответствующих dll. Сделано это биллом исключительно из вредности, чтобы еще больще файла за прогами тягать. Да и вообще вся система ocx - это попытка M$ надеть на .COM свое фуфло! Как видим - Delphi прекрасно работает c dll без всяких ocx'ов.
Сейчас меня интересует возможность создания своих собственных ctl-оберток для dll
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.05.2007 (Ср) 11:01

VB_D3D_Денис, я точно помню, что тебя уже предупреждали на предмет того, что ты регулярно постишь бред в топики.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 30.05.2007 (Ср) 11:16

... и ещё. Может мимо кассы, но тем не менее...
у меня в референсах стоит ActiveX Data Object 2.6
однако, скомпилированный проект стартует(на "чистой" 98-ой) и без установки MDAC'a. Ругается, только когда я начинаю запрашивать соединение(отдельным модулем), на что-то связанное с автоматизацией. Так вот, хотел узнать, когда инициализируется всё-таки ADO? При старте программы, или когда я инициализирую модуль?

Спрашиваю для того чтобы узнать, смогу ли я при старте проги проверять реестр на наличие ADO.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 30.05.2007 (Ср) 11:28

Да и вообще вся система ocx - это попытка M$ надеть на .COM свое фуфло!

Бред, однозначно. dll содержит api-функции для создания и работы с common controls. ocx - это визуальная com-обертка. Если тебе комфортней юзать километры апи-вызовов, а не com-контрол, который это делает за тебя, флаг в руки.

kibernetics
Лучше не заниматься ерундой и использовать createobject и позднее связывание или использовать последний mdac и таскать его с дистрибутивом.
Лучший способ понять что-то самому — объяснить это другому.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 30.05.2007 (Ср) 11:46

Да. Про позднее связывание мне говаривал Хакер, но я пока исследую этот вопрос, т.к. никогда не связывался...

Дело в том, что дистрибутив для меня несколько неуместен. Поэтому старт проги осуществляется непосредственный. Читается реестр, если нет упоминания об необходимой версии АДО в системе, запускается "тихая" установка MDAC. Я просто где-то слышал или читал, что модуль не инициализируется при старте, а только тогда, когда к нему обращаются... Если это так, то нет необходимости задействовать позднее связывание.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.05.2007 (Ср) 12:13

kibernetics писал(а):Читается реестр, если нет упоминания об необходимой версии АДО в системе, запускается "тихая" установка MDAC.

Руки надо за это отрывать. И этими оторванными руками бить по голове.

Ты в курсе, что MDAC является компонентом системы и потому для каждой версии Windows есть отдельная версия MDAC, несовместимая с остальными? И что у каждой из этих версий есть ещё подверсии для каждого из возможных языков Windows?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 30.05.2007 (Ср) 12:47

GSerg писал(а):Ты в курсе, что MDAC является компонентом системы и потому для каждой версии Windows есть отдельная версия MDAC, несовместимая с остальными? И что у каждой из этих версий есть ещё подверсии для каждого из возможных языков Windows?


kibernetics писал(а):если нет упоминания об необходимой версии АДО в системе, запускается "тихая" установка MDAC.


GSerg писал(а):Руки надо за это отрывать. И этими оторванными руками бить по голове.


Не могу понять за что такое дикое наказание.

Что я неверно делаю?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.05.2007 (Ср) 12:53

kibernetics, расшифруй, что ты понимаешь под подчёркнутой "необходимой версией".
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 30.05.2007 (Ср) 13:04

читаю ветку реестра, если там значение, например 2.81.1117.0, то сравниваю со своим. Если оно ниже чем у меня, то обновляю MDAC

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 30.05.2007 (Ср) 14:13

Да. Про позднее связывание мне говаривал Хакер, но я пока исследую этот вопрос, т.к. никогда не связывался...
Это не космос, исследовать там нечего. Просто убираешь адо из референсов, все объявления as ADODB... заменяешь на Object, все вызовы = New ADODB... заменяешь на = CreateObject("ADODB...") и константы на их значения. При CreateObject будет создаваться объект последней доступной версии.
Лучший способ понять что-то самому — объяснить это другому.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.05.2007 (Ср) 17:53

kibernetics писал(а):читаю ветку реестра, если там значение, например 2.81.1117.0, то сравниваю со своим. Если оно ниже чем у меня, то обновляю MDAC

Нет слов...

Попробуй всё же (я понимаю, что трудно и что в первый раз в жизни) прочитать написанное выше.

Есть MDAC для Win95/98. MDAC для Win ME. MDAC для Win 2000. MDAC для Win XP. Каждый перечисленный имеет столько разновидностей, на скольких языках выпущена Windows.

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

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 30.05.2007 (Ср) 18:46

GSerg
просто интересн другой факт:
когда инсталятор ставит приложение, то по желанию инсталяторомейкера(незнаю как назвать того, кто компонует дистрибутив) ставится и MDAC. Ну, а когда ставится MDAC, то ему по ходу всё равно какой там виндоус.
Там же в инф файлах содержится информация что требуется обновлять для конкретного семейства винды, а что нет.
Или ты имел ввиду, что я разберу mdac_typ, вырежу оттуда версию для 98, к примеру, и буду пихать её на все системы...
По сути, будет всё то же самое, как если бы юзер целенаправленно нажал на инсталл mdac_typ..., только тихо.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.05.2007 (Ср) 18:52

Ты правда не понимаешь, что есть много разных версий mdac_typ, каждая называется mdac_typ, и каждая предназначена только для одной версии винды?..
У тебя есть поблизости стена? :roll:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 30.05.2007 (Ср) 19:23

Quick Details
File Name: MDAC_TYP.EXE
Version: 2.81
Date Published: 5/10/2005
Language: English

Overview
Microsoft Data Access Components (MDAC) 2.8 SP1 contains core Data Access components such as the Microsoft SQL Server™ OLE DB provider and ODBC driver. This redistributable installer for the MDAC 2.8 SP1 release installs the same Data Access components as Microsoft Windows XP SP2.

This release does not include Microsoft Jet, the Microsoft Jet OLE DB Provider or ODBC driver, the Desktop Database ODBC Drivers, or the Visual FoxPro ODBC Driver.

System Requirements
Supported Operating Systems: Windows 2000; Windows 98; Windows ME; Windows NT
Available for x86-based computers only


Один файл для всех систем. Нигде нет упоминания, что только для 2000 например...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.05.2007 (Ср) 19:39

То-то только у меня на компе две версии mdac_typ, одна mdac28ru.exe и ещё одна windowsxp-kb829558-x86-rus.exe, и это только русский язык...

Когда-то очень давно у меня в innosetup установочный скрипт был, который смотрел версию винды и ставил нужный mdac в зависимости от неё... А потом я его удалил. Потому что нельзя так просто компоненты системные ставить. Их наличие должно обеспечиваться пользователем. А программа в их отсутствие должна отказаться работать, а не ставить их тихо.

SQL Server 2005, чтобы установиться, требует наличия в системе Windows Installer 3.1. И хотя этот 3.1 распространяется в той же форме, что и mdac, и хотя его тоже можно тихо запустить, этого не делается. SQL Server говорит "нельзя установиться без windows installer 3.1" и не устанавливается. Потому что это правильно.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 31.05.2007 (Чт) 9:31

Несомненно, тихо ставить - это неправильно.
Но у меня нет другого выхода. Должен ли пользователь определять их наличие? Возможно, но не домохозяйка, бухгалтерша или менеджер. С этим им не совладать нипочём. Увы... поэтому, единственное, что перед запуском будет, это предупреждение, что в системе не установлено необходимое ПО, и требуется обновление компонентов. В случае согласия, АДО всё равно тихо запустится...

GSerg
я понял твою точку зрения, и дальнейшую перепалку предлагаю приостановить...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 31.05.2007 (Чт) 13:21

kibernetics
Ты бы вместо БД использовал структурированное хранилище+xml. На твои нужды этого хватит.
Изображение

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 01.06.2007 (Пт) 18:28

keks-n
смех.
подозреваю, что нет ничего круче реляционной SQL.
к тому же размеры в хмл куда заметнее больше...
поле оле как хранить?
поиск, фильтр...
можно конечно, но геммороидально по всей видимости. зачем изобретать велосипед, када гейтяне(извините, имел ввиду программистов Гейтса) практически всё предусмотрели.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 72

    TopList