Автоустановка Comdlg32.ocx?

Я хочу распространить электронную таблицу Excel с формой, включающей компонент comdlg32.ocx, в сетевой ресурс.

Пользователи Windows 7, вероятно, не будут иметь этот компонент установлен или зарегистрирован. Есть ли способ автоматически проверить и затем установить этот компонент в Windows 7?

1 ответ

У меня когда-то был какой-то код, который делал что-то вроде

on error goto errhandler
try to instantiate an object of type x
we're not in the error handler - the dll must have already been registered! 
continue processing...
exit sub (or whatever)

errhandler:
shell "regsvr.exe /s " & path_to_dll
retry instantiation

Очевидно, что вы захотите избежать попадания в бесконечный цикл, если вызов regsvr завершится неудачно. Плюс я бы не рекомендовал регистрировать dll на сетевом ресурсе; он может быть недоступен при следующем запуске макроса. Попробуйте сначала скопировать его на локальный диск.

Еще одна вещь, которую следует учитывать: вам не следует копировать одну системную DLL, так как они выпускаются в наборах, что может вызвать проблемы с версиями. Однако иногда мне было проще просто рисковать и идти дальше.

Другие вопросы по тегам