Войти

Показать полную графическую версию : [решено] Ошибка в скрипте


Loran_rus
26-08-2011, 08:48
Доброго времени.

Скрипт не работает на той машине где должен использоваться :(

Ошибка: Невозможно создание объекта контейнером ActiveX: 'MSComDlg.CommonDialg'
Код: 800A01AD

Компьютер на котором он писался и тестировался и компьютер где он должен работать в Домене, Фреймворки стоят с 1 по 4, Библиотеки Microsoft Visual C++ (2005, 2008, 2010), имеются все критические и одобренные обновления (у нас свой WSUS), ОС Windows XP SP3, IE 8.

По возможному решению проблемы не нашел этого пункта в надстройках, ни на компьютерах где работает, ни на том где не работает.
1. Выбрать меню Пуск / Панель управления / Свойства обозревателя.

2. Перейти на вкладку Программы и кликнуть по кнопке Настроить надстройки.

3. Выбрать из списка надстройку Common Dialogs Class и нажать на кнопку Включить.
Возможно надо зарегистрировать библиотеку, но вот какую ???

Подозреваю что попросят скрипт в студию вот

Private Sub TakeFiles
Set OpenDialog = CreateObject("MSComDlg.CommonDialog") ' Microsoft Common Dialog Control
With OpenDialog
.DialogTitle = "Выберите файл(ы) для отправки"
.InitDir = SourceFolder
.Filter = "Все файлы (*.*)|*.*|Текст (*.txt)|*.txt"
.FilterIndex = 2
.Flags = 2621952
.MaxFileSize = 32000
.ShowOpen
Filename = .Filename
End With
If ( Len( OpenDialog.FileName) = 0) Then
' Вывод сообщения "Файл(ы) не выбраны!"
WScript.Quit 1
Else
Files = Split( OpenDialog.Filename, vbNullChar)
Count_Files = UBound(Files)
If Count_Files > 0 Then
For i = 1 To Count_Files
' Вызов процедуры копирования файлов
Next
Else
' Вызов процедуры копирования файла
End If
End If
End Sub

Как дело доходит до нее ошибка в первом символе строки Set OpenDialog = CreateObject("MSComDlg.CommonDialog")

Petya V4sechkin
26-08-2011, 09:04
надо зарегистрировать библиотеку, но вот какую ?
Comdlg32.ocx (помимо регистрации, сравните версии).

Iska
26-08-2011, 10:36
Он (Comdlg32.ocx) ещё и лицензирования может потом попросить ;).

Loran_rus
26-08-2011, 11:15
Он (Comdlg32.ocx) ещё и лицензирования может потом попросить
конечно попросит, но раз я его использую значит вопрос с этим какбэ решён :wink: :tongue:

На том компьютере Comdlg32.ocx ваше не оказалось хотя Comdlg32.dll был, но оно и очевидно дополнительного ПО кроме архиватора, почтового клиента и крипто систем там не когда не было и не должно быть.

Большое СПАСИБО




© OSzone.net 2001-2012