• autoit UIA获取Listview的信息


    #include "CUIAutomation2.au3"
    
    Opt( "MustDeclareVars", 1 )
    
    Global $oUIAutomation
    
    MainFunc()
    
    
    Func MainFunc()
    
      ; Be sure to use the right class if you are on Vista or Windows 8
      Local $hWindow = WinGetHandle( "[CLASS:CabinetWClass]", "" )  ; Windows Explorer, Windows 7
      ;Local $hWindow = WinGetHandle( "[CLASS:ExploreWClass]", "" ) ; Windows Explorer, Windows XP
      If Not $hWindow Then Return
    
      $oUIAutomation = ObjCreateInterface( $sCLSID_CUIAutomation, $sIID_IUIAutomation, $dtagIUIAutomation )
      If Not IsObj( $oUIAutomation ) Then Return
    
      Local $pWindow
      $oUIAutomation.ElementFromHandle( $hWindow, $pWindow )
      If Not $pWindow Then Return
    
      Local $oWindow = ObjCreateInterface( $pWindow, $sIID_IUIAutomationElement, $dtagIUIAutomationElement )
      If Not IsObj( $oWindow ) Then Return
    
      ListAllItems( $oWindow, 50007 ) ; 50007 = List view element
      ; Run the code in post #71 to get this value
    
    EndFunc
    
    
    Func ListAllItems( $oWindow, $iCtrlType )
    
      Local $pCondition
      $oUIAutomation.CreatePropertyCondition( $UIA_ControlTypePropertyId, $iCtrlType, $pCondition )
      If Not $pCondition Then Return
    
      Local $pUIElementArray, $oUIElementArray, $iElements
      $oWindow.FindAll( $TreeScope_Descendants, $pCondition, $pUIElementArray )
      $oUIElementArray = ObjCreateInterface( $pUIElementArray, $sIID_IUIAutomationElementArray, $dtagIUIAutomationElementArray )
      $oUIElementArray.Length( $iElements )
      If Not $iElements Then Return
    
      Local $pUIElement, $oUIElement, $name, $sel
      For $i = 0 To $iElements - 1
        $oUIElementArray.GetElement( $i, $pUIElement )
        $oUIElement = ObjCreateInterface( $pUIElement, $sIID_IUIAutomationElement, $dtagIUIAutomationElement )
    
        $oUIElement.GetCurrentPropertyValue( $UIA_NamePropertyId, $name )
        $oUIElement.GetCurrentPropertyValue( $UIA_SelectionItemIsSelectedPropertyId, $sel )
        ConsoleWrite( $name & "  " & $sel & @CRLF )
      Next
    
    EndFunc
  • 相关阅读:
    洛谷 P1604 B进制星球
    629D
    。。。。。
    新安排
    计算几何的两道题
    cf C题
    昨天
    最近几天的安排
    最近几天
    杂论——持续更新。
  • 原文地址:https://www.cnblogs.com/jenney-qiu/p/3865243.html
Copyright © 2020-2023  润新知