基 础 函 数 参 考


ObjCreate

创建 COM 对象引用的特定类名.

ObjCreate ( "类名称" [, "服务器名称" [,"用户名", ["密码"]]] )

参 数

类名称 对象的类名称, 格式如下:
"程序名.对象类型"
也可以是一个字符串表示形式的 CLSID.
服务器名称 [可选参数] 远程计算机名称.
从对象获取.
用户名 [可选参数] 登录远程计算机时的用户名
格式为 "计算机名称\用户名", 或者
"域名\用户码".
密码 [可选参数] 登录远程计算机时的密码.

返 回 值

成功: 返回一个对象.
失败: 返回 0, 设置 @error 为非 0 值.

备 注

使用 ObjCreate() 可以引用一个应用程序实例.
如果连接到一个已存在的进程, 使用 ObjGet() 代替.

并非所有计算机都有相同的对象集合. 因此调用 ObjCreate() 后, 应经常检查是否有错误发生.

如果要访问远程计算机的对象, 需下列应用:
-运行脚本的用户必须有适当的许可权限.
-远程计算机的对象必须支持 DCOM(分布式 COM COM)
-远程计算机必须有 '远程注册表服务' 与 '文件和打印机共享服务' 处于运行中.

关于 Objects (对象) 的更多信息见 Obj/COM Reference.

相 关 函 数

GUICtrlCreateObj, IsObj, ObjEvent, ObjGet, ObjName

函 数 示 例


; 示例 1
;
; 计算打开 shell(命令解释程序) 窗口的数量

Local $oShell = ObjCreate("shell.application") ; 获取窗口 Shell 对象
Local $oShellWindows = $oShell.windows ; 获取窗口 Shell 集合

If IsObj($oShellWindows) Then

    Local $string = "" ; 用于显示用途的字符串

    For $Window In $oShellWindows ; 计数现有 Shell 窗口
        $string = $string & $Window.LocationName & @CRLF
    Next

    MsgBox(0, "窗口 Shell","您打开以下 Shell 窗口:" & @CRLF & @CRLF & $string);

EndIf
Exit


; 示例 2
;
; 打开远程计算机的 MediaPlayer
Local $oRemoteMedia = ObjCreate("MediaPlayer.MediaPlayer.1", "name-of-remote-computer")

If Not @error Then
    MsgBox(0, "创建远程对象测试", "ObjCreate() 创建远程 MediaPlayer 对象成功 !")
    $oRemoteMedia.Open(@WindowsDir & "\media\Windows XP Startup.wav") ; Play sound if file is present
Else
    MsgBox(0, "创建远程对象测试", "无法打开远程对象. 错误代码: " & Hex(@error, 8))
EndIf

provider with jb51.net (unicode)