Функция ObjGet

         Описание функции


ObjGet

Возвращает ссылку на COM-объект из существующего процесса или имени файла.

ObjGet ( "filename" [, "classname" ] )

Параметры

filename Полный путь к файлу содержащему объект (Смотрите примечания).
classname [необязательный] Класс объекта в следующем формате:
"appname.objectype"

Возвращаемое значение

Успех:Возвращает объект.
Ошибка:Возвращает 0 и устанавливает @error равным 1.

Примечания

Не обязательно указывать имя файла, если вы хотите использовать только имя класса, но параметр не должен быть пропущен. Используйте пустую строку, если вы хотите использовать только имя класса.
Например: $Object = ObjGet("","Excel.Application")

Если вы хотите использовать имя файла, то имя класса указывать не обязательно. Это необходимо только когда несколько классов определяется как один и тот же тип файла, и вы хотите получить доступ к определенным классам.

Имейте в виду, что не все компьютеры имеют тот же набор объектов. Поэтому всегда проверяйте наличие ошибок @error после вызова ObjGet().

Более подробно об объектах смотрите в Описание Obj/COM.

См. также

GUICtrlCreateObj, IsObj, ObjCreate, ObjEvent, ObjName

Пример

; Пример получения объекта, используя имя класса
;
; Excel должен быть установлен и запущен (activated) для успешного выполнения этого примера

Local $oExcel = ObjGet("", "Excel.Application") ; Получает существующий объект Excel

If @error Then
    MsgBox(4096, "Тест Excel", "Ошибка при получении активного объекта Excel. Код ошибки: " & Hex(@error, 8))
    Exit
EndIf

$oExcel.Visible = 1 ; Путь объект покажет себя
$oExcel.workbooks.add ; Добавляет новую книгу
Exit

; Пример получения объекта, используя имя файла
; С помощью Excel создайте файл Worksheet.xls в корневом каталоге диска C:\ для того чтобы этот пример работал.

Local $FileName = "C:\Worksheet.xls"

If Not FileExists($FileName) Then
    MsgBox(4096, "Тест файла Excel", "Не удается запустить этот тест, потому что вы не создали файл Excel " & $FileName)
    Exit
EndIf

Local $oExcelDoc = ObjGet($FileName) ; Получает объект Excel из существующего файла

If IsObj($oExcelDoc) Then

    ; Подсказка: Раскомментируйте эти строки, чтобы сделать Excel видимым (заимствовано: DaleHohm)
    ; $oExcelDoc.Windows(1).Visible = 1; Устанавливает первый лист в книге видимым
    ; $oExcelDoc.Application.Visible = 1; Устанавливает приложение видимым (без этого Excel будет завершён)

    Local $String = "" ; Строка для присоединения результатов

    ; Некоторые свойства документа не возвращают значение, мы будет игнорировать их.
    Local $OEvent = ObjEvent("AutoIt.Error", "nothing"); равносильно скрипту VBS - "Продолжить в случае ошибки"

    For $Property In $oExcelDoc.BuiltinDocumentProperties
        $String = $String & $Property.Name & ":" & $Property.Value & @CRLF
    Next

    MsgBox(4096, "Тест файла Excel", "Свойства документа " & $FileName & " содержат:" & @CRLF & @CRLF & $String)

    $oExcelDoc.Close ; Закрывает документ Excel

Else
    MsgBox(4096, "Тест файла Excel", "Ошибка: Не удалось открыть " & $FileName & " как объект Excel.")
EndIf