- 版本 v1.1.15.01
- 指南和概述
- 常见问题(FAQ)
- 按字母排序的命令和函数索引
- AutoHotkey 脚本展示
- 变更和新功能
- 基本用法和语法
- 迁移到 AutoHotkey 1.1(AutoHotkey_L)
- 环境管理
- 本机代码互操作
- 文件、目录和磁盘管理
- Drive
- DriveGet
- DriveSpaceFree
- FileAppend
- FileCopy
- FileCopyDir
- FileCreateDir
- FileCreateShortcut
- FileDelete
- FileEncoding [AHK_L 42+]
- FileGetAttrib
- FileGetShortcut
- FileGetSize
- FileGetTime
- FileGetVersion
- FileInstall
- FileMove
- FileMoveDir
- FileOpen [AHK_L 42+]
- FileReadLine
- FileRead
- FileRecycle
- FileRecycleEmpty
- FileRemoveDir
- FileSelectFile
- FileSelectFolder
- FileSetAttrib
- FileSetTime
- IfExist / IfNotExist
- IniDelete
- IniRead
- IniWrite
- Loop(文件和文件夹)
- Loop(读取文件内容)
- SetWorkingDir
- SplitPath
- 流程控制
- #Include / #IncludeAgain
- {…} (区块)
- 中断
- Catch [v1.1.04+]
- 继续
- Critical
- Else
- Exit
- ExitApp
- Finally [v1.1.14+]
- For 循环 [AHK_L 59+]
- Gosub
- Goto
- If命令
- if(表达式)
- If/IfEqual/IfNotEqual/IfLess/IfLessOrEqual/IfGreater/IfGreaterOrEqual
- If var [not] between LowerBound and UpperBound
- If var is [not] type
- If var [not] in/contains value1,value2,…
- IfInString / IfNotInString
- IfMsgBox
- IfWinActive / IfWinNotActive / WinActive
- IfWinExist / IfWinNotExist / WinExist
- Loop 命令
- OnExit
- 暂停
- Reload
- Return
- SetBatchLines
- SetTimer
- Sleep
- Suspend
- Thread
- Throw [v1.1.04+]
- Try [v1.1.04+]
- Until [AHK_L 59+]
- While 循环 [v1.0.48+]
- 内置函数
- GUI、MsgBox、InputBox 及其他对话框
- 鼠标和键盘
- 鼠标和键盘
- #InstallKeybdHook
- #InstallMouseHook
- #KeyHistory
- BlockInput
- Click [v1.0.43+]
- ControlClick
- ControlSend / ControlSendRaw
- CoordMode
- GetKeyState
- KeyHistory
- KeyWait
- Input
- MouseClick
- MouseClickDrag
- MouseGetPos
- MouseMove
- Send / SendRaw / SendInput / SendPlay / SendEvent: 发送按键和点击
- SendLevel [v1.1.06+]
- SendMode [v1.0.43+]
- SetDefaultMouseSpeed
- SetKeyDelay
- SetMouseDelay
- SetCapsLockState/SetNumLockState/SetScrollLockState
- SetStoreCapslockMode
- 数学相关
- 屏幕管理
- 杂项命令
- 进程管理
- 注册表管理
- 声音命令
- 字符串管理
- 窗口管理
- 控件
- 窗口组
- #WinActivateForce
- DetectHiddenText
- DetectHiddenWindows
- SetTitleMatchMode
- SetWinDelay
- StatusBarGetText
- StatusBarWait
- WinActivate
- WinActivateBottom
- WinClose
- WinGet
- WinGetActiveStats
- WinGetActiveTitle
- WinGetClass
- WinGetPos
- WinGetText
- WinGetTitle
- WinHide
- WinKill
- WinMaximize
- WinMinimize
- WinMinimizeAll / WinMinimizeAllUndo
- WinMove
- WinRestore
- WinSet
- WinSetTitle
- WinShow
- WinWait
- WinWaitActive / WinWaitNotActive
- WinWaitClose
- #指令
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
ComObjType() [v1.0.91+]
从 COM 对象获取类型信息。
VarType := ComObjType(ComObject) Name := ComObjType(ComObject, "Name") IID := ComObjType(ComObject, "IID")
参数
- ComObject
包含 COM 对象或类型化值的包装器对象.
- VarType
表示值类型的整数. 请参阅下面.
- Name
接口类型名.
- IID
表示接口类型的全局唯一标识符 (GUID).
返回值
如果省略第二个参数, 则返回包装器对象包含的值的变量类型.
如果第二个参数为 "Name" 或 "IID" 并且包装器对象包含 COM 对象 (变量类型 VT_DISPATCH), 则返回 COM 对象的类型名或其主接口的标识符.
如果参数无效或发生了错误, 则返回空字符串.
变量类型的常量值
VT_EMPTY = 0 ; 没有值 VT_NULL = 1 ; SQL 风格的空值 VT_I2 = 2 ; 16 位有符号整数 VT_I4 = 3 ; 32 位有符号整数 VT_R4 = 4 ; 32 位浮点数 VT_R8 = 5 ; 64 位浮点数 VT_CY = 6 ; 通用 VT_DATE = 7 ; 日期 VT_BSTR = 8 ; COM 字符串(带长度前缀的 Unicode 字符串) VT_DISPATCH = 9 ; COM 对象 VT_ERROR = 0xA ; Error 码(32 位整数) VT_BOOL = 0xB ; 布尔值真(-1)或假(0) VT_VARIANT = 0xC ; VARIANT(必须与 VT_ARRAY 或 VT_BYREF 组合使用) VT_UNKNOWN = 0xD ; IUnknown 接口指针 VT_DECIMAL = 0xE ; (不支持) VT_I1 = 0x10 ; 8 位有符号整数 VT_UI1 = 0x11 ; 8 位无符号整数 VT_UI2 = 0x12 ; 16 位无符号整数 VT_UI4 = 0x13 ; 32 位无符号整数 VT_I8 = 0x14 ; 64 位有符号整数 VT_UI8 = 0x15 ; 64 位无符号整数 VT_INT = 0x16 ; 有符号机器整数 VT_UINT = 0x17 ; 无符号机器整数 VT_RECORD = 0x24 ; 用户定义类型 VT_ARRAY = 0x2000 ; SAFEARRAY VT_BYREF = 0x4000 ; 到另一种值的指针 /* VT_ARRAY 和 VT_BYREF 与另一个值组合在一起 (使用按位 "或") 来指定准确的类型. 例如, 0x2003 表示 32 位有符号整数的 SAFEARRAY 而 0x400C 表示到 VARIANT 的指针. */
一般说明
在通常情况下, COM 对象的方法或属性的返回值会被转换成 AutoHotkey 支持的适合的数据类型. 没有明确处理的类型通过 VariantChangeType 强制转换成字符串; 如果转换失败或变量类型包含 VT_ARRAY 或 VT_BYREF 标志, 则返回包含值和其类型的对象代替.
对于任意变量 x, 如果 ComObjType(x)
返回整数, 则 x 包含 COM 对象包装器.
相关
ComObjValue, ComObjCreate, ComObjGet, ComObjActive
示例
d := ComObjCreate("Scripting.Dictionary") VarType := ComObjType(d) ; 对于可脚本化对象总为 9. Name := ComObjType(d, "Name") ; 仅对于可脚本化对象有效. IID := ComObjType(d, "IID") ; 同上. MsgBox Variant type:`t%VarType%`nType name:`t%Name%`nInterface ID:`t%IID%
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论