Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Ошибка в скрипте (http://forum.oszone.net/showthread.php?t=214078)

Loran_rus 26-08-2011 08:48 1739566

Ошибка в скрипте
 
Доброго времени.

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

Ошибка: Невозможно создание объекта контейнером 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 1739570

Цитата:

Цитата Loran_rus
надо зарегистрировать библиотеку, но вот какую ?

Comdlg32.ocx (помимо регистрации, сравните версии).

Iska 26-08-2011 10:36 1739606

Он (Comdlg32.ocx) ещё и лицензирования может потом попросить ;).

Loran_rus 26-08-2011 11:15 1739628

Цитата:

Цитата Iska
Он (Comdlg32.ocx) ещё и лицензирования может потом попросить

конечно попросит, но раз я его использую значит вопрос с этим какбэ решён :wink: :tongue:

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

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


Время: 18:08.

Время: 18:08.
© OSzone.net 2001-