#include <IE.au3>
#include <Array.au3>
Global $Title='DISAddon'
$IE=IEAttach('DIS - Key List')
If Not IsObj($IE) Then Exit
$HWin=_IEPropertyGet($IE, 'hwnd')
WinActivate($HWin)
WinSetState($HWin, '', @SW_MAXIMIZE)
$KeysInfoArr=GetKeysInfo($IE)
If Not IsArray($KeysInfoArr) Then Exit
OHRInfoChange($IE, $KeysInfoArr)
;~ --------------------------------------------------------------------------------------OHRInfoChange-------------------------------------------------------------------------------------------------------------------------
Func OHRInfoChange($IEObj, $KeysInfoArr)
For $KeyNum=1 To 1 ;UBound($KeysInfoArr, 2)-1
$KeyObj=_IEGetObjById($IE, $KeysInfoArr[1][$KeyNum])
TT('жмем')
_IELinkClickByText($KeyObj, 'View/Edit') ; Вот здесь оно и виснет
TT('ждем окно')
WinWait('DIS - Add')
TT('аттач')
$TMPKeyWin=IEAttach('DIS - Add')
TT('')
$oElements = _IETagNameAllGetCollection($TMPKeyWin)
For $oElement In $oElements
If $oElement.id Then MsgBox($MB_SYSTEMMODAL, "Element Info", "Tagname: " & $oElement.tagname & @CRLF & "id: " & $oElement.id & @CRLF & "innerText: " & $oElement.innerText)
Next
Next
EndFunc
;~ ------------------------------------------------------------------------------------Msg------------------------------------------------------------------
Func TT($ToolTipText, $Icon=1)
ToolTip($ToolTipText, @DesktopWidth/2, 20, $Title, $Icon, 6)
EndFunc
;~ --------------------------------------------------------------------------------------IEAttach-------------------------------------------------------------------------------------------------------------------------
Func IEAttach($String, $Mode='title')
TT('Получение объекта IE')
$IEObj=_IEAttach($String, $Mode)
If @error Then
TT('')
Msg(16, 'Не найдено окно "'&$String&'"')
Return False
EndIf
If Not IsObj($IEObj) Then
TT('')
Msg(16, 'Ошибка получения объекта страницы IE')
Return False
EndIf
TT('')
Return $IEObj
EndFunc
;~ --------------------------------------------------------------------------------------GetKeysInfo-------------------------------------------------------------------------------------------------------------------------
Func GetKeysInfo($IEObj)
TT('Получение таблицы ключей')
$oTable = _IETableGetCollection($IEObj, 7)
If @error Then
TT('')
Msg(16, 'Ошибка получения таблицы ключей')
Return False
EndIf
$aTableData = _IETableWriteToArray($oTable)
If @error Then
TT('')
Msg(16, 'Ошибка составления таблицы ключей')
Return False
EndIf
If Not IsArray($aTableData) Then
TT('')
Msg(16, 'Ошибка получения массива информации по ключам')
Return False
EndIf
TT('')
Return $aTableData
EndFunc
;~ --------------------------------------------------------------------------------------Msg-------------------------------------------------------------------------------------------------------------------------
Func Msg($Flag, $Text)
$Result=MsgBox(262144+$Flag, $Title, $Text)
Return $Result
EndFunc
;~ --------------------------------------------------------------------------------------ShowAllTables-------------------------------------------------------------------------------------------------------------------------
Func ShowAllTables($IEObj)
$oTable = _IETableGetCollection($IEObj)
$iNumTables = @extended
For $Num=0 To $iNumTables
$oTable = _IETableGetCollection($IEObj, $Num)
$aTableData = _IETableWriteToArray($oTable)
_ArrayDisplay($aTableData, $Num)
Next
;~ 7 - таблица ключей
EndFunc