Function Reference

首页  后退  前进

ObjCreate

 

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

 

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

参数

classname

对象的类名称, 格式如下: "appname.objectype"(程序名.对象类型)

   也可以是一个字符串表示形式的 CLSID.

servername

[可选] 远程计算机名称, 必须从对象获取.

username

[可选] 登录远程计算机时的用户名

   格式为 "计算机名称用户名", 或者 "域名用户名".

password

[可选] 登录远程计算机时的密码.

返回值

成功:

返回一个对象.

失败:

@error 设置 为非 0 值.

备注

使用 ObjCreate() 可以引用一个应用程序实例.

如果连接到一个已存在的进程, 使用 ObjGet() 代替.

 

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

检查错误使用 ObjEvent() 函数

 

如果要访问远程计算机的对象, 需下列应用:

 

·运行脚本的用户必须有适当的许可权限.

 

·远程计算机的对象必须支持 DCOM(分布式 COM)

 

·远程计算机必须有 '远程注册服务' 与 '文件和打印机共享服务' 处于运行中.

 

 

 

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

相关

GUICtrlCreateObj, IsObj, ObjEvent, ObjGet, ObjName

函数示例

示例 1

#include <MsgBoxConstants.au3>
; Counting the number of open shell windows
Local $oShell = ObjCreate("shell.application") ; Get the Windows Shell Object
Local $oShellWindows = $oShell.Windows() ; Get the collection of open shell Windows
If IsObj($oShellWindows) Then
    Local $sString = "" ; String for displaying purposes
    For $oWnd In $oShellWindows ; Count all existing shell windows
        $sString &= $oWnd.LocationName & @CRLF
    Next
    MsgBox($MB_SYSTEMMODAL, "", "Shell Windows:" & @CRLF & "You have the following shell windows:" & @CRLF & @CRLF & $sString)
EndIf

示例 2

#include <MsgBoxConstants.au3>
; Open the MediaPlayer on a REMOTE computer
Local $oRemoteMedia = ObjCreate("MediaPlayer.MediaPlayer.1", "name-of-remote-computer")
If Not @error Then
    MsgBox($MB_SYSTEMMODAL, "Remote ObjCreate Test", "ObjCreate() of a remote Mediaplayer Object successful !")
    $oRemoteMedia.Open(@WindowsDir & "\media\tada.wav") ; Play sound if file is present
Else
    MsgBox($MB_SYSTEMMODAL, "Remote ObjCreate Test", "Failed to open remote Object. Error code: " & Hex(@error, 8))
EndIf

----------------------------------------