Функция ObjCreate

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


ObjCreate

Создает ссылку на COM-объект из данного класса.

ObjCreate ( "classname" [, "servername" [, "username",[ "password" ]]] )

Параметры

classname Класс объекта следующего формата:
"appname.objectype"
Это также может быть строковое представление CLSID.
servername [необязательный] Имя удаленного компьютера, с которого необходимо получить объект.
username [необязательный] Имя usercode на удаленном компьютере
Вы должны ввести это в формате "computer\usercode" или "domain\usercode".
password [необязательный] Пароль для usercode на удаленном компьютере.

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

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

Примечания

Используйте ObjCreate(), если вы хотите создать новый экземпляр ссылающийся на приложение.
Если вы хотите подключиться к существующему процессу, то используйте ObjGet().

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

Следующие требования применяются, если вы хотите получить доступ к объектам на удаленных компьютерах:
-Пользователь, запустивший скрипт, должен иметь соответствующие разрешения.
-Объект на удаленном компьютере должен поддерживать DCOM (Distributed COM)
-Удаленный компьютер должен иметь запущенными службы "Удаленный реестр" и "Общий доступ к файлам и принтерам".

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

См. также

GUICtrlCreateObj, IsObj, ObjEvent, ObjGet, ObjName

Пример

; Пример 1
;
; Подсчет количество открытых окон эксплорера и интернет эксплорера (Windows Shell)

Local $oShell = ObjCreate("shell.application") ; Получает объекты Windows Shell
Local $oShellWindows = $oShell.windows ; Получает только открытые shell Windows

If IsObj($oShellWindows) Then

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

    For $oWnd In $oShellWindows ; Перечисление всех существующих shell windows
        $string &= $oWnd.LocationName & @CRLF
    Next

    MsgBox(4096, "Shell Windows", "Вы имеете следующие открытые окна:" & @CRLF & @CRLF & $string);

EndIf
Exit

; Пример 2
;
; открывает MediaPlayer на УДАЛЁННОМ компьютере
Local $oRemoteMedia = ObjCreate("MediaPlayer.MediaPlayer.1", "name-of-remote-computer")

If Not @error Then
    MsgBox(4096, "Тест удалённого ObjCreate", "Функция ObjCreate() успешно создала объект Mediaplayer на удалённом компьютере!")
    $oRemoteMedia.Open(@WindowsDir & "\media\tada.wav") ; Воспроизведение звукового файл, если он существует
Else
    MsgBox(4096, "Тест удалённого ObjCreat", "Не удалось открыть объект на удалённом компьютере. Код ошибки: " & Hex(@error, 8))
EndIf