Documentation
¶
Overview ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 用于自动化 Windows 应用程序的 UI 元素操作
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装 ¶
Package uiautomation 提供 Windows UI Automation 的 Go 语言封装
Index ¶
- Variables
- func AddRef(v *IUnKnown) uint32
- func CoInitialize() error
- func CoUninitialize()
- func CreateInstance(clsid, riid *syscall.GUID, clsctx CLSCTX) (unsafe.Pointer, error)
- func FindWindowExW(phwdn, chwdn uintptr, lpclass, lpwindow string) uintptr
- func FindWindowW(lpclass, lpwindow string) uintptr
- func GetIDsOfNames(v *IDispatch, in *syscall.GUID, in2 uint16, in3, in4 uint32) (int32, error)
- func GetWindowForString(classname, windowname string) (uintptr, error)
- func Get_BooleanValue(v *IUIAutomationBoolCondition) int32
- func Get_ChildCount(v *IUIAutomationAndCondition) int32
- func Get_Length(v *IUIAutomationElementArray) int32
- func HResult(ret uintptr) error
- func QueryInterface(v *IUnKnown, riid *syscall.GUID) (unsafe.Pointer, error)
- func Release(v *IUnKnown) uint32
- func TreeString(root *Element, level int)
- func UnKnownToUintptr(obj interface{}) uintptr
- type CLSCTX
- type ChangeEventHandler
- type ChangeEventHandlerNativeArray
- type ControlTypeId
- type Element
- func (e *Element) AcceleratorKey() error
- func (e *Element) AccessKey() error
- func (e *Element) AriaProperties() error
- func (e *Element) AriaRole() error
- func (e *Element) AutomationId() error
- func (e *Element) BoundingRectangle()
- func (e *Element) ClassName() error
- func (e *Element) ControlType()
- func (e *Element) ControllerFor()
- func (e *Element) Culture()
- func (e *Element) DescribedBy()
- func (e *Element) FindByAutomationId(id string) *Element
- func (e *Element) FindByName(name string) *Element
- func (e *Element) FlowsTo()
- func (e *Element) FormatString() string
- func (e *Element) FrameworkId() error
- func (e *Element) GetExpandCollapsePattern() (*IUIAutomationExpandCollapsePattern, error)
- func (e *Element) GetInvokePattern() (*IUIAutomationInvokePattern, error)
- func (e *Element) GetSelectionItemPattern() (*IUIAutomationSelectionItemPattern, error)
- func (e *Element) GetTogglePattern() (*IUIAutomationTogglePattern, error)
- func (e *Element) GetValuePattern() (*IUIAutomationValuePattern, error)
- func (e *Element) HasKeyboardFocus()
- func (e *Element) HelpText() error
- func (e *Element) IsContentElement()
- func (e *Element) IsControlElement()
- func (e *Element) IsDataValidForForm()
- func (e *Element) IsEnabled()
- func (e *Element) IsKeyboardFocusable()
- func (e *Element) IsOffscreen()
- func (e *Element) IsPassword()
- func (e *Element) IsRequiredForForm()
- func (e *Element) ItemStatus() error
- func (e *Element) ItemType() error
- func (e *Element) LabeledBy()
- func (e *Element) LocalizedControlType() error
- func (e *Element) Name() error
- func (e *Element) NativeWindowHandle()
- func (e *Element) Orientation()
- func (e *Element) Populate(cached bool)
- func (e *Element) ProcessId()
- func (e *Element) ProviderDescription() error
- func (e *Element) SetUIAutomation(uiaumation *IUIAutomationElement)
- func (e *Element) String() string
- type EventHandler
- type IAccessible
- type IAccessibleVtbl
- type IAnnotationProvider
- type IAnnotationProviderVtbl
- type IDispatch
- type IDispatchVtbl
- type IDropTarget
- type IDropTargetVtbl
- type IRawElementProviderSimple
- type IRawElementProviderSimpleVtbl
- type IRichEditUiaInformation
- type IRichEditUiaInformationVtbl
- type IUIAutomation
- func (v *IUIAutomation) AddAutomationEventHandler(opt *EventHandler) error
- func (v *IUIAutomation) AddFocusChangedEventHandler(in *IUIAutomationCacheRequest, in2 *IUIAutomationFocusChangedEventHandler) error
- func (v *IUIAutomation) AddPropertyChangedEventHandler(opt *ChangeEventHandler) error
- func (v *IUIAutomation) AddPropertyChangedEventHandlerNativeArray(opt *ChangeEventHandlerNativeArray) error
- func (v *IUIAutomation) AddStructureChangedEventHandler(opt *StructureChangedEventHandler) error
- func (v *IUIAutomation) CheckNotSupported(in *VARIANT) (int32, error)
- func (v *IUIAutomation) CompareElements(in, in2 *IUIAutomationElement) (int32, error)
- func (v *IUIAutomation) CompareRuntimeIds(in, in2 *TagSafeArray) (int32, error)
- func (v *IUIAutomation) CreateAndCondition(in, in2 *IUIAutomationCondition) (*IUIAutomationCondition, error)
- func (v *IUIAutomation) CreateAndConditionFromArray(in *TagSafeArray) (*IUIAutomationCondition, error)
- func (v *IUIAutomation) CreateAndConditionFromNativeArray(in *IUIAutomationCondition, in2 int32) (*IUIAutomationCondition, error)
- func (v *IUIAutomation) CreateCacheRequest() (*IUIAutomationCacheRequest, error)
- func (v *IUIAutomation) CreateFalseCondition() (*IUIAutomationCondition, error)
- func (v *IUIAutomation) CreateNotCondition(in *IUIAutomationCondition) (*IUIAutomationCondition, error)
- func (v *IUIAutomation) CreateOrCondition(in, in2 *IUIAutomationCondition) (*IUIAutomationCondition, error)
- func (v *IUIAutomation) CreateOrConditionFromArray(in *TagSafeArray) (*IUIAutomationCondition, error)
- func (v *IUIAutomation) CreateOrConditionFromNativeArray(in *IUIAutomationCondition, in2 int32) (*IUIAutomationCondition, error)
- func (v *IUIAutomation) CreatePropertyCondition(id PropertyId, value VARIANT) (*IUIAutomationCondition, error)
- func (v *IUIAutomation) CreatePropertyConditionEx(in *PropertyId, in2 *VARIANT, in3 PropertyConditionFlags) (*IUIAutomationCondition, error)
- func (v *IUIAutomation) CreateProxyFactoryEntry(in *IUIAutomationProxyFactory) (*IUIAutomationProxyFactoryEntry, error)
- func (v *IUIAutomation) CreateTreeWalker(in *IUIAutomationCondition) (*IUIAutomationTreeWalker, error)
- func (v *IUIAutomation) CreateTrueCondition() *IUIAutomationCondition
- func (v *IUIAutomation) ElementFromHandle(in uintptr) (*IUIAutomationElement, error)
- func (v *IUIAutomation) ElementFromHandleBuildCache(in uintptr, in2 *IUIAutomationCacheRequest) (*IUIAutomationElement, error)
- func (v *IUIAutomation) ElementFromIAccessible(in *IAccessible, in2 int32) (*IUIAutomationElement, error)
- func (v *IUIAutomation) ElementFromIAccessibleBuildCache(in *IAccessible, in2 int32, in3 *IUIAutomationCacheRequest) (*IUIAutomationElement, error)
- func (v *IUIAutomation) ElementFromPoint(in *TagPoint) (*IUIAutomationElement, error)
- func (v *IUIAutomation) ElementFromPointBuildCache(in *TagPoint, in2 *IUIAutomationCacheRequest) (*IUIAutomationElement, error)
- func (v *IUIAutomation) GetFocusedElement() (*IUIAutomationElement, error)
- func (v *IUIAutomation) GetFocusedElementBuildCache(in *IUIAutomationCacheRequest) (*IUIAutomationElement, error)
- func (v *IUIAutomation) GetPatternProgrammaticName(in PatternId) (string, error)
- func (v *IUIAutomation) GetPropertyProgrammaticName(in PropertyId) (string, error)
- func (v *IUIAutomation) GetRootElement() (*IUIAutomationElement, error)
- func (v *IUIAutomation) GetRootElementBuildCache(in *IUIAutomationCacheRequest) (*IUIAutomationElement, error)
- func (v *IUIAutomation) Get_ContentViewCondition() *IUIAutomationCondition
- func (v *IUIAutomation) Get_ContentViewWalker() *IUIAutomationTreeWalker
- func (v *IUIAutomation) Get_ControlViewCondition() *IUIAutomationCondition
- func (v *IUIAutomation) Get_ControlViewWalker() *IUIAutomationTreeWalker
- func (v *IUIAutomation) Get_ProxyFactoryMapping() *IUIAutomationProxyFactoryMapping
- func (v *IUIAutomation) Get_RawViewCondition() *IUIAutomationCondition
- func (v *IUIAutomation) Get_RawViewWalker() *IUIAutomationTreeWalker
- func (v *IUIAutomation) Get_ReservedMixedAttributeValue() *IUnKnown
- func (v *IUIAutomation) Get_ReservedNotSupportedValue() *IUnKnown
- func (v *IUIAutomation) IntNativeArrayToSafeArray(in, in2 int32) (*TagSafeArray, error)
- func (v *IUIAutomation) IntSafeArrayToNativeArray(in *TagSafeArray) (int32, int32, error)
- func (v *IUIAutomation) PollForPotentialSupportedPatterns(in *IUIAutomationElement) (*TagSafeArray, *TagSafeArray, error)
- func (v *IUIAutomation) PollForPotentialSupportedProperties(in *IUIAutomationElement) (*TagSafeArray, *TagSafeArray, error)
- func (v *IUIAutomation) RectToVariant(in *TagRect) (*VARIANT, error)
- func (v *IUIAutomation) Release() uint32
- func (v *IUIAutomation) RemoveAllEventHandlers() error
- func (v *IUIAutomation) RemoveAutomationEventHandler(in UIA_EventId, in2 *IUIAutomationElement, in3 *IUIAutomationEventHandler) error
- func (v *IUIAutomation) RemoveFocusChangedEventHandler(in *IUIAutomationFocusChangedEventHandler) error
- func (v *IUIAutomation) RemovePropertyChangedEventHandler(in *IUIAutomationElement, in2 *IUnKnown) error
- func (v *IUIAutomation) RemoveStructureChangedEventHandler(in *IUIAutomationElement, in2 *IUIAutomationStructureChangedEventHandler) error
- func (v *IUIAutomation) SafeArrayToRectNativeArray(in *TagSafeArray) (*TagRect, int32, error)
- func (v *IUIAutomation) VariantToRect(in *VARIANT) (*TagRect, error)
- type IUIAutomationAndCondition
- type IUIAutomationAndConditionVtbl
- type IUIAutomationBoolCondition
- type IUIAutomationBoolConditionVtbl
- type IUIAutomationCacheRequest
- func (v *IUIAutomationCacheRequest) AddPattern(patternId PatternId) error
- func (v *IUIAutomationCacheRequest) AddProperty(propertyId PropertyId) error
- func (v *IUIAutomationCacheRequest) Put_AutomationElementMode(mode int32) error
- func (v *IUIAutomationCacheRequest) Put_TreeScope(scope TreeScope) error
- func (v *IUIAutomationCacheRequest) Release() uint32
- type IUIAutomationCacheRequestVtbl
- type IUIAutomationCondition
- type IUIAutomationConditionVtbl
- type IUIAutomationElement
- func (v *IUIAutomationElement) BuildUpdatedCache(cacheRequest *IUIAutomationCacheRequest) (*IUIAutomationElement, error)
- func (v *IUIAutomationElement) FindAll(scope TreeScope, condition *IUIAutomationCondition) (*IUIAutomationElementArray, error)
- func (v *IUIAutomationElement) FindAllBuildCache(scope TreeScope, condition *IUIAutomationCondition, ...) (*IUIAutomationElementArray, error)
- func (v *IUIAutomationElement) FindFirst(scope TreeScope, condition *IUIAutomationCondition) (*IUIAutomationElement, error)
- func (v *IUIAutomationElement) GetCachedPattern(patternId PatternId) (*IUnKnown, error)
- func (v *IUIAutomationElement) GetClickablePoint() (*TagPoint, int32, error)
- func (v *IUIAutomationElement) GetCurrentPattern(patternId PatternId) (*IUnKnown, error)
- func (v *IUIAutomationElement) GetCurrentPatternAs(patternId PatternId, riid *syscall.GUID) (unsafe.Pointer, error)
- func (v *IUIAutomationElement) GetCurrentPropertyValue(id PropertyId) (*VARIANT, error)
- func (v *IUIAutomationElement) GetCurrentPropertyValueEx(id PropertyId, defaultVal int32) (*VARIANT, error)
- func (v *IUIAutomationElement) GetRuntimeId() (*TagSafeArray, error)
- func (v *IUIAutomationElement) Get_CachedAutomationId() (string, error)
- func (v *IUIAutomationElement) Get_CachedClassName() (string, error)
- func (v *IUIAutomationElement) Get_CachedControlType() ControlTypeId
- func (v *IUIAutomationElement) Get_CachedIsEnabled() int32
- func (v *IUIAutomationElement) Get_CachedLocalizedControlType() (string, error)
- func (v *IUIAutomationElement) Get_CachedName() (string, error)
- func (v *IUIAutomationElement) Get_CachedProcessId() int32
- func (v *IUIAutomationElement) Get_CurrentAcceleratorKey() (string, error)
- func (v *IUIAutomationElement) Get_CurrentAccessKey() (string, error)
- func (v *IUIAutomationElement) Get_CurrentAriaProperties() (string, error)
- func (v *IUIAutomationElement) Get_CurrentAriaRole() (string, error)
- func (v *IUIAutomationElement) Get_CurrentAutomationId() (string, error)
- func (v *IUIAutomationElement) Get_CurrentBoundingRectangle() *TagRect
- func (v *IUIAutomationElement) Get_CurrentClassName() (string, error)
- func (v *IUIAutomationElement) Get_CurrentControlType() ControlTypeId
- func (v *IUIAutomationElement) Get_CurrentControllerFor() *IUIAutomationElementArray
- func (v *IUIAutomationElement) Get_CurrentCulture() int32
- func (v *IUIAutomationElement) Get_CurrentDescribedBy() *IUIAutomationElementArray
- func (v *IUIAutomationElement) Get_CurrentFlowsTo() *IUIAutomationElementArray
- func (v *IUIAutomationElement) Get_CurrentFrameworkId() (string, error)
- func (v *IUIAutomationElement) Get_CurrentHasKeyboardFocus() int32
- func (v *IUIAutomationElement) Get_CurrentHelpText() (string, error)
- func (v *IUIAutomationElement) Get_CurrentIsContentElement() int32
- func (v *IUIAutomationElement) Get_CurrentIsControlElement() int32
- func (v *IUIAutomationElement) Get_CurrentIsDataValidForForm() int32
- func (v *IUIAutomationElement) Get_CurrentIsEnabled() int32
- func (v *IUIAutomationElement) Get_CurrentIsKeyboardFocusable() int32
- func (v *IUIAutomationElement) Get_CurrentIsOffscreen() int32
- func (v *IUIAutomationElement) Get_CurrentIsPassword() int32
- func (v *IUIAutomationElement) Get_CurrentIsRequiredForForm() int32
- func (v *IUIAutomationElement) Get_CurrentItemStatus() (string, error)
- func (v *IUIAutomationElement) Get_CurrentItemType() (string, error)
- func (v *IUIAutomationElement) Get_CurrentLabeledBy() *IUIAutomationElement
- func (v *IUIAutomationElement) Get_CurrentLocalizedControlType() (string, error)
- func (v *IUIAutomationElement) Get_CurrentName() (string, error)
- func (v *IUIAutomationElement) Get_CurrentNativeWindowHandle() uintptr
- func (v *IUIAutomationElement) Get_CurrentOrientation() OrientationType
- func (v *IUIAutomationElement) Get_CurrentProcessId() int32
- func (v *IUIAutomationElement) Get_CurrentProviderDescription() (string, error)
- func (v *IUIAutomationElement) Release() uint32
- func (v *IUIAutomationElement) SetFocus() error
- type IUIAutomationElementArray
- type IUIAutomationElementArrayVtbl
- type IUIAutomationElementVtbl
- type IUIAutomationEventHandler
- type IUIAutomationEventHandlerVtbl
- type IUIAutomationExpandCollapsePattern
- type IUIAutomationExpandCollapsePatternVtbl
- type IUIAutomationFocusChangedEventHandler
- type IUIAutomationFocusChangedEventHandlerVtbl
- type IUIAutomationInvokePattern
- type IUIAutomationInvokePatternVtbl
- type IUIAutomationLegacyIAccessiblePattern
- type IUIAutomationLegacyIAccessiblePatternVtbl
- type IUIAutomationNotCondition
- type IUIAutomationNotConditionVtbl
- type IUIAutomationPropertyCondition
- type IUIAutomationPropertyConditionVtbl
- type IUIAutomationProxyFactory
- type IUIAutomationProxyFactoryEntry
- func (v *IUIAutomationProxyFactoryEntry) GetWinEventsForAutomationEvent(in UIA_EventId, in2 PropertyId) (*TagSafeArray, error)
- func (v *IUIAutomationProxyFactoryEntry) Get_AllowSubstringMatch() int32
- func (v *IUIAutomationProxyFactoryEntry) Get_CanCheckBaseClass() int32
- func (v *IUIAutomationProxyFactoryEntry) Get_ClassName() (string, error)
- func (v *IUIAutomationProxyFactoryEntry) Get_ImageName() (string, error)
- func (v *IUIAutomationProxyFactoryEntry) Get_NeedsAdviseEvents() int32
- func (v *IUIAutomationProxyFactoryEntry) Get_ProxyFactory() *IUIAutomationProxyFactory
- func (v *IUIAutomationProxyFactoryEntry) Put_AllowSubstringMatch() int32
- func (v *IUIAutomationProxyFactoryEntry) Put_CanCheckBaseClass() int32
- func (v *IUIAutomationProxyFactoryEntry) Put_ClassName() string
- func (v *IUIAutomationProxyFactoryEntry) Put_ImageName() string
- func (v *IUIAutomationProxyFactoryEntry) Put_NeedsAdviseEvents() int32
- func (v *IUIAutomationProxyFactoryEntry) Release() uint32
- func (v *IUIAutomationProxyFactoryEntry) SetWinEventsForAutomationEvent(in UIA_EventId, in2 PropertyId, in3 *TagSafeArray) error
- type IUIAutomationProxyFactoryEntryVtbl
- type IUIAutomationProxyFactoryMapping
- func (v *IUIAutomationProxyFactoryMapping) ClearTable() error
- func (v *IUIAutomationProxyFactoryMapping) GetEntry(in uint32) (*IUIAutomationProxyFactoryEntry, error)
- func (v *IUIAutomationProxyFactoryMapping) GetTable() (*TagSafeArray, error)
- func (v *IUIAutomationProxyFactoryMapping) Get_Count() uint32
- func (v *IUIAutomationProxyFactoryMapping) InsertEntries(in uint32, in2 *TagSafeArray) error
- func (v *IUIAutomationProxyFactoryMapping) InsertEntry(in uint32, in2 *IUIAutomationProxyFactoryEntry) error
- func (v *IUIAutomationProxyFactoryMapping) Release() uint32
- func (v *IUIAutomationProxyFactoryMapping) RemoveEntry(in uint32) error
- func (v *IUIAutomationProxyFactoryMapping) RestoreDefaultTable() error
- func (v *IUIAutomationProxyFactoryMapping) SetTable(in *TagSafeArray) error
- type IUIAutomationProxyFactoryMappingVtbl
- type IUIAutomationProxyFactoryVtbl
- type IUIAutomationSelectionItemPattern
- type IUIAutomationSelectionItemPatternVtbl
- type IUIAutomationStructureChangedEventHandler
- type IUIAutomationStructureChangedEventHandlerVtbl
- type IUIAutomationTogglePattern
- type IUIAutomationTogglePatternVtbl
- type IUIAutomationTreeWalker
- func (v *IUIAutomationTreeWalker) GetFirstChildElement(element *IUIAutomationElement) (*IUIAutomationElement, error)
- func (v *IUIAutomationTreeWalker) GetNextSiblingElement(element *IUIAutomationElement) (*IUIAutomationElement, error)
- func (v *IUIAutomationTreeWalker) GetParentElement(element *IUIAutomationElement) (*IUIAutomationElement, error)
- func (v *IUIAutomationTreeWalker) Release() uint32
- type IUIAutomationTreeWalkerVtbl
- type IUIAutomationValuePattern
- type IUIAutomationValuePatternVtbl
- type IUIAutomationVtbl
- type IUnKnown
- type IUnKnownVtbl
- type OrientationType
- type ParamFlag
- type PatternId
- type PropertyConditionFlags
- type PropertyId
- type RowOrColumnMajor
- type ScrollAmount
- type SearchFunc
- type SelFlag
- type StructureChangeType
- type StructureChangedEventHandler
- type SupportedTextSelection
- type SynchronizedInputType
- type TYPEDESC
- type TagCallConv
- type TagDispParams
- type TagDvAspect
- type TagDvTargetDevice
- type TagElemDesc
- type TagExcepInfo
- type TagFuncDesc
- type TagFuncKind
- type TagIdlDesc
- type TagInvokeKind
- type TagParamDesc
- type TagPoint
- type TagRect
- type TagSafeArray
- type TagSafeArrayBound
- type TagSize
- type TagTypeDesc
- type TagVarenum
- type TextArrtibuteId
- type TextPatternRangeEndpoint
- type TextUnit
- type ToggleState
- type TreeScope
- type TxtHitResult
- type UIA_EventId
- type UiaPoint
- type UiaRect
- type VARIANT
- type WindowInteractionState
- type WindowVisualState
- type ZoomUnit
Constants ¶
This section is empty.
Variables ¶
var ( // CLSID_CUIAutomation UI Automation 组件类标识符 // 用于创建 IUIAutomation 实例 CLSID_CUIAutomation = &syscall.GUID{0xff48dba4, 0x60ef, 0x4201, [8]byte{0xaa, 0x87, 0x54, 0x10, 0x3e, 0xef, 0x59, 0x4e}} // IID_IUIAutomation IUIAutomation 接口标识符 // 注册表路径: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{IID} IID_IUIAutomation = &syscall.GUID{0x30cbe57d, 0xd9d0, 0x452a, [8]byte{0xab, 0x13, 0x7a, 0xc5, 0xac, 0x48, 0x25, 0xee}} )
UI Automation COM 类和接口的 GUID 参考: https://learn.microsoft.com/zh-cn/previous-versions/windows/desktop/legacy/ff384838(v=vs.85)
var ( // ErrorBstrPointerNil BSTR 指针为空错误 ErrorBstrPointerNil = errors.New("BSTR pointer is nil") )
var ( // ErrorNotFoundWindow 窗口未找到错误 ErrorNotFoundWindow = errors.New("not found window") )
Windows API DLL 和函数声明
Functions ¶
func CoInitialize ¶
func CoInitialize() error
CoInitialize 初始化 COM 库 在使用任何 COM 对象之前必须调用此函数 返回: 初始化失败时返回错误 注意: 会锁定 OS 线程,需要配合 CoUninitialize 释放
func CoUninitialize ¶
func CoUninitialize()
CoUninitialize 释放 COM 库 在程序结束时调用,与 CoInitialize 配对使用 注意: 会解锁 OS 线程
func CreateInstance ¶
CreateInstance 创建 COM 对象实例 参数:
- clsid: 类标识符(CLSID)
- riid: 接口标识符(IID)
- clsctx: 执行上下文
返回:
- unsafe.Pointer: COM 对象指针
- error: 创建失败时返回错误
func FindWindowExW ¶
FindWindowExW 查找子窗口 参数:
- phwdn: 父窗口句柄
- chwdn: 子窗口句柄(从该窗口之后开始查找)
- lpclass: 窗口类名
- lpwindow: 窗口标题名
返回: 窗口句柄,未找到返回 0
func GetIDsOfNames ¶
GetIDsOfNames 获取方法或属性的名称ID 参数:
- v: IDispatch 接口
- in: GUID
- in2: 名称数量
- in3: 区域设置ID
- in4: 名称数组
返回: 名称ID和可能的错误
func GetWindowForString ¶
GetWindowForString 通过类名或窗口名查找窗口 参数:
- classname: 窗口类名(可为空)
- windowname: 窗口标题名(可为空)
返回:
- uintptr: 窗口句柄
- error: 未找到窗口时返回错误
func Get_BooleanValue ¶
func Get_BooleanValue(v *IUIAutomationBoolCondition) int32
Get_BooleanValue 获取布尔条件的值 参数: v - 布尔条件接口 返回: 布尔值(0=false, 非0=true)
func Get_ChildCount ¶
func Get_ChildCount(v *IUIAutomationAndCondition) int32
Get_ChildCount 获取 AND 条件中的子条件数量 参数: v - AND 条件接口 返回: 子条件数量
func Get_Length ¶
func Get_Length(v *IUIAutomationElementArray) int32
func QueryInterface ¶
QueryInterface 查询对象是否支持指定接口 参数:
- v: IUnKnown 接口
- riid: 接口标识符(IID)
返回:
- unsafe.Pointer: 接口指针
- error: 查询失败时返回错误
func UnKnownToUintptr ¶
func UnKnownToUintptr(obj interface{}) uintptr
UnKnownToUintptr 将 IUnKnown 接口转换为 uintptr 用于 COM 方法调用 参数: obj - 接口对象 返回: 指针值
Types ¶
type CLSCTX ¶
type CLSCTX uint32
CLSCTX COM 类上下文
var ( CLSCTX_INPROC_SERVER CLSCTX = 0x1 // 进程内服务器 CLSCTX_INPROC_HANDLER CLSCTX = 0x2 // 进程内处理器 CLSCTX_LOCAL_SERVER CLSCTX = 0x4 // 本地服务器 CLSCTX_INPROC_SERVER16 CLSCTX = 0x8 // 16位进程内服务器 CLSCTX_REMOTE_SERVER CLSCTX = 0x10 // 远程服务器 CLSCTX_INPROC_HANDLER16 CLSCTX = 0x20 // 16位进程内处理器 CLSCTX_RESERVED1 CLSCTX = 0x40 // 保留 CLSCTX_RESERVED2 CLSCTX = 0x80 // 保留 CLSCTX_RESERVED3 CLSCTX = 0x100 // 保留 CLSCTX_RESERVED4 CLSCTX = 0x200 // 保留 CLSCTX_NO_CODE_DOWNLOAD CLSCTX = 0x400 // 禁止代码下载 CLSCTX_RESERVED5 CLSCTX = 0x800 // 保留 CLSCTX_NO_CUSTOM_MARSHAL CLSCTX = 0x1000 // 禁止自定义封送 CLSCTX_ENABLE_CODE_DOWNLOAD CLSCTX = 0x2000 // 启用代码下载 CLSCTX_NO_FAILURE_LOG CLSCTX = 0x4000 // 禁止失败日志 CLSCTX_DISABLE_AAA CLSCTX = 0x8000 // 禁用 AAA CLSCTX_ENABLE_AAA CLSCTX = 0x10000 // 启用 AAA CLSCTX_FROM_DEFAULT_CONTEXT CLSCTX = 0x20000 // 从默认上下文 CLSCTX_ACTIVATE_X86_SERVER CLSCTX = 0x40000 // 激活 x86 服务器 CLSCTX_ACTIVATE_64_BIT_SERVER CLSCTX = 0x80000 // 激活 64 位服务器 CLSCTX_ENABLE_CLOAKING CLSCTX = 0x100000 // 启用伪装 CLSCTX_APPCONTAINER CLSCTX = 0x400000 // 应用容器 CLSCTX_ACTIVATE_AAA_AS_IU CLSCTX = 0x800000 // 作为 IU 激活 AAA CLSCTX_RESERVED6 CLSCTX = 0x1000000 // 保留 CLSCTX_ACTIVATE_ARM32_SERVER CLSCTX = 0x2000000 // 激活 ARM32 服务器 CLSCTX_PS_DLL CLSCTX = 0x80000000 // PS DLL CLSCTX_ALL CLSCTX = CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER // 所有上下文 )
COM 类上下文常量 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/wtypesbase/ne-wtypesbase-clsctx
type ChangeEventHandler ¶
type ChangeEventHandler struct {
Element *IUIAutomationElement // 目标元素
Scope TreeScope // 搜索范围
CacheRequest *IUIAutomationCacheRequest // 缓存请求
Handler *IUnKnown // 事件处理器(原为 IUIAutomationPropertyChangedEventHandler)
PropertyArray *TagSafeArray // 属性数组
}
ChangeEventHandler 属性变更事件处理器配置 注意: IUIAutomationPropertyChangedEventHandler 类型未定义,暂时使用 IUnKnown
type ChangeEventHandlerNativeArray ¶
type ChangeEventHandlerNativeArray struct {
Element *IUIAutomationElement // 目标元素
Scope TreeScope // 搜索范围
CacheRequest *IUIAutomationCacheRequest // 缓存请求
Handler *IUnKnown // 事件处理器(原为 IUIAutomationPropertyChangedEventHandler)
PropertyArray *TagSafeArray // 属性数组
PropertyCount int32 // 属性数量
}
ChangeEventHandlerNativeArray 属性变更事件处理器配置(原生数组版本) 注意: IUIAutomationPropertyChangedEventHandler 类型未定义,暂时使用 IUnKnown
type ControlTypeId ¶
type ControlTypeId int32
ControlTypeId UI Automation 控件类型标识符类型 用于标识 UI 元素的控件类型,如按钮、文本框、列表等
const ( UIA_AppBarControlTypeId ControlTypeId = 50040 // 应用栏控件 UIA_ButtonControlTypeId ControlTypeId = 50000 // 按钮控件 UIA_CalendarControlTypeId ControlTypeId = 50001 // 日历控件 UIA_CheckBoxControlTypeId ControlTypeId = 50002 // 复选框控件 UIA_ComboBoxControlTypeId ControlTypeId = 50003 // 组合框控件 UIA_CustomControlTypeId ControlTypeId = 50025 // 自定义控件 UIA_DataGridControlTypeId ControlTypeId = 50028 // 数据网格控件 UIA_DataItemControlTypeId ControlTypeId = 50029 // 数据项控件 UIA_DocumentControlTypeId ControlTypeId = 50030 // 文档控件 UIA_EditControlTypeId ControlTypeId = 50004 // 编辑控件(文本框) UIA_GroupControlTypeId ControlTypeId = 50026 // 分组控件 UIA_HeaderControlTypeId ControlTypeId = 50034 // 标题控件 UIA_HeaderItemControlTypeId ControlTypeId = 50035 // 标题项控件 UIA_HyperlinkControlTypeId ControlTypeId = 50005 // 超链接控件 UIA_ImageControlTypeId ControlTypeId = 50006 // 图像控件 UIA_ListControlTypeId ControlTypeId = 50008 // 列表控件 UIA_ListItemControlTypeId ControlTypeId = 50007 // 列表项控件 UIA_MenuBarControlTypeId ControlTypeId = 50010 // 菜单栏控件 UIA_MenuControlTypeId ControlTypeId = 50009 // 菜单控件 UIA_MenuItemControlTypeId ControlTypeId = 50011 // 菜单项控件 UIA_PaneControlTypeId ControlTypeId = 50033 // 面板控件 UIA_ProgressBarControlTypeId ControlTypeId = 50012 // 进度条控件 UIA_RadioButtonControlTypeId ControlTypeId = 50013 // 单选按钮控件 UIA_ScrollBarControlTypeId ControlTypeId = 50014 // 滚动条控件 UIA_SemanticZoomControlTypeId ControlTypeId = 50039 // 语义缩放控件 UIA_SeparatorControlTypeId ControlTypeId = 50038 // 分隔符控件 UIA_SliderControlTypeId ControlTypeId = 50015 // 滑块控件 UIA_SpinnerControlTypeId ControlTypeId = 50016 // 微调控件 UIA_SplitButtonControlTypeId ControlTypeId = 50031 // 拆分按钮控件 UIA_StatusBarControlTypeId ControlTypeId = 50017 // 状态栏控件 UIA_TabControlTypeId ControlTypeId = 50018 // 选项卡控件 UIA_TabItemControlTypeId ControlTypeId = 50019 // 选项卡项控件 UIA_TableControlTypeId ControlTypeId = 50036 // 表格控件 UIA_TextControlTypeId ControlTypeId = 50020 // 文本控件 UIA_ThumbControlTypeId ControlTypeId = 50027 // 滑块把手控件 UIA_TitleBarControlTypeId ControlTypeId = 50037 // 标题栏控件 UIA_ToolBarControlTypeId ControlTypeId = 50021 // 工具栏控件 UIA_ToolTipControlTypeId ControlTypeId = 50022 // 工具提示控件 UIA_TreeControlTypeId ControlTypeId = 50023 // 树控件 UIA_TreeItemControlTypeId ControlTypeId = 50024 // 树项控件 UIA_WindowControlTypeId ControlTypeId = 50032 // 窗口控件 )
UI Automation 控件类型常量定义 参考: https://learn.microsoft.com/zh-cn/windows/win32/winauto/uiauto-controlpatternmapping
type Element ¶
type Element struct {
UIAutoElement *IUIAutomationElement // 底层 UI Automation 元素接口
CurrentAcceleratorKey string // 快捷键
CurrentAccessKey string // 访问键(如 Alt+F)
CurrentAriaProperties string // ARIA 属性
CurrentAriaRole string // ARIA 角色
CurrentAutomationId string // 自动化ID(唯一标识符)
CurrentBoundingRectangle *TagRect // 边界矩形(位置和大小)
CurrentClassName string // 类名
CurrentControllerFor *IUIAutomationElementArray // 控制器元素数组
CurrentControlType ControlTypeId // 控件类型
CurrentCulture int32 // 文化/区域设置
CurrentDescribedBy *IUIAutomationElementArray // 描述元素数组
CurrentFlowsTo *IUIAutomationElementArray // 流向元素数组
CurrentFrameworkId string // 框架ID(如 WPF, Win32)
CurrentHasKeyboardFocus int32 // 是否有键盘焦点
CurrentHelpText string // 帮助文本
CurrentIsContentElement int32 // 是否为内容元素
CurrentIsControlElement int32 // 是否为控件元素
CurrentIsDataValidForForm int32 // 表单数据是否有效
CurrentIsEnabled int32 // 是否启用
CurrentIsKeyboardFocusable int32 // 是否可获取键盘焦点
CurrentIsOffscreen int32 // 是否在屏幕外
CurrentIsPassword int32 // 是否为密码字段
CurrentIsRequiredForForm int32 // 表单是否必填
CurrentItemStatus string // 项目状态
CurrentItemType string // 项目类型
CurrentLabeledBy *IUIAutomationElement // 标签元素
CurrentLocalizedControlType string // 本地化控件类型
CurrentName string // 名称
CurrentNativeWindowHandle uintptr // 原生窗口句柄
CurrentOrientation OrientationType // 方向
CurrentProcessId int32 // 进程ID
CurrentProviderDescription string // 提供者描述
SupportedPatterns []PatternId `json:"supported_patterns,omitempty"` // 支持的模式列表
Child []*Element `json:"child,omitempty"` // 子元素列表
}
Element UI 元素的高级封装结构体 提供了 UI 元素的属性缓存和便捷操作方法
func FindElems ¶
func FindElems(elem *Element, searchFunc SearchFunc) (elems []*Element)
FindElems 在元素树中搜索所有匹配的元素 参数:
- elem: 起始元素
- searchFunc: 搜索条件函数
返回: 所有匹配的元素数组
func NewElement ¶
func NewElement(uiaumation *IUIAutomationElement) *Element
NewElement 创建新的 Element 实例 参数:
- uiaumation: 底层 UI Automation 元素接口
返回: 初始化的 Element 指针
func SearchElem ¶
func SearchElem(elem *Element, searchFunc SearchFunc) *Element
SearchElem 在元素树中搜索匹配的元素(深度优先,返回第一个匹配) 参数:
- elem: 起始元素
- searchFunc: 搜索条件函数
返回: 匹配的元素,未找到返回 nil
func TraverseUIElementTree ¶
func TraverseUIElementTree(ppv *IUIAutomation, root *IUIAutomationElement) *Element
TraverseUIElementTree 遍历 UI 元素树并返回高级封装的 Element 结构 使用缓存请求提高性能,减少跨进程通信开销 参数:
- ppv: UI Automation 接口
- root: 根元素
返回: 封装后的元素树
func (*Element) BoundingRectangle ¶
func (e *Element) BoundingRectangle()
BoundingRectangle 获取边界矩形属性
func (*Element) FindByAutomationId ¶
FindByAutomationId 通过 AutomationId 查找子元素 参数: id - 元素的 AutomationId 返回: 匹配的元素,未找到返回 nil
func (*Element) FindByName ¶
FindByName 通过名称查找子元素 参数: name - 元素名称 返回: 匹配的元素,未找到返回 nil
func (*Element) FormatString ¶
FormatString 格式化输出元素的所有属性 返回: 格式化后的字符串
func (*Element) GetExpandCollapsePattern ¶
func (e *Element) GetExpandCollapsePattern() (*IUIAutomationExpandCollapsePattern, error)
GetExpandCollapsePattern 获取 ExpandCollapsePattern 接口 用于展开或折叠树节点、菜单等控件 返回: ExpandCollapsePattern 接口和可能的错误
func (*Element) GetInvokePattern ¶
func (e *Element) GetInvokePattern() (*IUIAutomationInvokePattern, error)
GetInvokePattern 获取 InvokePattern 接口 用于调用按钮等可点击控件 返回: InvokePattern 接口和可能的错误
func (*Element) GetSelectionItemPattern ¶
func (e *Element) GetSelectionItemPattern() (*IUIAutomationSelectionItemPattern, error)
GetSelectionItemPattern 获取 SelectionItemPattern 接口 用于选择列表项等控件 返回: SelectionItemPattern 接口和可能的错误
func (*Element) GetTogglePattern ¶
func (e *Element) GetTogglePattern() (*IUIAutomationTogglePattern, error)
GetTogglePattern 获取 TogglePattern 接口 用于切换复选框等控件的状态 返回: TogglePattern 接口和可能的错误
func (*Element) GetValuePattern ¶
func (e *Element) GetValuePattern() (*IUIAutomationValuePattern, error)
GetValuePattern 获取 ValuePattern 接口 用于设置或获取文本输入控件的值 返回: ValuePattern 接口和可能的错误
func (*Element) IsDataValidForForm ¶
func (e *Element) IsDataValidForForm()
IsDataValidForForm 获取表单数据是否有效
func (*Element) IsKeyboardFocusable ¶
func (e *Element) IsKeyboardFocusable()
IsKeyboardFocusable 获取是否可获取键盘焦点
func (*Element) IsRequiredForForm ¶
func (e *Element) IsRequiredForForm()
IsRequiredForForm 获取表单是否必填
func (*Element) LocalizedControlType ¶
LocalizedControlType 获取本地化控件类型
func (*Element) NativeWindowHandle ¶
func (e *Element) NativeWindowHandle()
NativeWindowHandle 获取原生窗口句柄
func (*Element) ProviderDescription ¶
ProviderDescription 获取提供者描述
func (*Element) SetUIAutomation ¶
func (e *Element) SetUIAutomation(uiaumation *IUIAutomationElement)
SetUIAutomation 设置底层 UI Automation 元素接口
type EventHandler ¶
type EventHandler struct {
EventId UIA_EventId // 事件ID
Element *IUIAutomationElement // 目标元素
Scope TreeScope // 搜索范围
CacheRequest *IUIAutomationCacheRequest // 缓存请求
Handler *IUIAutomationEventHandler // 事件处理器
}
EventHandler 自动化事件处理器配置
type IAccessible ¶
type IAccessible struct {
// contains filtered or unexported fields
}
IAccessible 可访问性接口 用于支持辅助功能,如屏幕阅读器等 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/oleacc/nn-oleacc-iaccessible
func NewIAccessible ¶
func NewIAccessible(unk *IDispatch) *IAccessible
NewIAccessible 创建可访问性接口实例 参数: unk - IDispatch 接口 返回: 可访问性接口实例
func (*IAccessible) AccDoDefaultAction ¶
func (v *IAccessible) AccDoDefaultAction(in *VARIANT) error
AccDoDefaultAction 执行默认操作 参数: in - VARIANT 参数 返回: 错误信息
type IAccessibleVtbl ¶
type IAccessibleVtbl struct {
// https://learn.microsoft.com/zh-cn/windows/win32/api/oleacc/nn-oleacc-iaccessible
IDispatchVtbl
AccDoDefaultAction uintptr // 执行默认操作
AccHitTest uintptr // 命中测试
AccLocation uintptr // 获取位置
AccSelect uintptr // 选择
Get_accChild uintptr // 获取子元素
Get_accChildCount uintptr // 获取子元素数量
Get_accDefaultAction uintptr // 获取默认操作
Get_accDescription uintptr // 获取描述
Get_accFocus uintptr // 获取焦点
Get_accHelp uintptr // 获取帮助
Get_accHelpTopic uintptr // 获取帮助主题(不支持)
Get_accKeyboardShortcut uintptr // 获取键盘快捷键
Get_accName uintptr // 获取名称
Get_accParent uintptr // 获取父元素
Get_accRole uintptr // 获取角色
Get_accSelection uintptr // 获取选择
Get_accState uintptr // 获取状态
Get_accValue uintptr // 获取值
Put_accName uintptr // 设置名称(不支持)
Put_accValue uintptr // 设置值
}
IAccessibleVtbl 可访问性接口虚函数表
type IAnnotationProvider ¶
type IAnnotationProvider struct {
// contains filtered or unexported fields
}
IAnnotationProvider 注解提供者接口 Windows 8 开始支持,用于 UIA_AnnotationPatternId
func NewIAnnotationProvider ¶
func NewIAnnotationProvider(unk *IUnKnown) *IAnnotationProvider
NewIAnnotationProvider 创建注解提供者实例 参数: unk - IUnKnown 接口 返回: 注解提供者实例
func (*IAnnotationProvider) Get_AnnotationTypeId ¶
func (v *IAnnotationProvider) Get_AnnotationTypeId() int32
Get_AnnotationTypeId 获取注解类型ID 返回: 注解类型ID
type IAnnotationProviderVtbl ¶
type IAnnotationProviderVtbl struct {
IUnKnownVtbl
Get_AnnotationTypeId uintptr // 获取注解类型ID
Get_AnnotationTypeName uintptr // 获取注解类型名称
Get_Author uintptr // 获取作者
Get_DateTime uintptr // 获取日期时间
Get_Target uintptr // 获取目标
}
IAnnotationProviderVtbl 注解提供者虚函数表
type IDispatch ¶
type IDispatch struct {
// contains filtered or unexported fields
}
IDispatch 调度接口 COM 中的标准接口,用于支持动态调用和自动化
type IDispatchVtbl ¶
type IDispatchVtbl struct {
IUnKnownVtbl
GetIDsOfNames uintptr // 获取名称ID
GetTypeInfo uintptr // 获取类型信息
GetTypeInfoCount uintptr // 获取类型信息数量
Invoke uintptr // 调用方法
}
IDispatchVtbl 调度接口虚函数表
type IDropTarget ¶
type IDropTarget struct {
// contains filtered or unexported fields
}
IDropTarget 拖放目标接口 用于支持拖放操作的目标对象
func NewIDropTarget ¶
func NewIDropTarget(unk *IUnKnown) *IDropTarget
NewIDropTarget 创建拖放目标接口实例 参数: unk - IUnKnown 接口 返回: 拖放目标接口实例
func (*IDropTarget) DragEnter ¶
func (v *IDropTarget) DragEnter() error
DragEnter 处理拖拽进入事件 返回: 错误信息(当前为空实现)
func (*IDropTarget) DragLeave ¶
func (v *IDropTarget) DragLeave() error
DragLeave 处理拖拽离开事件 返回: 错误信息(当前为空实现)
func (*IDropTarget) DragOver ¶
func (v *IDropTarget) DragOver() error
DragOver 处理拖拽经过事件 返回: 错误信息(当前为空实现)
type IDropTargetVtbl ¶
type IDropTargetVtbl struct {
IUnKnownVtbl
DragEnter uintptr // 拖拽进入
DragLeave uintptr // 拖拽离开
DragOver uintptr // 拖拽经过
Drop uintptr // 放置
}
IDropTargetVtbl 拖放目标接口虚函数表 TODO:: IDropTarget method - 需要实现具体方法
type IRawElementProviderSimple ¶
type IRawElementProviderSimple struct {
// contains filtered or unexported fields
}
IRawElementProviderSimple 简单原始元素提供者接口
type IRawElementProviderSimpleVtbl ¶
type IRawElementProviderSimpleVtbl struct {
IUnKnownVtbl
Get_HostRawElementProvider uintptr // 获取宿主原始元素提供者
Get_ProviderOptions uintptr // 获取提供者选项
GetPatternProvider uintptr // 获取模式提供者
GetPropertyValue uintptr // 获取属性值
}
IRawElementProviderSimpleVtbl 简单原始元素提供者虚函数表
type IRichEditUiaInformation ¶
type IRichEditUiaInformation struct {
// contains filtered or unexported fields
}
IRichEditUiaInformation Rich Edit UI Automation 信息接口
type IRichEditUiaInformationVtbl ¶
type IRichEditUiaInformationVtbl struct {
IUnKnownVtbl
GetBoundaryRectangle uintptr // 获取边界矩形
IsVisible uintptr // 是否可见
}
IRichEditUiaInformationVtbl Rich Edit UI Automation 信息接口虚函数表
type IUIAutomation ¶
type IUIAutomation struct {
// contains filtered or unexported fields
}
IUIAutomation UI Automation 核心接口 提供创建 UI Automation 对象和访问 UI 元素的方法
func NewIUIAutomation ¶
func NewIUIAutomation(unk *IUnKnown) *IUIAutomation
NewIUIAutomation 创建 IUIAutomation 实例 参数: unk - IUnKnown 接口 返回: IUIAutomation 实例
func (*IUIAutomation) AddAutomationEventHandler ¶
func (v *IUIAutomation) AddAutomationEventHandler(opt *EventHandler) error
AddAutomationEventHandler 添加自动化事件处理器 参数: opt - 事件处理器配置 返回: 错误信息
func (*IUIAutomation) AddFocusChangedEventHandler ¶
func (v *IUIAutomation) AddFocusChangedEventHandler(in *IUIAutomationCacheRequest, in2 *IUIAutomationFocusChangedEventHandler) error
AddFocusChangedEventHandler 添加焦点变更事件处理器 参数:
- in: 缓存请求
- in2: 焦点变更事件处理器
返回: 错误信息
func (*IUIAutomation) AddPropertyChangedEventHandler ¶
func (v *IUIAutomation) AddPropertyChangedEventHandler(opt *ChangeEventHandler) error
AddPropertyChangedEventHandler 添加属性变更事件处理器 参数: opt - 属性变更事件处理器配置 返回: 错误信息
func (*IUIAutomation) AddPropertyChangedEventHandlerNativeArray ¶
func (v *IUIAutomation) AddPropertyChangedEventHandlerNativeArray(opt *ChangeEventHandlerNativeArray) error
AddPropertyChangedEventHandlerNativeArray 添加属性变更事件处理器(原生数组版本) 参数: opt - 属性变更事件处理器配置 返回: 错误信息
func (*IUIAutomation) AddStructureChangedEventHandler ¶
func (v *IUIAutomation) AddStructureChangedEventHandler(opt *StructureChangedEventHandler) error
AddStructureChangedEventHandler 添加结构变更事件处理器 参数: opt - 结构变更事件处理器配置 返回: 错误信息
func (*IUIAutomation) CheckNotSupported ¶
func (v *IUIAutomation) CheckNotSupported(in *VARIANT) (int32, error)
CheckNotSupported 检查 VARIANT 值是否为"不支持" 参数: in - VARIANT 值 返回: 是否不支持,以及可能的错误
func (*IUIAutomation) CompareElements ¶
func (v *IUIAutomation) CompareElements(in, in2 *IUIAutomationElement) (int32, error)
CompareElements 比较两个 UI 元素是否相同 参数:
- in: 第一个元素
- in2: 第二个元素
返回: 是否相同(非0表示相同),以及可能的错误
func (*IUIAutomation) CompareRuntimeIds ¶
func (v *IUIAutomation) CompareRuntimeIds(in, in2 *TagSafeArray) (int32, error)
CompareRuntimeIds 比较两个运行时ID是否相同 参数:
- in: 第一个运行时ID数组
- in2: 第二个运行时ID数组
返回: 是否相同(非0表示相同),以及可能的错误
func (*IUIAutomation) CreateAndCondition ¶
func (v *IUIAutomation) CreateAndCondition(in, in2 *IUIAutomationCondition) (*IUIAutomationCondition, error)
CreateAndCondition 创建 AND 条件(两个条件都必须满足) 参数:
- in: 第一个条件
- in2: 第二个条件
返回: 组合后的条件,以及可能的错误
func (*IUIAutomation) CreateAndConditionFromArray ¶
func (v *IUIAutomation) CreateAndConditionFromArray(in *TagSafeArray) (*IUIAutomationCondition, error)
func (*IUIAutomation) CreateAndConditionFromNativeArray ¶
func (v *IUIAutomation) CreateAndConditionFromNativeArray(in *IUIAutomationCondition, in2 int32) (*IUIAutomationCondition, error)
func (*IUIAutomation) CreateCacheRequest ¶
func (v *IUIAutomation) CreateCacheRequest() (*IUIAutomationCacheRequest, error)
CreateCacheRequest 创建缓存请求对象 用于批量获取元素属性,减少跨进程通信开销 返回: 缓存请求对象,以及可能的错误
func (*IUIAutomation) CreateFalseCondition ¶
func (v *IUIAutomation) CreateFalseCondition() (*IUIAutomationCondition, error)
CreateFalseCondition 创建始终为 False 的条件 返回: False 条件,以及可能的错误
func (*IUIAutomation) CreateNotCondition ¶
func (v *IUIAutomation) CreateNotCondition(in *IUIAutomationCondition) (*IUIAutomationCondition, error)
CreateNotCondition 创建 NOT 条件(对条件取反) 参数: in - 要取反的条件 返回: 取反后的条件,以及可能的错误
func (*IUIAutomation) CreateOrCondition ¶
func (v *IUIAutomation) CreateOrCondition(in, in2 *IUIAutomationCondition) (*IUIAutomationCondition, error)
CreateOrCondition 创建 OR 条件(任一条件满足即可) 参数:
- in: 第一个条件
- in2: 第二个条件
返回: 组合后的条件,以及可能的错误
func (*IUIAutomation) CreateOrConditionFromArray ¶
func (v *IUIAutomation) CreateOrConditionFromArray(in *TagSafeArray) (*IUIAutomationCondition, error)
func (*IUIAutomation) CreateOrConditionFromNativeArray ¶
func (v *IUIAutomation) CreateOrConditionFromNativeArray(in *IUIAutomationCondition, in2 int32) (*IUIAutomationCondition, error)
func (*IUIAutomation) CreatePropertyCondition ¶
func (v *IUIAutomation) CreatePropertyCondition(id PropertyId, value VARIANT) (*IUIAutomationCondition, error)
CreatePropertyCondition 创建属性条件(64位版本) 用于根据属性值创建查找条件 参数:
- id: 属性ID
- value: 属性值(VARIANT)
返回: 条件接口和可能的错误
func (*IUIAutomation) CreatePropertyConditionEx ¶
func (v *IUIAutomation) CreatePropertyConditionEx(in *PropertyId, in2 *VARIANT, in3 PropertyConditionFlags) (*IUIAutomationCondition, error)
func (*IUIAutomation) CreateProxyFactoryEntry ¶
func (v *IUIAutomation) CreateProxyFactoryEntry(in *IUIAutomationProxyFactory) (*IUIAutomationProxyFactoryEntry, error)
func (*IUIAutomation) CreateTreeWalker ¶
func (v *IUIAutomation) CreateTreeWalker(in *IUIAutomationCondition) (*IUIAutomationTreeWalker, error)
CreateTreeWalker 创建树遍历器 用于遍历 UI 元素树 参数: in - 遍历条件 返回: 树遍历器,以及可能的错误
func (*IUIAutomation) CreateTrueCondition ¶
func (v *IUIAutomation) CreateTrueCondition() *IUIAutomationCondition
CreateTrueCondition 创建始终为 True 的条件 用于匹配所有元素 返回: True 条件
func (*IUIAutomation) ElementFromHandle ¶
func (v *IUIAutomation) ElementFromHandle(in uintptr) (*IUIAutomationElement, error)
ElementFromHandle 从窗口句柄获取 UI 元素 参数: in - 窗口句柄 返回: UI 元素,以及可能的错误
func (*IUIAutomation) ElementFromHandleBuildCache ¶
func (v *IUIAutomation) ElementFromHandleBuildCache(in uintptr, in2 *IUIAutomationCacheRequest) (*IUIAutomationElement, error)
func (*IUIAutomation) ElementFromIAccessible ¶
func (v *IUIAutomation) ElementFromIAccessible(in *IAccessible, in2 int32) (*IUIAutomationElement, error)
func (*IUIAutomation) ElementFromIAccessibleBuildCache ¶
func (v *IUIAutomation) ElementFromIAccessibleBuildCache(in *IAccessible, in2 int32, in3 *IUIAutomationCacheRequest) (*IUIAutomationElement, error)
func (*IUIAutomation) ElementFromPoint ¶
func (v *IUIAutomation) ElementFromPoint(in *TagPoint) (*IUIAutomationElement, error)
func (*IUIAutomation) ElementFromPointBuildCache ¶
func (v *IUIAutomation) ElementFromPointBuildCache(in *TagPoint, in2 *IUIAutomationCacheRequest) (*IUIAutomationElement, error)
func (*IUIAutomation) GetFocusedElement ¶
func (v *IUIAutomation) GetFocusedElement() (*IUIAutomationElement, error)
func (*IUIAutomation) GetFocusedElementBuildCache ¶
func (v *IUIAutomation) GetFocusedElementBuildCache(in *IUIAutomationCacheRequest) (*IUIAutomationElement, error)
func (*IUIAutomation) GetPatternProgrammaticName ¶
func (v *IUIAutomation) GetPatternProgrammaticName(in PatternId) (string, error)
func (*IUIAutomation) GetPropertyProgrammaticName ¶
func (v *IUIAutomation) GetPropertyProgrammaticName(in PropertyId) (string, error)
func (*IUIAutomation) GetRootElement ¶
func (v *IUIAutomation) GetRootElement() (*IUIAutomationElement, error)
GetRootElement 获取桌面根元素 桌面是所有 UI 元素的根节点 返回: 根元素,以及可能的错误
func (*IUIAutomation) GetRootElementBuildCache ¶
func (v *IUIAutomation) GetRootElementBuildCache(in *IUIAutomationCacheRequest) (*IUIAutomationElement, error)
GetRootElementBuildCache 获取带缓存的桌面根元素 参数: in - 缓存请求 返回: 根元素和可能的错误
func (*IUIAutomation) Get_ContentViewCondition ¶
func (v *IUIAutomation) Get_ContentViewCondition() *IUIAutomationCondition
func (*IUIAutomation) Get_ContentViewWalker ¶
func (v *IUIAutomation) Get_ContentViewWalker() *IUIAutomationTreeWalker
func (*IUIAutomation) Get_ControlViewCondition ¶
func (v *IUIAutomation) Get_ControlViewCondition() *IUIAutomationCondition
func (*IUIAutomation) Get_ControlViewWalker ¶
func (v *IUIAutomation) Get_ControlViewWalker() *IUIAutomationTreeWalker
func (*IUIAutomation) Get_ProxyFactoryMapping ¶
func (v *IUIAutomation) Get_ProxyFactoryMapping() *IUIAutomationProxyFactoryMapping
func (*IUIAutomation) Get_RawViewCondition ¶
func (v *IUIAutomation) Get_RawViewCondition() *IUIAutomationCondition
func (*IUIAutomation) Get_RawViewWalker ¶
func (v *IUIAutomation) Get_RawViewWalker() *IUIAutomationTreeWalker
func (*IUIAutomation) Get_ReservedMixedAttributeValue ¶
func (v *IUIAutomation) Get_ReservedMixedAttributeValue() *IUnKnown
func (*IUIAutomation) Get_ReservedNotSupportedValue ¶
func (v *IUIAutomation) Get_ReservedNotSupportedValue() *IUnKnown
func (*IUIAutomation) IntNativeArrayToSafeArray ¶
func (v *IUIAutomation) IntNativeArrayToSafeArray(in, in2 int32) (*TagSafeArray, error)
IntNativeArrayToSafeArray 将整数数组转换为安全数组 参数:
- in: 整数数组
- in2: 数组长度
返回: 安全数组和可能的错误
func (*IUIAutomation) IntSafeArrayToNativeArray ¶
func (v *IUIAutomation) IntSafeArrayToNativeArray(in *TagSafeArray) (int32, int32, error)
IntSafeArrayToNativeArray 将安全数组转换为整数数组 参数: in - 安全数组 返回: 数组指针、数组长度和可能的错误
func (*IUIAutomation) PollForPotentialSupportedPatterns ¶
func (v *IUIAutomation) PollForPotentialSupportedPatterns(in *IUIAutomationElement) (*TagSafeArray, *TagSafeArray, error)
PollForPotentialSupportedPatterns 轮询潜在支持的模式 参数: in - UI 元素 返回: 模式ID数组、模式名称数组和可能的错误
func (*IUIAutomation) PollForPotentialSupportedProperties ¶
func (v *IUIAutomation) PollForPotentialSupportedProperties(in *IUIAutomationElement) (*TagSafeArray, *TagSafeArray, error)
PollForPotentialSupportedProperties 轮询潜在支持的属性 参数: in - UI 元素 返回: 属性ID数组、属性名称数组和可能的错误
func (*IUIAutomation) RectToVariant ¶
func (v *IUIAutomation) RectToVariant(in *TagRect) (*VARIANT, error)
RectToVariant 将矩形转换为 VARIANT 参数: in - 矩形结构 返回: VARIANT 和可能的错误
func (*IUIAutomation) Release ¶
func (v *IUIAutomation) Release() uint32
Release 释放 UI Automation 对象 返回: 引用计数
func (*IUIAutomation) RemoveAllEventHandlers ¶
func (v *IUIAutomation) RemoveAllEventHandlers() error
RemoveAllEventHandlers 移除所有事件处理器 返回: 错误信息
func (*IUIAutomation) RemoveAutomationEventHandler ¶
func (v *IUIAutomation) RemoveAutomationEventHandler(in UIA_EventId, in2 *IUIAutomationElement, in3 *IUIAutomationEventHandler) error
RemoveAutomationEventHandler 移除自动化事件处理器 参数:
- in: 事件ID
- in2: UI 元素
- in3: 事件处理器
返回: 错误信息
func (*IUIAutomation) RemoveFocusChangedEventHandler ¶
func (v *IUIAutomation) RemoveFocusChangedEventHandler(in *IUIAutomationFocusChangedEventHandler) error
RemoveFocusChangedEventHandler 移除焦点变更事件处理器 参数: in - 焦点变更事件处理器 返回: 错误信息
func (*IUIAutomation) RemovePropertyChangedEventHandler ¶
func (v *IUIAutomation) RemovePropertyChangedEventHandler(in *IUIAutomationElement, in2 *IUnKnown) error
RemovePropertyChangedEventHandler 移除属性变更事件处理器 参数:
- in: UI 元素
- in2: 事件处理器
返回: 错误信息 注意: IUIAutomationPropertyChangedEventHandler 类型未定义,暂时使用 IUnKnown
func (*IUIAutomation) RemoveStructureChangedEventHandler ¶
func (v *IUIAutomation) RemoveStructureChangedEventHandler(in *IUIAutomationElement, in2 *IUIAutomationStructureChangedEventHandler) error
RemoveStructureChangedEventHandler 移除结构变更事件处理器 参数:
- in: UI 元素
- in2: 结构变更事件处理器
返回: 错误信息
func (*IUIAutomation) SafeArrayToRectNativeArray ¶
func (v *IUIAutomation) SafeArrayToRectNativeArray(in *TagSafeArray) (*TagRect, int32, error)
SafeArrayToRectNativeArray 将安全数组转换为矩形原生数组 参数: in - 安全数组 返回: 矩形数组指针、数组长度和可能的错误
func (*IUIAutomation) VariantToRect ¶
func (v *IUIAutomation) VariantToRect(in *VARIANT) (*TagRect, error)
VariantToRect 将 VARIANT 转换为矩形 参数: in - VARIANT 返回: 矩形结构和可能的错误
type IUIAutomationAndCondition ¶
type IUIAutomationAndCondition struct {
// contains filtered or unexported fields
}
IUIAutomationAndCondition AND 条件接口 用于组合多个条件,所有条件都必须满足
func (*IUIAutomationAndCondition) Release ¶
func (v *IUIAutomationAndCondition) Release() uint32
Release 释放 AND 条件对象 返回: 引用计数
type IUIAutomationAndConditionVtbl ¶
type IUIAutomationAndConditionVtbl struct {
IUIAutomationConditionVtbl
Get_ChildCount uintptr // 获取子条件数量
GetChildren uintptr // 获取子条件数组(SAFEARRAY)
GetChildrenAsNativeArray uintptr // 获取子条件数组(原生数组)
}
IUIAutomationAndConditionVtbl AND 条件接口虚函数表
type IUIAutomationBoolCondition ¶
type IUIAutomationBoolCondition struct {
// contains filtered or unexported fields
}
IUIAutomationBoolCondition 布尔条件接口 用于创建 True 或 False 条件
func (*IUIAutomationBoolCondition) Release ¶
func (v *IUIAutomationBoolCondition) Release() uint32
Release 释放布尔条件对象 返回: 引用计数
type IUIAutomationBoolConditionVtbl ¶
type IUIAutomationBoolConditionVtbl struct {
IUIAutomationConditionVtbl
Get_BooleanValue uintptr // 获取布尔值
}
IUIAutomationBoolConditionVtbl 布尔条件接口虚函数表
type IUIAutomationCacheRequest ¶
type IUIAutomationCacheRequest struct {
// contains filtered or unexported fields
}
func (*IUIAutomationCacheRequest) AddPattern ¶
func (v *IUIAutomationCacheRequest) AddPattern(patternId PatternId) error
func (*IUIAutomationCacheRequest) AddProperty ¶
func (v *IUIAutomationCacheRequest) AddProperty(propertyId PropertyId) error
func (*IUIAutomationCacheRequest) Put_AutomationElementMode ¶
func (v *IUIAutomationCacheRequest) Put_AutomationElementMode(mode int32) error
func (*IUIAutomationCacheRequest) Put_TreeScope ¶
func (v *IUIAutomationCacheRequest) Put_TreeScope(scope TreeScope) error
func (*IUIAutomationCacheRequest) Release ¶
func (v *IUIAutomationCacheRequest) Release() uint32
type IUIAutomationCondition ¶
type IUIAutomationCondition struct {
// contains filtered or unexported fields
}
IUIAutomationCondition UI Automation 条件接口基类 用于创建元素搜索条件,是所有条件类型的基类
func CreateTrueCondition ¶
func CreateTrueCondition(v *IUIAutomation) *IUIAutomationCondition
CreateTrueCondition 创建真条件(辅助函数) 参数: v - UI Automation 接口 返回: 条件接口
func GetChild ¶
func GetChild(v *IUIAutomationNotCondition) (*IUIAutomationCondition, error)
GetChild 获取 NOT 条件的子条件 参数: v - NOT 条件接口 返回: 子条件接口和可能的错误
func GetChildrenAsNativeArray ¶
func GetChildrenAsNativeArray(v *IUIAutomationAndCondition) (*IUIAutomationCondition, int32, error)
GetChildrenAsNativeArray 获取 AND 条件中的子条件数组(原生数组格式) 参数: v - AND 条件接口 返回: 条件数组、数组长度和可能的错误
func (*IUIAutomationCondition) Release ¶
func (v *IUIAutomationCondition) Release() uint32
Release 释放条件对象 返回: 引用计数
type IUIAutomationConditionVtbl ¶
type IUIAutomationConditionVtbl struct {
IUnKnownVtbl
}
IUIAutomationConditionVtbl 条件接口虚函数表
type IUIAutomationElement ¶
type IUIAutomationElement struct {
// contains filtered or unexported fields
}
IUIAutomationElement UI Automation 元素接口 代表 UI 树中的一个元素,可以是窗口、按钮、文本框等
func ElementFromHandle ¶
func ElementFromHandle(v *IUIAutomation, hwnd uintptr) (*IUIAutomationElement, error)
ElementFromHandle 从窗口句柄获取元素(辅助函数) 参数:
- v: UI Automation 接口
- hwnd: 窗口句柄
返回: UI 元素和可能的错误
func GetElement ¶
func GetElement(v *IUIAutomationElementArray, i int32) (*IUIAutomationElement, error)
func NewIUIAutomationElement ¶
func NewIUIAutomationElement(unk *IUnKnown) *IUIAutomationElement
func (*IUIAutomationElement) BuildUpdatedCache ¶
func (v *IUIAutomationElement) BuildUpdatedCache(cacheRequest *IUIAutomationCacheRequest) (*IUIAutomationElement, error)
func (*IUIAutomationElement) FindAll ¶
func (v *IUIAutomationElement) FindAll(scope TreeScope, condition *IUIAutomationCondition) (*IUIAutomationElementArray, error)
func (*IUIAutomationElement) FindAllBuildCache ¶
func (v *IUIAutomationElement) FindAllBuildCache(scope TreeScope, condition *IUIAutomationCondition, cacheRequest *IUIAutomationCacheRequest) (*IUIAutomationElementArray, error)
func (*IUIAutomationElement) FindFirst ¶
func (v *IUIAutomationElement) FindFirst(scope TreeScope, condition *IUIAutomationCondition) (*IUIAutomationElement, error)
func (*IUIAutomationElement) GetCachedPattern ¶
func (v *IUIAutomationElement) GetCachedPattern(patternId PatternId) (*IUnKnown, error)
func (*IUIAutomationElement) GetClickablePoint ¶
func (v *IUIAutomationElement) GetClickablePoint() (*TagPoint, int32, error)
func (*IUIAutomationElement) GetCurrentPattern ¶
func (v *IUIAutomationElement) GetCurrentPattern(patternId PatternId) (*IUnKnown, error)
func (*IUIAutomationElement) GetCurrentPatternAs ¶
func (*IUIAutomationElement) GetCurrentPropertyValue ¶
func (v *IUIAutomationElement) GetCurrentPropertyValue(id PropertyId) (*VARIANT, error)
func (*IUIAutomationElement) GetCurrentPropertyValueEx ¶
func (v *IUIAutomationElement) GetCurrentPropertyValueEx(id PropertyId, defaultVal int32) (*VARIANT, error)
func (*IUIAutomationElement) GetRuntimeId ¶
func (v *IUIAutomationElement) GetRuntimeId() (*TagSafeArray, error)
func (*IUIAutomationElement) Get_CachedAutomationId ¶
func (v *IUIAutomationElement) Get_CachedAutomationId() (string, error)
func (*IUIAutomationElement) Get_CachedClassName ¶
func (v *IUIAutomationElement) Get_CachedClassName() (string, error)
func (*IUIAutomationElement) Get_CachedControlType ¶
func (v *IUIAutomationElement) Get_CachedControlType() ControlTypeId
func (*IUIAutomationElement) Get_CachedIsEnabled ¶
func (v *IUIAutomationElement) Get_CachedIsEnabled() int32
func (*IUIAutomationElement) Get_CachedLocalizedControlType ¶
func (v *IUIAutomationElement) Get_CachedLocalizedControlType() (string, error)
func (*IUIAutomationElement) Get_CachedName ¶
func (v *IUIAutomationElement) Get_CachedName() (string, error)
func (*IUIAutomationElement) Get_CachedProcessId ¶
func (v *IUIAutomationElement) Get_CachedProcessId() int32
func (*IUIAutomationElement) Get_CurrentAcceleratorKey ¶
func (v *IUIAutomationElement) Get_CurrentAcceleratorKey() (string, error)
func (*IUIAutomationElement) Get_CurrentAccessKey ¶
func (v *IUIAutomationElement) Get_CurrentAccessKey() (string, error)
func (*IUIAutomationElement) Get_CurrentAriaProperties ¶
func (v *IUIAutomationElement) Get_CurrentAriaProperties() (string, error)
func (*IUIAutomationElement) Get_CurrentAriaRole ¶
func (v *IUIAutomationElement) Get_CurrentAriaRole() (string, error)
func (*IUIAutomationElement) Get_CurrentAutomationId ¶
func (v *IUIAutomationElement) Get_CurrentAutomationId() (string, error)
func (*IUIAutomationElement) Get_CurrentBoundingRectangle ¶
func (v *IUIAutomationElement) Get_CurrentBoundingRectangle() *TagRect
func (*IUIAutomationElement) Get_CurrentClassName ¶
func (v *IUIAutomationElement) Get_CurrentClassName() (string, error)
func (*IUIAutomationElement) Get_CurrentControlType ¶
func (v *IUIAutomationElement) Get_CurrentControlType() ControlTypeId
func (*IUIAutomationElement) Get_CurrentControllerFor ¶
func (v *IUIAutomationElement) Get_CurrentControllerFor() *IUIAutomationElementArray
func (*IUIAutomationElement) Get_CurrentCulture ¶
func (v *IUIAutomationElement) Get_CurrentCulture() int32
func (*IUIAutomationElement) Get_CurrentDescribedBy ¶
func (v *IUIAutomationElement) Get_CurrentDescribedBy() *IUIAutomationElementArray
func (*IUIAutomationElement) Get_CurrentFlowsTo ¶
func (v *IUIAutomationElement) Get_CurrentFlowsTo() *IUIAutomationElementArray
func (*IUIAutomationElement) Get_CurrentFrameworkId ¶
func (v *IUIAutomationElement) Get_CurrentFrameworkId() (string, error)
func (*IUIAutomationElement) Get_CurrentHasKeyboardFocus ¶
func (v *IUIAutomationElement) Get_CurrentHasKeyboardFocus() int32
func (*IUIAutomationElement) Get_CurrentHelpText ¶
func (v *IUIAutomationElement) Get_CurrentHelpText() (string, error)
func (*IUIAutomationElement) Get_CurrentIsContentElement ¶
func (v *IUIAutomationElement) Get_CurrentIsContentElement() int32
func (*IUIAutomationElement) Get_CurrentIsControlElement ¶
func (v *IUIAutomationElement) Get_CurrentIsControlElement() int32
func (*IUIAutomationElement) Get_CurrentIsDataValidForForm ¶
func (v *IUIAutomationElement) Get_CurrentIsDataValidForForm() int32
func (*IUIAutomationElement) Get_CurrentIsEnabled ¶
func (v *IUIAutomationElement) Get_CurrentIsEnabled() int32
func (*IUIAutomationElement) Get_CurrentIsKeyboardFocusable ¶
func (v *IUIAutomationElement) Get_CurrentIsKeyboardFocusable() int32
func (*IUIAutomationElement) Get_CurrentIsOffscreen ¶
func (v *IUIAutomationElement) Get_CurrentIsOffscreen() int32
func (*IUIAutomationElement) Get_CurrentIsPassword ¶
func (v *IUIAutomationElement) Get_CurrentIsPassword() int32
func (*IUIAutomationElement) Get_CurrentIsRequiredForForm ¶
func (v *IUIAutomationElement) Get_CurrentIsRequiredForForm() int32
func (*IUIAutomationElement) Get_CurrentItemStatus ¶
func (v *IUIAutomationElement) Get_CurrentItemStatus() (string, error)
func (*IUIAutomationElement) Get_CurrentItemType ¶
func (v *IUIAutomationElement) Get_CurrentItemType() (string, error)
func (*IUIAutomationElement) Get_CurrentLabeledBy ¶
func (v *IUIAutomationElement) Get_CurrentLabeledBy() *IUIAutomationElement
func (*IUIAutomationElement) Get_CurrentLocalizedControlType ¶
func (v *IUIAutomationElement) Get_CurrentLocalizedControlType() (string, error)
func (*IUIAutomationElement) Get_CurrentName ¶
func (v *IUIAutomationElement) Get_CurrentName() (string, error)
func (*IUIAutomationElement) Get_CurrentNativeWindowHandle ¶
func (v *IUIAutomationElement) Get_CurrentNativeWindowHandle() uintptr
func (*IUIAutomationElement) Get_CurrentOrientation ¶
func (v *IUIAutomationElement) Get_CurrentOrientation() OrientationType
func (*IUIAutomationElement) Get_CurrentProcessId ¶
func (v *IUIAutomationElement) Get_CurrentProcessId() int32
func (*IUIAutomationElement) Get_CurrentProviderDescription ¶
func (v *IUIAutomationElement) Get_CurrentProviderDescription() (string, error)
func (*IUIAutomationElement) Release ¶
func (v *IUIAutomationElement) Release() uint32
Release 释放 UI 元素对象 返回: 引用计数
func (*IUIAutomationElement) SetFocus ¶
func (v *IUIAutomationElement) SetFocus() error
type IUIAutomationElementArray ¶
type IUIAutomationElementArray struct {
// contains filtered or unexported fields
}
func FindAll ¶
func FindAll(v *IUIAutomationElement, condition *IUIAutomationCondition) (*IUIAutomationElementArray, error)
func NewIUIAutomationElementArray ¶
func NewIUIAutomationElementArray(unk *IUnKnown) *IUIAutomationElementArray
func (*IUIAutomationElementArray) GetElement ¶
func (v *IUIAutomationElementArray) GetElement(i int32) (*IUIAutomationElement, error)
func (*IUIAutomationElementArray) Get_Length ¶
func (v *IUIAutomationElementArray) Get_Length() int32
func (*IUIAutomationElementArray) Release ¶
func (v *IUIAutomationElementArray) Release() uint32
type IUIAutomationElementVtbl ¶
type IUIAutomationElementVtbl struct {
IUnKnownVtbl
SetFocus uintptr // 设置焦点
GetRuntimeId uintptr // 获取运行时ID
FindFirst uintptr // 查找第一个匹配元素
FindAll uintptr // 查找所有匹配元素
FindFirstBuildCache uintptr // 查找第一个匹配元素并构建缓存
FindAllBuildCache uintptr // 查找所有匹配元素并构建缓存
BuildUpdatedCache uintptr // 构建更新缓存
GetCurrentPropertyValue uintptr // 获取当前属性值
GetCurrentPropertyValueEx uintptr // 获取当前属性值(扩展)
GetCachedPropertyValue uintptr // 获取缓存属性值
GetCachedPropertyValueEx uintptr // 获取缓存属性值(扩展)
GetCurrentPatternAs uintptr // 获取当前模式
GetCachedPatternAs uintptr
GetCurrentPattern uintptr
GetCachedPattern uintptr
GetCachedParent uintptr
GetCachedChildren uintptr
Get_CurrentProcessId uintptr
Get_CurrentControlType uintptr
Get_CurrentLocalizedControlType uintptr
Get_CurrentName uintptr
Get_CurrentAcceleratorKey uintptr
Get_CurrentAccessKey uintptr
Get_CurrentHasKeyboardFocus uintptr
Get_CurrentIsKeyboardFocusable uintptr
Get_CurrentIsEnabled uintptr
Get_CurrentAutomationId uintptr
Get_CurrentClassName uintptr
Get_CurrentHelpText uintptr
Get_CurrentCulture uintptr
Get_CurrentIsControlElement uintptr
Get_CurrentIsContentElement uintptr
Get_CurrentIsPassword uintptr
Get_CurrentNativeWindowHandle uintptr
Get_CurrentItemType uintptr
Get_CurrentIsOffscreen uintptr
Get_CurrentOrientation uintptr
Get_CurrentFrameworkId uintptr
Get_CurrentIsRequiredForForm uintptr
Get_CurrentItemStatus uintptr
Get_CurrentBoundingRectangle uintptr
Get_CurrentLabeledBy uintptr
Get_CurrentAriaRole uintptr
Get_CurrentAriaProperties uintptr
Get_CurrentIsDataValidForForm uintptr
Get_CurrentControllerFor uintptr
Get_CurrentDescribedBy uintptr
Get_CurrentFlowsTo uintptr
Get_CurrentProviderDescription uintptr
Get_CachedProcessId uintptr
Get_CachedControlType uintptr
Get_CachedLocalizedControlType uintptr
Get_CachedName uintptr
Get_CachedAcceleratorKey uintptr
Get_CachedAccessKey uintptr
Get_CachedHasKeyboardFocus uintptr
Get_CachedIsKeyboardFocusable uintptr
Get_CachedIsEnabled uintptr
Get_CachedAutomationId uintptr
Get_CachedClassName uintptr
Get_CachedHelpText uintptr
Get_CachedCulture uintptr
Get_CachedIsControlElement uintptr
Get_CachedIsContentElement uintptr
Get_CachedIsPassword uintptr
Get_CachedNativeWindowHandle uintptr
Get_CachedItemType uintptr
Get_CachedIsOffscreen uintptr
Get_CachedOrientation uintptr
Get_CachedFrameworkId uintptr
Get_CachedIsRequiredForForm uintptr
Get_CachedItemStatus uintptr
Get_CachedBoundingRectangle uintptr
Get_CachedLabeledBy uintptr
Get_CachedAriaRole uintptr
Get_CachedAriaProperties uintptr
Get_CachedIsDataValidForForm uintptr
Get_CachedControllerFor uintptr
Get_CachedDescribedBy uintptr
Get_CachedFlowsTo uintptr
Get_CachedProviderDescription uintptr
GetClickablePoint uintptr
}
IUIAutomationElementVtbl UI Automation 元素接口虚函数表
type IUIAutomationEventHandler ¶
type IUIAutomationEventHandler struct {
// contains filtered or unexported fields
}
func NewIUIAutomationEventHandler ¶
func NewIUIAutomationEventHandler(unk *IUnKnown) *IUIAutomationEventHandler
func (*IUIAutomationEventHandler) HandleAutomationEvent ¶
func (v *IUIAutomationEventHandler) HandleAutomationEvent(in *IUIAutomationElement, in2 UIA_EventId) error
func (*IUIAutomationEventHandler) Release ¶
func (v *IUIAutomationEventHandler) Release() uint32
type IUIAutomationEventHandlerVtbl ¶
type IUIAutomationEventHandlerVtbl struct {
IUnKnownVtbl
HandleAutomationEvent uintptr
}
type IUIAutomationExpandCollapsePattern ¶
type IUIAutomationExpandCollapsePattern struct {
// contains filtered or unexported fields
}
IUIAutomationExpandCollapsePattern 展开/折叠模式接口 用于展开或折叠树节点、菜单等控件
func (*IUIAutomationExpandCollapsePattern) Collapse ¶
func (v *IUIAutomationExpandCollapsePattern) Collapse() error
Collapse 折叠控件 返回: 错误信息
func (*IUIAutomationExpandCollapsePattern) Expand ¶
func (v *IUIAutomationExpandCollapsePattern) Expand() error
Expand 展开控件 返回: 错误信息
func (*IUIAutomationExpandCollapsePattern) Release ¶
func (v *IUIAutomationExpandCollapsePattern) Release() uint32
Release 释放展开/折叠模式对象 返回: 引用计数
type IUIAutomationExpandCollapsePatternVtbl ¶
type IUIAutomationExpandCollapsePatternVtbl struct {
IUnKnownVtbl
Expand uintptr // 展开
Collapse uintptr // 折叠
Get_CurrentExpandCollapseState uintptr // 获取当前展开/折叠状态
Get_CachedExpandCollapseState uintptr // 获取缓存展开/折叠状态
}
IUIAutomationExpandCollapsePatternVtbl 展开/折叠模式虚函数表
type IUIAutomationFocusChangedEventHandler ¶
type IUIAutomationFocusChangedEventHandler struct {
// contains filtered or unexported fields
}
func NewIUIAutomationFocusChangedEventHandler ¶
func NewIUIAutomationFocusChangedEventHandler(unk *IUnKnown) *IUIAutomationFocusChangedEventHandler
func (*IUIAutomationFocusChangedEventHandler) HandleFocusChangedEvent ¶
func (v *IUIAutomationFocusChangedEventHandler) HandleFocusChangedEvent(in *IUIAutomationElement) error
func (*IUIAutomationFocusChangedEventHandler) Release ¶
func (v *IUIAutomationFocusChangedEventHandler) Release() uint32
type IUIAutomationFocusChangedEventHandlerVtbl ¶
type IUIAutomationFocusChangedEventHandlerVtbl struct {
IUnKnownVtbl
HandleFocusChangedEvent uintptr
}
type IUIAutomationInvokePattern ¶
type IUIAutomationInvokePattern struct {
// contains filtered or unexported fields
}
IUIAutomationInvokePattern 调用模式接口 用于调用按钮等可点击控件
func NewIUIAutomationInvokePattern ¶
func NewIUIAutomationInvokePattern(unk *IUnKnown) *IUIAutomationInvokePattern
NewIUIAutomationInvokePattern 创建调用模式实例 参数: unk - IUnKnown 接口 返回: 调用模式实例
func (*IUIAutomationInvokePattern) DoubleClick ¶
func (v *IUIAutomationInvokePattern) DoubleClick(interval int) error
DoubleClick 双击控件(调用两次 Invoke) 参数:
- interval: 两次点击之间的间隔时间(毫秒)
返回: 错误信息
func (*IUIAutomationInvokePattern) Invoke ¶
func (v *IUIAutomationInvokePattern) Invoke() error
Invoke 调用控件(如点击按钮) 返回: 错误信息
func (*IUIAutomationInvokePattern) Release ¶
func (v *IUIAutomationInvokePattern) Release() uint32
Release 释放调用模式对象 返回: 引用计数
type IUIAutomationInvokePatternVtbl ¶
type IUIAutomationInvokePatternVtbl struct {
IUnKnownVtbl
Invoke uintptr // 调用控件
}
IUIAutomationInvokePatternVtbl 调用模式虚函数表
type IUIAutomationLegacyIAccessiblePattern ¶
type IUIAutomationLegacyIAccessiblePattern struct {
// contains filtered or unexported fields
}
IUIAutomationLegacyIAccessiblePattern 旧版 IAccessible 模式接口 用于执行默认操作(如双击)
func NewIUIAutomationLegacyIAccessiblePattern ¶
func NewIUIAutomationLegacyIAccessiblePattern(unk *IUnKnown) *IUIAutomationLegacyIAccessiblePattern
NewIUIAutomationLegacyIAccessiblePattern 创建旧版 IAccessible 模式实例 参数: unk - IUnKnown 接口 返回: 旧版 IAccessible 模式实例
func (*IUIAutomationLegacyIAccessiblePattern) DoDefaultAction ¶
func (v *IUIAutomationLegacyIAccessiblePattern) DoDefaultAction() error
DoDefaultAction 执行默认操作(如双击) 返回: 错误信息
func (*IUIAutomationLegacyIAccessiblePattern) Get_CurrentDefaultAction ¶
func (v *IUIAutomationLegacyIAccessiblePattern) Get_CurrentDefaultAction() (string, error)
Get_CurrentDefaultAction 获取默认操作 返回: 默认操作和可能的错误
func (*IUIAutomationLegacyIAccessiblePattern) Release ¶
func (v *IUIAutomationLegacyIAccessiblePattern) Release() uint32
Release 释放旧版 IAccessible 模式对象 返回: 引用计数
type IUIAutomationLegacyIAccessiblePatternVtbl ¶
type IUIAutomationLegacyIAccessiblePatternVtbl struct {
IUnKnownVtbl
Get_CurrentChildId uintptr // 获取子 ID
Get_CurrentDefaultAction uintptr // 获取默认操作
Get_CurrentDescription uintptr // 获取描述
Get_CurrentHelp uintptr // 获取帮助
Get_CurrentKeyboardShortcut uintptr // 获取键盘快捷键
Get_CurrentName uintptr // 获取名称
Get_CurrentRole uintptr // 获取角色
Get_CurrentState uintptr // 获取状态
Get_CurrentValue uintptr // 获取值
DoDefaultAction uintptr // 执行默认操作
SetCurrentValue uintptr // 设置当前值
Get_CurrentParent uintptr // 获取父元素
Get_Selection uintptr // 获取选择
Get_FocusedElement uintptr // 获取焦点元素
}
IUIAutomationLegacyIAccessiblePatternVtbl 旧版 IAccessible 模式虚函数表
type IUIAutomationNotCondition ¶
type IUIAutomationNotCondition struct {
// contains filtered or unexported fields
}
IUIAutomationNotCondition NOT 条件接口 用于对条件取反
func (*IUIAutomationNotCondition) Release ¶
func (v *IUIAutomationNotCondition) Release() uint32
Release 释放 NOT 条件对象 返回: 引用计数
type IUIAutomationNotConditionVtbl ¶
type IUIAutomationNotConditionVtbl struct {
IUIAutomationConditionVtbl
GetChild uintptr // 获取子条件
}
IUIAutomationNotConditionVtbl NOT 条件接口虚函数表
type IUIAutomationPropertyCondition ¶
type IUIAutomationPropertyCondition struct {
// contains filtered or unexported fields
}
IUIAutomationPropertyCondition 属性条件接口 用于根据元素属性值创建搜索条件
func (*IUIAutomationPropertyCondition) Release ¶
func (v *IUIAutomationPropertyCondition) Release() uint32
Release 释放属性条件对象 返回: 引用计数
type IUIAutomationPropertyConditionVtbl ¶
type IUIAutomationPropertyConditionVtbl struct {
IUIAutomationConditionVtbl
Get_PropertyConditionFlags uintptr // 获取条件标志
Get_PropertyId uintptr // 获取属性ID
Get_PropertyValue uintptr // 获取属性值
}
IUIAutomationPropertyConditionVtbl 属性条件接口虚函数表
type IUIAutomationProxyFactory ¶
type IUIAutomationProxyFactory struct {
// contains filtered or unexported fields
}
func NewIUIAutomationProxyFactory ¶
func NewIUIAutomationProxyFactory(unk *IUnKnown) *IUIAutomationProxyFactory
func (*IUIAutomationProxyFactory) CreateProvider ¶
func (v *IUIAutomationProxyFactory) CreateProvider(in uintptr, in2, in3 int32) (*IRawElementProviderSimple, error)
func (*IUIAutomationProxyFactory) Get_ProxyFactoryId ¶
func (v *IUIAutomationProxyFactory) Get_ProxyFactoryId() (string, error)
func (*IUIAutomationProxyFactory) Release ¶
func (v *IUIAutomationProxyFactory) Release() uint32
type IUIAutomationProxyFactoryEntry ¶
type IUIAutomationProxyFactoryEntry struct {
// contains filtered or unexported fields
}
func NewIUIAutomationProxyFactoryEntry ¶
func NewIUIAutomationProxyFactoryEntry(unk *IUnKnown) *IUIAutomationProxyFactoryEntry
func (*IUIAutomationProxyFactoryEntry) GetWinEventsForAutomationEvent ¶
func (v *IUIAutomationProxyFactoryEntry) GetWinEventsForAutomationEvent(in UIA_EventId, in2 PropertyId) (*TagSafeArray, error)
func (*IUIAutomationProxyFactoryEntry) Get_AllowSubstringMatch ¶
func (v *IUIAutomationProxyFactoryEntry) Get_AllowSubstringMatch() int32
func (*IUIAutomationProxyFactoryEntry) Get_CanCheckBaseClass ¶
func (v *IUIAutomationProxyFactoryEntry) Get_CanCheckBaseClass() int32
func (*IUIAutomationProxyFactoryEntry) Get_ClassName ¶
func (v *IUIAutomationProxyFactoryEntry) Get_ClassName() (string, error)
func (*IUIAutomationProxyFactoryEntry) Get_ImageName ¶
func (v *IUIAutomationProxyFactoryEntry) Get_ImageName() (string, error)
func (*IUIAutomationProxyFactoryEntry) Get_NeedsAdviseEvents ¶
func (v *IUIAutomationProxyFactoryEntry) Get_NeedsAdviseEvents() int32
func (*IUIAutomationProxyFactoryEntry) Get_ProxyFactory ¶
func (v *IUIAutomationProxyFactoryEntry) Get_ProxyFactory() *IUIAutomationProxyFactory
func (*IUIAutomationProxyFactoryEntry) Put_AllowSubstringMatch ¶
func (v *IUIAutomationProxyFactoryEntry) Put_AllowSubstringMatch() int32
func (*IUIAutomationProxyFactoryEntry) Put_CanCheckBaseClass ¶
func (v *IUIAutomationProxyFactoryEntry) Put_CanCheckBaseClass() int32
func (*IUIAutomationProxyFactoryEntry) Put_ClassName ¶
func (v *IUIAutomationProxyFactoryEntry) Put_ClassName() string
func (*IUIAutomationProxyFactoryEntry) Put_ImageName ¶
func (v *IUIAutomationProxyFactoryEntry) Put_ImageName() string
func (*IUIAutomationProxyFactoryEntry) Put_NeedsAdviseEvents ¶
func (v *IUIAutomationProxyFactoryEntry) Put_NeedsAdviseEvents() int32
func (*IUIAutomationProxyFactoryEntry) Release ¶
func (v *IUIAutomationProxyFactoryEntry) Release() uint32
func (*IUIAutomationProxyFactoryEntry) SetWinEventsForAutomationEvent ¶
func (v *IUIAutomationProxyFactoryEntry) SetWinEventsForAutomationEvent(in UIA_EventId, in2 PropertyId, in3 *TagSafeArray) error
type IUIAutomationProxyFactoryEntryVtbl ¶
type IUIAutomationProxyFactoryEntryVtbl struct {
IUnKnownVtbl
Get_AllowSubstringMatch uintptr
Get_CanCheckBaseClass uintptr
Get_ClassName uintptr
Get_ImageName uintptr
Get_NeedsAdviseEvents uintptr
Get_ProxyFactory uintptr
GetWinEventsForAutomationEvent uintptr
Put_AllowSubstringMatch uintptr
Put_CanCheckBaseClass uintptr
Put_ClassName uintptr
Put_ImageName uintptr
Put_NeedsAdviseEvents uintptr
SetWinEventsForAutomationEvent uintptr
}
type IUIAutomationProxyFactoryMapping ¶
type IUIAutomationProxyFactoryMapping struct {
// contains filtered or unexported fields
}
func NewIUIAutomationProxyFactoryMapping ¶
func NewIUIAutomationProxyFactoryMapping(unk *IUnKnown) *IUIAutomationProxyFactoryMapping
func (*IUIAutomationProxyFactoryMapping) ClearTable ¶
func (v *IUIAutomationProxyFactoryMapping) ClearTable() error
func (*IUIAutomationProxyFactoryMapping) GetEntry ¶
func (v *IUIAutomationProxyFactoryMapping) GetEntry(in uint32) (*IUIAutomationProxyFactoryEntry, error)
func (*IUIAutomationProxyFactoryMapping) GetTable ¶
func (v *IUIAutomationProxyFactoryMapping) GetTable() (*TagSafeArray, error)
func (*IUIAutomationProxyFactoryMapping) Get_Count ¶
func (v *IUIAutomationProxyFactoryMapping) Get_Count() uint32
func (*IUIAutomationProxyFactoryMapping) InsertEntries ¶
func (v *IUIAutomationProxyFactoryMapping) InsertEntries(in uint32, in2 *TagSafeArray) error
func (*IUIAutomationProxyFactoryMapping) InsertEntry ¶
func (v *IUIAutomationProxyFactoryMapping) InsertEntry(in uint32, in2 *IUIAutomationProxyFactoryEntry) error
func (*IUIAutomationProxyFactoryMapping) Release ¶
func (v *IUIAutomationProxyFactoryMapping) Release() uint32
func (*IUIAutomationProxyFactoryMapping) RemoveEntry ¶
func (v *IUIAutomationProxyFactoryMapping) RemoveEntry(in uint32) error
func (*IUIAutomationProxyFactoryMapping) RestoreDefaultTable ¶
func (v *IUIAutomationProxyFactoryMapping) RestoreDefaultTable() error
func (*IUIAutomationProxyFactoryMapping) SetTable ¶
func (v *IUIAutomationProxyFactoryMapping) SetTable(in *TagSafeArray) error
type IUIAutomationProxyFactoryVtbl ¶
type IUIAutomationProxyFactoryVtbl struct {
IUnKnownVtbl
CreateProvider uintptr
Get_ProxyFactoryId uintptr
}
type IUIAutomationSelectionItemPattern ¶
type IUIAutomationSelectionItemPattern struct {
// contains filtered or unexported fields
}
IUIAutomationSelectionItemPattern 选择项模式接口 用于选择列表项等控件
func NewIUIAutomationSelectionItemPattern ¶
func NewIUIAutomationSelectionItemPattern(unk *IUnKnown) *IUIAutomationSelectionItemPattern
NewIUIAutomationSelectionItemPattern 创建选择项模式实例 参数: unk - IUnKnown 接口 返回: 选择项模式实例
func (*IUIAutomationSelectionItemPattern) Release ¶
func (v *IUIAutomationSelectionItemPattern) Release() uint32
Release 释放选择项模式对象 返回: 引用计数
func (*IUIAutomationSelectionItemPattern) Select ¶
func (v *IUIAutomationSelectionItemPattern) Select() error
Select 选择该项 返回: 错误信息
type IUIAutomationSelectionItemPatternVtbl ¶
type IUIAutomationSelectionItemPatternVtbl struct {
IUnKnownVtbl
Select uintptr // 选择项
AddToSelection uintptr // 添加到选择
RemoveFromSelection uintptr // 从选择移除
Get_CurrentIsSelected uintptr // 获取是否已选中
Get_CurrentSelectionContainer uintptr // 获取选择容器
Get_CachedIsSelected uintptr // 获取缓存是否已选中
Get_CachedSelectionContainer uintptr // 获取缓存选择容器
}
IUIAutomationSelectionItemPatternVtbl 选择项模式虚函数表
type IUIAutomationStructureChangedEventHandler ¶
type IUIAutomationStructureChangedEventHandler struct {
// contains filtered or unexported fields
}
func NewIUIAutomationStructureChangedEventHandler ¶
func NewIUIAutomationStructureChangedEventHandler(unk *IUnKnown) *IUIAutomationStructureChangedEventHandler
func (*IUIAutomationStructureChangedEventHandler) HandleStructureChangedEvent ¶
func (v *IUIAutomationStructureChangedEventHandler) HandleStructureChangedEvent(in *IUIAutomationElement, in2 StructureChangeType, in3 *TagSafeArray) error
func (*IUIAutomationStructureChangedEventHandler) Release ¶
func (v *IUIAutomationStructureChangedEventHandler) Release() uint32
type IUIAutomationStructureChangedEventHandlerVtbl ¶
type IUIAutomationStructureChangedEventHandlerVtbl struct {
IUnKnownVtbl
HandleStructureChangedEvent uintptr
}
type IUIAutomationTogglePattern ¶
type IUIAutomationTogglePattern struct {
// contains filtered or unexported fields
}
IUIAutomationTogglePattern 切换模式接口 用于切换复选框等控件的状态
func NewIUIAutomationTogglePattern ¶
func NewIUIAutomationTogglePattern(unk *IUnKnown) *IUIAutomationTogglePattern
NewIUIAutomationTogglePattern 创建切换模式实例 参数: unk - IUnKnown 接口 返回: 切换模式实例
func (*IUIAutomationTogglePattern) Get_CurrentToggleState ¶
func (v *IUIAutomationTogglePattern) Get_CurrentToggleState() (ToggleState, error)
Get_CurrentToggleState 获取当前切换状态 返回: 切换状态和可能的错误
func (*IUIAutomationTogglePattern) Release ¶
func (v *IUIAutomationTogglePattern) Release() uint32
Release 释放切换模式对象 返回: 引用计数
func (*IUIAutomationTogglePattern) Toggle ¶
func (v *IUIAutomationTogglePattern) Toggle() error
Toggle 切换控件状态 返回: 错误信息
type IUIAutomationTogglePatternVtbl ¶
type IUIAutomationTogglePatternVtbl struct {
IUnKnownVtbl
Toggle uintptr // 切换状态
Get_CurrentToggleState uintptr // 获取当前切换状态
Get_CachedToggleState uintptr // 获取缓存切换状态
}
IUIAutomationTogglePatternVtbl 切换模式虚函数表
type IUIAutomationTreeWalker ¶
type IUIAutomationTreeWalker struct {
// contains filtered or unexported fields
}
func (*IUIAutomationTreeWalker) GetFirstChildElement ¶
func (v *IUIAutomationTreeWalker) GetFirstChildElement(element *IUIAutomationElement) (*IUIAutomationElement, error)
func (*IUIAutomationTreeWalker) GetNextSiblingElement ¶
func (v *IUIAutomationTreeWalker) GetNextSiblingElement(element *IUIAutomationElement) (*IUIAutomationElement, error)
func (*IUIAutomationTreeWalker) GetParentElement ¶
func (v *IUIAutomationTreeWalker) GetParentElement(element *IUIAutomationElement) (*IUIAutomationElement, error)
func (*IUIAutomationTreeWalker) Release ¶
func (v *IUIAutomationTreeWalker) Release() uint32
type IUIAutomationTreeWalkerVtbl ¶
type IUIAutomationTreeWalkerVtbl struct {
IUnKnownVtbl
Get_Condition uintptr
GetFirstChildElement uintptr
GetFirstChildElementBuildCache uintptr
GetLastChildElement uintptr
GetLastChildElementBuildCache uintptr
GetNextSiblingElement uintptr
GetNextSiblingElementBuildCache uintptr
GetParentElement uintptr
GetParentElementBuildCache uintptr
GetPreviousSiblingElement uintptr
GetPreviousSiblingElementBuildCache uintptr
NormalizeElement uintptr
NormalizeElementBuildCache uintptr
}
type IUIAutomationValuePattern ¶
type IUIAutomationValuePattern struct {
// contains filtered or unexported fields
}
IUIAutomationValuePattern 值模式接口 用于设置或获取文本输入控件的值
func NewIUIAutomationValuePattern ¶
func NewIUIAutomationValuePattern(unk *IUnKnown) *IUIAutomationValuePattern
NewIUIAutomationValuePattern 创建值模式实例 参数: unk - IUnKnown 接口 返回: 值模式实例
func (*IUIAutomationValuePattern) Get_CurrentValue ¶
func (v *IUIAutomationValuePattern) Get_CurrentValue() (string, error)
Get_CurrentValue 获取控件的当前值 返回: 当前值和可能的错误
func (*IUIAutomationValuePattern) Release ¶
func (v *IUIAutomationValuePattern) Release() uint32
Release 释放值模式对象 返回: 引用计数
func (*IUIAutomationValuePattern) SetValue ¶
func (v *IUIAutomationValuePattern) SetValue(val string) error
SetValue 设置控件的值 参数: val - 要设置的值 返回: 错误信息
type IUIAutomationValuePatternVtbl ¶
type IUIAutomationValuePatternVtbl struct {
IUnKnownVtbl
SetValue uintptr // 设置值
Get_CurrentValue uintptr // 获取当前值
Get_CurrentIsReadOnly uintptr // 获取是否只读
Get_CachedValue uintptr // 获取缓存值
Get_CachedIsReadOnly uintptr // 获取缓存是否只读
}
IUIAutomationValuePatternVtbl 值模式虚函数表
type IUIAutomationVtbl ¶
type IUIAutomationVtbl struct {
IUnKnownVtbl
CompareElements uintptr // 比较两个元素是否相同
CompareRuntimeIds uintptr // 比较两个运行时ID
GetRootElement uintptr // 获取桌面根元素
ElementFromHandle uintptr // 从窗口句柄获取元素
ElementFromPoint uintptr // 从屏幕坐标获取元素
GetFocusedElement uintptr // 获取当前焦点元素
GetRootElementBuildCache uintptr // 获取根元素(带缓存)
ElementFromHandleBuildCache uintptr // 从句柄获取元素(带缓存)
ElementFromPointBuildCache uintptr // 从坐标获取元素(带缓存)
GetFocusedElementBuildCache uintptr // 获取焦点元素(带缓存)
CreateTreeWalker uintptr // 创建树遍历器
Get_ControlViewWalker uintptr // 获取控件视图遍历器
Get_ContentViewWalker uintptr // 获取内容视图遍历器
Get_RawViewWalker uintptr // 获取原始视图遍历器
Get_RawViewCondition uintptr // 获取原始视图条件
Get_ControlViewCondition uintptr // 获取控件视图条件
Get_ContentViewCondition uintptr // 获取内容视图条件
CreateCacheRequest uintptr // 创建缓存请求
CreateTrueCondition uintptr // 创建 True 条件
CreateFalseCondition uintptr // 创建 False 条件
CreatePropertyCondition uintptr // 创建属性条件
CreatePropertyConditionEx uintptr // 创建扩展属性条件
CreateAndCondition uintptr // 创建 AND 条件
CreateAndConditionFromArray uintptr // 从数组创建 AND 条件
CreateAndConditionFromNativeArray uintptr // 从原生数组创建 AND 条件
CreateOrCondition uintptr // 创建 OR 条件
CreateOrConditionFromArray uintptr // 从数组创建 OR 条件
CreateOrConditionFromNativeArray uintptr // 从原生数组创建 OR 条件
CreateNotCondition uintptr // 创建 NOT 条件
AddAutomationEventHandler uintptr // 添加自动化事件处理器
RemoveAutomationEventHandler uintptr // 移除自动化事件处理器
AddPropertyChangedEventHandlerNativeArray uintptr // 添加属性变更事件处理器(原生数组)
AddPropertyChangedEventHandler uintptr // 添加属性变更事件处理器
RemovePropertyChangedEventHandler uintptr // 移除属性变更事件处理器
AddStructureChangedEventHandler uintptr // 添加结构变更事件处理器
RemoveStructureChangedEventHandler uintptr // 移除结构变更事件处理器
AddFocusChangedEventHandler uintptr // 添加焦点变更事件处理器
RemoveFocusChangedEventHandler uintptr // 移除焦点变更事件处理器
RemoveAllEventHandlers uintptr // 移除所有事件处理器
IntNativeArrayToSafeArray uintptr // 整数原生数组转 SAFEARRAY
IntSafeArrayToNativeArray uintptr // SAFEARRAY 转整数原生数组
RectToVariant uintptr // 矩形转 VARIANT
VariantToRect uintptr // VARIANT 转矩形
SafeArrayToRectNativeArray uintptr // SAFEARRAY 转矩形数组
CreateProxyFactoryEntry uintptr // 创建代理工厂条目
Get_ProxyFactoryMapping uintptr // 获取代理工厂映射
GetPropertyProgrammaticName uintptr // 获取属性程序名称
GetPatternProgrammaticName uintptr // 获取模式程序名称
PollForPotentialSupportedPatterns uintptr // 轮询潜在支持的模式
PollForPotentialSupportedProperties uintptr // 轮询潜在支持的属性
CheckNotSupported uintptr // 检查是否不支持
Get_ReservedNotSupportedValue uintptr // 获取保留的不支持值
Get_ReservedMixedAttributeValue uintptr // 获取保留的混合属性值
ElementFromIAccessible uintptr // 从 IAccessible 获取元素
ElementFromIAccessibleBuildCache uintptr // 从 IAccessible 获取元素(带缓存)
}
IUIAutomationVtbl UI Automation 接口虚函数表
type IUnKnown ¶
type IUnKnown struct {
Vtbl *IUnKnownVtbl
}
IUnKnown COM IUnknown 接口 所有 COM 接口的基类,提供引用计数和接口查询功能
func NewIUnKnown ¶
NewIUnKnown 从指针创建 IUnKnown 实例 参数: v - COM 对象指针 返回: IUnKnown 实例
type IUnKnownVtbl ¶
type IUnKnownVtbl struct {
QueryInterface uintptr // 查询接口
AddRef uintptr // 增加引用计数
Release uintptr // 释放引用计数
}
IUnKnownVtbl IUnknown 接口虚函数表
type OrientationType ¶
type OrientationType int32
OrientationType 方向类型
const ( OrientationType_None OrientationType = iota // 无方向 OrientationType_Horizontal // 水平 OrientationType_Vertical // 垂直 )
方向类型常量
type ParamFlag ¶
type ParamFlag uint16
ParamFlag 参数标志
const ( PARAMFLAG_NONE ParamFlag = 0 // 无标志 PARAMFLAG_FIN ParamFlag = 0x1 // 输入参数 PARAMFLAG_FOUT ParamFlag = 0x2 // 输出参数 PARAMFLAG_FLCID ParamFlag = 0x4 // LCID 参数 PARAMFLAG_FRETVAL ParamFlag = 0x8 // 返回值参数 PARAMFLAG_FOPT ParamFlag = 0x10 // 可选参数 PARAMFLAG_FHASDEFAULT ParamFlag = 0x20 // 有默认值 PARAMFLAG_FHASCUSTDATA ParamFlag = 0x40 // 有自定义数据 )
参数标志常量 参考: https://learn.microsoft.com/zh-cn/previous-versions/windows/desktop/automat/paramflags
type PatternId ¶
type PatternId int32
PatternId UI Automation 模式标识符类型 用于标识 UI 元素支持的各种操作模式,如点击、设置值、展开折叠等
const ( UIA_AnnotationPatternId PatternId = 10023 // 注解模式 UIA_DockPatternId PatternId = 10011 // 停靠模式 UIA_DragPatternId PatternId = 10030 // 拖拽模式 UIA_DropTargetPatternId PatternId = 10031 // 放置目标模式 UIA_ExpandCollapsePatternId PatternId = 10005 // 展开/折叠模式 UIA_GridItemPatternId PatternId = 10007 // 网格项模式 UIA_GridPatternId PatternId = 10006 // 网格模式 UIA_InvokePatternId PatternId = 10000 // 调用模式(按钮点击) UIA_ItemContainerPatternId PatternId = 10019 // 项目容器模式 UIA_LegacyIAccessiblePatternId PatternId = 10018 // 旧版 IAccessible 模式 UIA_MultipleViewPatternId PatternId = 10008 // 多视图模式 UIA_ObjectModelPatternId PatternId = 10022 // 对象模型模式 UIA_RangeValuePatternId PatternId = 10003 // 范围值模式(滑块) UIA_ScrollItemPatternId PatternId = 10017 // 滚动项模式 UIA_ScrollPatternId PatternId = 10004 // 滚动模式 UIA_SelectionItemPatternId PatternId = 10010 // 选择项模式 UIA_SelectionPatternId PatternId = 10001 // 选择模式 UIA_SpreadsheetPatternId PatternId = 10026 // 电子表格模式 UIA_SpreadsheetItemPatternId PatternId = 10027 // 电子表格项模式 UIA_StylesPatternId PatternId = 10025 // 样式模式 UIA_SynchronizedInputPatternId PatternId = 10021 // 同步输入模式 UIA_TableItemPatternId PatternId = 10013 // 表格项模式 UIA_TablePatternId PatternId = 10012 // 表格模式 UIA_TextChildPatternId PatternId = 10029 // 文本子项模式 UIA_TextEditPatternId PatternId = 10032 // 文本编辑模式 UIA_TextPatternId PatternId = 10014 // 文本模式 UIA_TextPattern2Id PatternId = 10024 // 文本模式2 UIA_TogglePatternId PatternId = 10015 // 切换模式(复选框) UIA_TransformPatternId PatternId = 10016 // 变换模式(移动、调整大小、旋转) UIA_TransformPattern2Id PatternId = 10028 // 变换模式2 UIA_ValuePatternId PatternId = 10002 // 值模式(文本输入) UIA_VirtualizedItemPatternId PatternId = 10020 // 虚拟化项模式 UIA_WindowPatternId PatternId = 10009 // 窗口模式 )
UI Automation 模式常量定义 参考: https://learn.microsoft.com/zh-cn/windows/win32/winauto/uiauto-controlpattern-ids
type PropertyConditionFlags ¶
type PropertyConditionFlags int32
PropertyConditionFlags 属性条件标志
const ( PropertyConditionFlags_None PropertyConditionFlags = 0 // 无标志 PropertyConditionFlags_IgnoreCase PropertyConditionFlags = 0x1 // 忽略大小写 PropertyConditionFlags_MatchSubstring PropertyConditionFlags = 0x2 // 匹配子字符串 )
属性条件标志常量
func Get_PropertyConditionFlags ¶
func Get_PropertyConditionFlags(v *IUIAutomationPropertyCondition) *PropertyConditionFlags
Get_PropertyConditionFlags 获取属性条件的标志 参数: v - 属性条件接口 返回: 条件标志指针
type PropertyId ¶
type PropertyId int32
PropertyId UI Automation 属性标识符类型 用于标识 UI 元素的各种属性,如名称、类名、控件类型等
const ( UIA_AcceleratorKeyPropertyId PropertyId = 30006 // 快捷键属性 UIA_AccessKeyPropertyId PropertyId = 30007 // 访问键属性(如 Alt+F) UIA_AnnotationObjectsPropertyId PropertyId = 30156 // 注解对象属性 UIA_AnnotationTypesPropertyId PropertyId = 30155 // 注解类型属性 UIA_AriaPropertiesPropertyId PropertyId = 30102 // ARIA 属性 UIA_AriaRolePropertyId PropertyId = 30101 // ARIA 角色属性 UIA_AutomationIdPropertyId PropertyId = 30011 // 自动化ID属性(唯一标识符) UIA_BoundingRectanglePropertyId PropertyId = 30001 // 边界矩形属性(元素位置和大小) UIA_CenterPointPropertyId PropertyId = 30165 // 中心点属性 UIA_ClassNamePropertyId PropertyId = 30012 // 类名属性 UIA_ClickablePointPropertyId PropertyId = 30014 // 可点击点属性 UIA_ControllerForPropertyId PropertyId = 30104 // 控制器属性 UIA_ControlTypePropertyId PropertyId = 30003 // 控件类型属性 UIA_CulturePropertyId PropertyId = 30015 // 文化/区域属性 UIA_DescribedByPropertyId PropertyId = 30105 // 描述属性 UIA_FillColorPropertyId PropertyId = 30160 // 填充颜色属性 UIA_FillTypePropertyId PropertyId = 30162 // 填充类型属性 UIA_FlowsFromPropertyId PropertyId = 30148 // 流向来源属性 UIA_FlowsToPropertyId PropertyId = 30106 // 流向目标属性 UIA_FrameworkIdPropertyId PropertyId = 30024 // 框架ID属性(如 WPF, Win32) UIA_FullDescriptionPropertyId PropertyId = 30159 // 完整描述属性 UIA_HasKeyboardFocusPropertyId PropertyId = 30008 // 是否有键盘焦点属性 UIA_HeadingLevelPropertyId PropertyId = 30173 // 标题级别属性 UIA_HelpTextPropertyId PropertyId = 30013 // 帮助文本属性 UIA_IsContentElementPropertyId PropertyId = 30017 // 是否为内容元素属性 UIA_IsControlElementPropertyId PropertyId = 30016 // 是否为控件元素属性 UIA_IsDataValidForFormPropertyId PropertyId = 30103 // 表单数据是否有效属性 UIA_IsDialogPropertyId PropertyId = 30174 // 是否为对话框属性 UIA_IsEnabledPropertyId PropertyId = 30010 // 是否启用属性 UIA_IsKeyboardFocusablePropertyId PropertyId = 30009 // 是否可获取键盘焦点属性 UIA_IsOffscreenPropertyId PropertyId = 30022 // 是否在屏幕外属性 UIA_IsPasswordPropertyId PropertyId = 30019 // 是否为密码字段属性 UIA_IsPeripheralPropertyId PropertyId = 30150 // 是否为外围设备属性 UIA_IsRequiredForFormPropertyId PropertyId = 30025 // 表单是否必填属性 UIA_ItemStatusPropertyId PropertyId = 30026 // 项目状态属性 UIA_ItemTypePropertyId PropertyId = 300021 // 项目类型属性 UIA_LabeledByPropertyId PropertyId = 30018 // 标签来源属性 UIA_LandmarkTypePropertyId PropertyId = 30157 // 地标类型属性 UIA_LevelPropertyId PropertyId = 30154 // 层级属性 UIA_LiveSettingPropertyId PropertyId = 30135 // 实时设置属性 UIA_LocalizedControlTypePropertyId PropertyId = 30004 // 本地化控件类型属性 UIA_LocalizedLandmarkTypePropertyId PropertyId = 30158 // 本地化地标类型属性 UIA_NamePropertyId PropertyId = 30005 // 名称属性 UIA_NativeWindowHandlePropertyId PropertyId = 30020 // 原生窗口句柄属性 UIA_OptimizeForVisualContentPropertyId PropertyId = 30111 // 视觉内容优化属性 UIA_OrientationPropertyId PropertyId = 300023 // 方向属性 UIA_OutlineColorPropertyId PropertyId = 30161 // 轮廓颜色属性 UIA_OutlineThicknessPropertyId PropertyId = 30164 // 轮廓厚度属性 UIA_PositionInSetPropertyId PropertyId = 30152 // 集合中位置属性 UIA_ProcessIdPropertyId PropertyId = 30002 // 进程ID属性 UIA_ProviderDescriptionPropertyId PropertyId = 30107 // 提供者描述属性 UIA_RotationPropertyId PropertyId = 30166 // 旋转属性 UIA_RuntimeIdPropertyId PropertyId = 30000 // 运行时ID属性 UIA_SizePropertyId PropertyId = 30167 // 尺寸属性 UIA_SizeOfSetPropertyId PropertyId = 30153 // 集合大小属性 UIA_VisualEffectsPropertyId PropertyId = 30163 // 视觉效果属性 )
UI Automation 属性常量定义 参考: https://learn.microsoft.com/zh-cn/windows/win32/winauto/uiauto-entry-propids
func Get_PropertyId ¶
func Get_PropertyId(v *IUIAutomationPropertyCondition) *PropertyId
Get_PropertyId 获取属性条件的属性ID 参数: v - 属性条件接口 返回: 属性ID指针
type RowOrColumnMajor ¶
type RowOrColumnMajor int32
RowOrColumnMajor 行或列主导
const ( RowOrColumnMajor_RowMajor RowOrColumnMajor = iota // 行主导 RowOrColumnMajor_ColumnMajor // 列主导 RowOrColumnMajor_Indeterminate // 不确定 )
行或列主导常量 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/uiautomationcore/ne-uiautomationcore-roworcolumnmajor
type ScrollAmount ¶
type ScrollAmount int32
ScrollAmount 滚动量
const ( ScrollAmount_LargeDecrement ScrollAmount = iota // 大幅度后退 ScrollAmount_SmallDecrement // 小幅度后退 ScrollAmount_NoAmount // 无滚动 ScrollAmount_LargeIncrement // 大幅度前进 ScrollAmount_SmallIncrement // 小幅度前进 )
type SelFlag ¶
type SelFlag int32
SelFlag 选择标志
var ( SELFLAG_NONE SelFlag = 0 // 无标志 SELFLAG_TAKEFOCUS SelFlag = 0x1 // 获取焦点 SELFLAG_TAKESELECTION SelFlag = 0x2 // 获取选择 SELFLAG_EXTENDSELECTION SelFlag = 0x4 // 扩展选择 SELFLAG_ADDSELECTION SelFlag = 0x8 // 添加到选择 SELFLAG_REMOVESELECTION SelFlag = 0x10 // 从选择移除 )
选择标志常量 参考: https://learn.microsoft.com/zh-cn/windows/win32/winauto/selflag
type StructureChangeType ¶
type StructureChangeType int32
StructureChangeType 结构变更类型
const ( StructureChangeType_ChildAdded StructureChangeType = iota // 子元素已添加 StructureChangeType_ChildRemoved // 子元素已移除 StructureChangeType_ChildrenInvalidated // 子元素已失效 StructureChangeType_ChildrenBulkAdded // 批量添加子元素 StructureChangeType_ChildrenBulkRemoved // 批量移除子元素 StructureChangeType_ChildrenReordered // 子元素已重新排序 )
结构变更类型常量
type StructureChangedEventHandler ¶
type StructureChangedEventHandler struct {
Element *IUIAutomationElement // 目标元素
Scope TreeScope // 搜索范围
CacheRequest *IUIAutomationCacheRequest // 缓存请求
Handler *IUnKnown // 事件处理器(原为 IUIAutomationPropertyChangedEventHandler)
}
StructureChangedEventHandler 结构变更事件处理器配置 注意: IUIAutomationPropertyChangedEventHandler 类型未定义,暂时使用 IUnKnown
type SupportedTextSelection ¶
type SupportedTextSelection int32
SupportedTextSelection 支持的文本选择类型
const ( SupportedTextSelection_None SupportedTextSelection = iota // 不支持选择 SupportedTextSelection_Single // 单选 SupportedTextSelection_Multiple // 多选 )
支持的文本选择类型常量 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/uiautomationcore/ne-uiautomationcore-supportedtextselection
type SynchronizedInputType ¶
type SynchronizedInputType int32
SynchronizedInputType 同步输入类型
const ( SynchronizedInputType_KeyUp SynchronizedInputType = 0x1 // 键盘释放 SynchronizedInputType_KeyDown SynchronizedInputType = 0x2 // 键盘按下 SynchronizedInputType_LeftMouseUp SynchronizedInputType = 0x4 // 左键释放 SynchronizedInputType_LeftMouseDown SynchronizedInputType = 0x8 // 左键按下 SynchronizedInputType_RightMouseUp SynchronizedInputType = 0x10 // 右键释放 SynchronizedInputType_RightMouseDown SynchronizedInputType = 0x20 // 右键按下 )
同步输入类型常量 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/uiautomationcore/ne-uiautomationcore-synchronizedinputtype
type TagCallConv ¶
type TagCallConv int32
TagCallConv 调用约定
const ( CC_FASTCALL TagCallConv = iota // 快速调用 CC_CDECL // C 声明 CC_MSCPASCAL // MSC Pascal CC_PASCAL // Pascal CC_MACPASCAL // Mac Pascal CC_STDCALL // 标准调用 CC_FPFASTCALL // FP 快速调用 CC_SYSCALL // 系统调用 CC_MPWCDECL // MPW C 声明 CC_MPWPASCAL // MPW Pascal CC_MAX // 最大值 )
调用约定常量
type TagDispParams ¶
type TagDispParams struct {
Rgvarg uintptr // 指向 VARIANT 数组
RgdispidNamedArgs uintptr // 指向 DISPID 数组
Cargs uint32 // 参数数量
CNamedArgs uint32 // 命名参数数量
}
TagDispParams DISPPARAMS 结构 用于 IDispatch::Invoke 方法的参数传递
type TagDvAspect ¶
type TagDvAspect int32
TagDvAspect DVASPECT 枚举
const ( DVASPECT_CONTENT TagDvAspect = 1 // 内容视图 DVASPECT_THUMBNAIL TagDvAspect = 2 // 缩略图视图 DVASPECT_ICON TagDvAspect = 4 // 图标视图 DVASPECT_DOCPRINT TagDvAspect = 8 // 文档打印视图 )
DVASPECT 常量
type TagDvTargetDevice ¶
type TagDvTargetDevice struct {
TdSize uint32 // 结构大小
TdDriverNameOffset uint16 // 驱动名称偏移
TdDeviceNameOffset uint16 // 设备名称偏移
TdPortNameOffset uint16 // 端口名称偏移
TdExtDevmodeOffset uint16 // 扩展设备模式偏移
TdData [1]byte // 数据
}
TagDvTargetDevice 目标设备描述
type TagElemDesc ¶
type TagElemDesc struct {
Tdesc TagTypeDesc // 类型描述
Paramdesc TagParamDesc // 参数描述
}
TagElemDesc 元素描述
type TagExcepInfo ¶
type TagExcepInfo struct {
WCode uint16 // 错误代码
WReserved uint16 // 保留
BstrSource uintptr // 错误源
BstrDescription uintptr // 错误描述
BstrHelpFile uintptr // 帮助文件
DwHelpContext uint32 // 帮助上下文
PvReserved uintptr // 保留
PFnDeferredFillIn uintptr // 延迟填充函数
Scode int32 // SCODE
}
TagExcepInfo EXCEPINFO 结构 用于存储异常信息
type TagFuncDesc ¶
type TagFuncDesc struct {
Memid int32 // MEMBERID
LPrgsCode uintptr // SCODE*
LPrgelemdescParam uintptr // ELEMDESC*
Funckind int32 // FUNCKIND
Invkind int32 // INVOKEKIND
Callconv int32 // CALLCONV
CParams int16 // 参数数量
CParamsOpt int16 // 可选参数数量
OVft int16 // 偏移
CScodes int16 // SCODE 数量
ElemdescFunc TagElemDesc // 函数元素描述
WFuncFlags uint16 // 函数标志
}
TagFuncDesc 函数描述
type TagFuncKind ¶
type TagFuncKind int32
TagFuncKind 函数类型
const ( FUNC_VIRTUAL TagFuncKind = iota // 虚函数 FUNC_PUREVIRTUAL // 纯虚函数 FUNC_NONVIRTUAL // 非虚函数 FUNC_STATIC // 静态函数 FUNC_DISPATCH // 分发函数 )
函数类型常量
type TagIdlDesc ¶
TagIdlDesc IDL 描述
type TagInvokeKind ¶
type TagInvokeKind int32
TagInvokeKind 调用类型
const ( INVOKE_FUNC TagInvokeKind = 1 // 函数调用 INVOKE_PROPERTYGET TagInvokeKind = 2 // 属性获取 INVOKE_PROPERTYPUT TagInvokeKind = 4 // 属性设置 INVOKE_PROPERTYPUTREF TagInvokeKind = 8 // 属性引用设置 )
调用类型常量
type TagParamDesc ¶
TagParamDesc 参数描述
type TagSafeArray ¶
type TagSafeArray struct {
CDims uint16 // 维度数量
FFeatures uint16 // 特征标志
CbElement uint32 // 元素大小(字节)
CLocks uint32 // 锁定计数
PvData uintptr // 数据指针
Rgsabound [1]TagSafeArrayBound // 边界数组(COM 中通常是尾随数组)
}
TagSafeArray SAFEARRAY 结构 用于 COM 中的数组传递 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/oaidl/ns-oaidl-safearray
func GetChildren ¶
func GetChildren(v *IUIAutomationAndCondition) (*TagSafeArray, error)
GetChildren 获取 AND 条件中的子条件数组(SAFEARRAY 格式) 参数: v - AND 条件接口 返回: SAFEARRAY 指针和可能的错误
type TagSafeArrayBound ¶
TagSafeArrayBound SAFEARRAY 边界描述 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/oaidl/ns-oaidl-safearraybound
type TagVarenum ¶
type TagVarenum uint16
TagVarenum VARIANT 类型枚举 定义了 COM VARIANT 结构支持的数据类型
const ( VT_EMPTY TagVarenum = 0 // 空类型 VT_NULL TagVarenum = 1 // NULL 值 VT_I2 TagVarenum = 2 // 16位有符号整数 VT_I4 TagVarenum = 3 // 32位有符号整数 VT_R4 TagVarenum = 4 // 32位浮点数 VT_R8 TagVarenum = 5 // 64位浮点数 VT_CY TagVarenum = 6 // 货币类型 VT_DATE TagVarenum = 7 // 日期类型 VT_BSTR TagVarenum = 8 // BSTR 字符串 VT_DISPATCH TagVarenum = 9 // IDispatch 接口 VT_ERROR TagVarenum = 10 // SCODE 错误码 VT_BOOL TagVarenum = 11 // 布尔值 VT_VARIANT TagVarenum = 12 // VARIANT 类型 VT_UNKNOWN TagVarenum = 13 // IUnknown 接口 VT_DECIMAL TagVarenum = 14 // 十进制类型 VT_I1 TagVarenum = 16 // 8位有符号整数 VT_UI1 TagVarenum = 17 // 8位无符号整数 VT_UI2 TagVarenum = 18 // 16位无符号整数 VT_UI4 TagVarenum = 19 // 32位无符号整数 VT_I8 TagVarenum = 20 // 64位有符号整数 VT_UI8 TagVarenum = 21 // 64位无符号整数 VT_INT TagVarenum = 22 // 有符号整数(平台相关) VT_UINT TagVarenum = 23 // 无符号整数(平台相关) VT_VOID TagVarenum = 24 // void 类型 VT_HRESULT TagVarenum = 25 // HRESULT 类型 VT_PTR TagVarenum = 26 // 指针类型 VT_SAFEARRAY TagVarenum = 27 // SAFEARRAY 类型 VT_CARRAY TagVarenum = 28 // C 风格数组 VT_USERDEFINED TagVarenum = 29 // 用户定义类型 VT_LPSTR TagVarenum = 30 // 以 null 结尾的字符串 VT_LPWSTR TagVarenum = 31 // 以 null 结尾的宽字符串 VT_RECORD TagVarenum = 36 // 记录类型 VT_INT_PTR TagVarenum = 37 // 整数指针 VT_UINT_PTR TagVarenum = 38 // 无符号整数指针 VT_FILETIME TagVarenum = 64 // FILETIME 类型 VT_BLOB TagVarenum = 65 // BLOB 类型 VT_STREAM TagVarenum = 66 // IStream 接口 VT_STORAGE TagVarenum = 67 // IStorage 接口 VT_STREAMED_OBJECT TagVarenum = 68 // 流式对象 VT_STORED_OBJECT TagVarenum = 69 // 存储对象 VT_BLOB_OBJECT TagVarenum = 70 // BLOB 对象 VT_CF TagVarenum = 71 // 剪贴板格式 VT_CLSID TagVarenum = 72 // CLSID 类型 VT_VERSIONED_STREAM TagVarenum = 73 // 版本化流 VT_BSTR_BLOB TagVarenum = 0xfff // BSTR BLOB 类型 VT_VECTOR TagVarenum = 0x1000 // 向量标志 VT_ARRAY TagVarenum = 0x2000 // 数组标志 VT_BYREF TagVarenum = 0x4000 // 引用标志 VT_RESERVED TagVarenum = 0x8000 // 保留标志 VT_ILLEGAL TagVarenum = 0xffff // 非法类型 VT_ILLEGALMASKED TagVarenum = 0xfff // 非法类型掩码 VT_TYPEMASK TagVarenum = 0xfff // 类型掩码 )
VARIANT 类型常量定义 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/wtypes/ne-wtypes-varenum
type TextPatternRangeEndpoint ¶
type TextPatternRangeEndpoint int32
TextPatternRangeEndpoint 文本范围端点
const ( TextPatternRangeEndpoint_Start TextPatternRangeEndpoint = iota // 起点 TextPatternRangeEndpoint_End // 终点 )
文本范围端点常量 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/uiautomationcore/ne-uiautomationcore-textpatternrangeendpoint
type TextUnit ¶
type TextUnit int32
TextUnit 文本单位
const ( TextUnit_Character TextUnit = iota // 字符 TextUnit_Format // 格式 TextUnit_Word // 单词 TextUnit_Line // 行 TextUnit_Paragraph // 段落 TextUnit_Page // 页 TextUnit_Document // 文档 )
文本单位常量 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/uiautomationcore/ne-uiautomationcore-textunit
type ToggleState ¶
type ToggleState int32
ToggleState 切换状态
const ( ToggleState_Off ToggleState = iota // 关闭 ToggleState_On // 打开 ToggleState_Indeterminate // 不确定(三态复选框) )
切换状态常量 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/uiautomationcore/ne-uiautomationcore-togglestate
type TreeScope ¶
type TreeScope int32
TreeScope 树搜索范围类型
var ( TreeScope_None TreeScope = 0x0 // 无范围 TreeScope_Element TreeScope = 0x1 // 元素本身 TreeScope_Children TreeScope = 0x2 // 直接子元素 TreeScope_Descendants TreeScope = 0x4 // 所有后代元素 TreeScope_Parent TreeScope = 0x8 // 父元素 TreeScope_Ancestors TreeScope = 0x10 // 所有祖先元素 TreeScope_Subtree TreeScope = TreeScope_Element | TreeScope_Children | TreeScope_Descendants // 元素及其所有后代 )
树搜索范围常量 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/uiautomationclient/ne-uiautomationclient-treescope
type TxtHitResult ¶
type TxtHitResult int32
TxtHitResult 文本命中测试结果
const ( TXTHITRESULT_NOHIT TxtHitResult = iota // 未命中 TXTHITRESULT_TRANSPARENT // 透明区域 TXTHITRESULT_CLOSE // 接近 TXTHITRESULT_HIT // 命中 )
文本命中测试结果常量
type UIA_EventId ¶
type UIA_EventId int32
UIA_EventId UI Automation 事件标识符类型 用于标识 UI 自动化事件,如焦点变化、属性变化、结构变化等
const ( UIA_ActiveTextPositionChangedEventId UIA_EventId = 20036 // 活动文本位置变化事件 UIA_AsyncContentLoadedEventId UIA_EventId = 20006 // 异步内容加载事件 UIA_AutomationFocusChangedEventId UIA_EventId = 20005 // 自动化焦点变化事件 UIA_AutomationPropertyChangedEventId UIA_EventId = 20004 // 自动化属性变化事件 UIA_ChangesEventId UIA_EventId = 20034 // 变化事件 UIA_Drag_DragCancelEventId UIA_EventId = 20027 // 拖拽取消事件 UIA_Drag_DragCompleteEventId UIA_EventId = 20028 // 拖拽完成事件 UIA_Drag_DragStartEventId UIA_EventId = 20026 // 拖拽开始事件 UIA_DropTarget_DragEnterEventId UIA_EventId = 20029 // 拖拽进入目标事件 UIA_DropTarget_DragLeaveEventId UIA_EventId = 20030 // 拖拽离开目标事件 UIA_DropTarget_DroppedEventId UIA_EventId = 20031 // 拖拽放置事件 UIA_HostedFragmentRootsInvalidatedEventId UIA_EventId = 20025 // 托管片段根失效事件 UIA_InputDiscardedEventId UIA_EventId = 20022 // 输入被丢弃事件 UIA_InputReachedOtherElementEventId UIA_EventId = 20021 // 输入到达其他元素事件 UIA_InputReachedTargetEventId UIA_EventId = 20020 // 输入到达目标事件 UIA_Invoke_InvokedEventId UIA_EventId = 20009 // 调用事件(按钮点击) UIA_LayoutInvalidatedEventId UIA_EventId = 20008 // 布局失效事件 UIA_LiveRegionChangedEventId UIA_EventId = 20024 // 实时区域变化事件 UIA_MenuClosedEventId UIA_EventId = 20007 // 菜单关闭事件 UIA_MenuModeEndEventId UIA_EventId = 20019 // 菜单模式结束事件 UIA_MenuModeStartEventId UIA_EventId = 20018 // 菜单模式开始事件 UIA_MenuOpenedEventId UIA_EventId = 20003 // 菜单打开事件 UIA_NotificationEventId UIA_EventId = 20035 // 通知事件 UIA_Selection_InvalidatedEventId UIA_EventId = 20013 // 选择失效事件 UIA_SelectionItem_ElementAddedToSelectionEventId UIA_EventId = 20010 // 元素添加到选择事件 UIA_SelectionItem_ElementRemovedFromSelectionEventId UIA_EventId = 20011 // 元素从选择移除事件 UIA_SelectionItem_ElementSelectedEventId UIA_EventId = 20012 // 元素被选择事件 UIA_StructureChangedEventId UIA_EventId = 20002 // 结构变化事件 UIA_SystemAlertEventId UIA_EventId = 20023 // 系统警报事件 UIA_Text_TextChangedEventId UIA_EventId = 20015 // 文本变化事件 UIA_Text_TextSelectionChangedEventId UIA_EventId = 20014 // 文本选择变化事件 UIA_TextEdit_ConversionTargetChangedEventId UIA_EventId = 20033 // 文本编辑转换目标变化事件 UIA_TextEdit_TextChangedEventId UIA_EventId = 20032 // 文本编辑变化事件 UIA_ToolTipClosedEventId UIA_EventId = 20001 // 工具提示关闭事件 UIA_ToolTipOpenedEventId UIA_EventId = 20000 // 工具提示打开事件 UIA_Window_WindowClosedEventId UIA_EventId = 20017 // 窗口关闭事件 UIA_Window_WindowOpenedEventId UIA_EventId = 20016 // 窗口打开事件 )
UI Automation 事件常量定义
type UiaPoint ¶
UiaPoint UI Automation 点结构(浮点数) 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/uiautomationcore/ns-uiautomationcore-uiapoint
type UiaRect ¶
type UiaRect struct {
Left float64 // 左边界
Top float64 // 上边界
Width float64 // 宽度
Height float64 // 高度
}
UiaRect UI Automation 矩形结构(浮点数)
type VARIANT ¶
type VARIANT struct {
VT TagVarenum // 变体类型
Val int64 // 值(根据 VT 类型解释)
// contains filtered or unexported fields
}
VARIANT COM VARIANT 结构(64位版本) 用于存储各种类型的值,是 COM 中的通用数据类型
func Get_PropertyValue ¶
func Get_PropertyValue(v *IUIAutomationPropertyCondition) *VARIANT
Get_PropertyValue 获取属性条件的属性值 参数: v - 属性条件接口 返回: VARIANT 值指针
func NewVariant ¶
func NewVariant(vt TagVarenum, val int64) VARIANT
NewVariant 创建新的 VARIANT 结构 参数:
- vt: 变体类型
- val: 变体值
返回: 初始化的 VARIANT 结构
func VariantFromString ¶
VariantFromString 从字符串创建 BSTR 类型的 VARIANT 参数: s - 字符串值 返回: VARIANT 结构和可能的错误
type WindowInteractionState ¶
type WindowInteractionState int32
WindowInteractionState 窗口交互状态
const ( WindowInteractionState_Running WindowInteractionState = iota // 正在运行 WindowInteractionState_Closing // 正在关闭 WindowInteractionState_ReadyForUserInteraction // 准备好用户交互 WindowInteractionState_BlockedByModalWindow // 被模态窗口阻塞 WindowInteractionState_NotResponding // 无响应 )
窗口交互状态常量 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/uiautomationcore/ne-uiautomationcore-windowinteractionstate
type WindowVisualState ¶
type WindowVisualState int32
WindowVisualState 窗口可视状态
const ( WindowVisualState_Normal WindowVisualState = iota // 正常状态 WindowVisualState_Maximized // 最大化 WindowVisualState_Minimized // 最小化 )
窗口可视状态常量 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/uiautomationcore/ne-uiautomationcore-windowvisualstate
type ZoomUnit ¶
type ZoomUnit int32
ZoomUnit 缩放单位
const ( ZoomUnit_NoAmount ZoomUnit = iota // 无缩放 ZoomUnit_LargeDecrement // 大幅度缩小 ZoomUnit_SmallDecrement // 小幅度缩小 ZoomUnit_LargeIncrement // 大幅度放大 ZoomUnit_SmallIncrement // 小幅度放大 )
缩放单位常量 参考: https://learn.microsoft.com/zh-cn/windows/win32/api/uiautomationcore/ne-uiautomationcore-zoomunit
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
example
|
|
|
calc_demo
command
|
|
|
find_demo
command
|
|
|
json_demo
command
|
|
|
notepad_demo
command
|
|
|
software
command
|
|
|
tree_demo
command
|
|
|
wechat_demo
command
微信自动化机器人示例程序 演示如何使用 wechat 包进行微信自动化操作
|
微信自动化机器人示例程序 演示如何使用 wechat 包进行微信自动化操作 |
|
Package wechat 提供微信自动化操作功能 基于 Windows UI Automation 实现微信客户端的自动化控制 支持功能:搜索联系人、发送消息、读取会话列表、新消息监控等
|
Package wechat 提供微信自动化操作功能 基于 Windows UI Automation 实现微信客户端的自动化控制 支持功能:搜索联系人、发送消息、读取会话列表、新消息监控等 |