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
----------------------------------------
|