Что нового

Вывод названий вкладок Chrome - для двух окон

perven1

Новичок
Сообщения
57
Репутация
0
Добрый день.

Пытаюсь заставить скрипт выводить названия вкладок браузера Chrome - для двух окон.
В одном окне 50 вкладок, в другом 30 вкладок.
Скрипт - определяет общее число вкладок = 80 (то есть определяет правильно).
Но вот названия - выводит только для одного из окон.
(Или может бы они просто на окне не умещаются, уходят куда-то вниз "за кадр").

Подскажите - как заставить скрипт отображать все названия вкладок браузера Chrome ?
(То есть не только для одного окна Chrome, а для всех)
Код:
#Include <Array.au3>
#Include <WinAPIEx.au3>
#include "UIAutomate.au3"

Global $Data = _WinAPI_EnumProcessWindows(ProcessExists('chrome.exe'))

if Not IsArray($Data) Then
   Exit MsgBox(4096, "", "Процесс не найден")
EndIf

$count = 0

For $i = 1 To UBound($Data)-1

   $hWnd = $Data[$i][0]
   $oParent = _UIA_GetElementFromHandle($hWnd)
   $aTabs = _UIA_FindAllElements($oParent, "ControlType", $UIA_TabItemControlTypeId)
   If @error Then Exit MsgBox(0x40000, "Ошибка", "Вкладки не найдены")
   $count += $aTabs[0]

Next

MsgBox(4096, "", "Количество вкладок: " & $count)

Local $sTabs
For $i = 1 To $aTabs[0]
    $sTabs &= _UIA_ElementGetPropertyValue($aTabs[$i], $UIA_NamePropertyId) & @CRLF & @CRLF
Next
MsgBox(0x40000, "", "Названия вкладок: " & @CRLF & @CRLF & $sTabs)
 

Вложения

  • 1.rar
    19 КБ · Просмотры: 1

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
perven1 сказал(а):
заставить скрипт выводить названия вкладок браузера Chrome - для двух окон.

Код:
#include "UIAutomate.au3" ; http://autoit-script.ru/index.php?topic=16780.0
Opt("WinTitleMatchMode", -2)

Global $aWnds = WinList(" - Google Chrome"), $iCount, $oParent, $aTabs, $sTabs
If Not IsArray($aWnds) Then Exit MsgBox(262144, "Ошибка", "Не найдено окно Google Chrome")

For $i = 1 To $aWnds[0][0]
    $oParent = _UIA_GetElementFromHandle($aWnds[$i][1])
    $aTabs = _UIA_FindAllElements($oParent, "ControlType", $UIA_TabItemControlTypeId)
	If @error Then Exit MsgBox(262144, "Ошибка", "Вкладки не найдены")
	For $j = 1 To $aTabs[0]
		$sTabs &= _UIA_ElementGetPropertyValue($aTabs[$j], $UIA_NamePropertyId) & @CRLF & @CRLF
	Next
	$iCount += $aTabs[0]
Next

MsgBox(262144, "", "Количество вкладок: " & $iCount & @CRLF & @CRLF & "Названия вкладок: " & @CRLF & @CRLF & $sTabs)
 
Автор
P

perven1

Новичок
Сообщения
57
Репутация
0
Подскажите, как сделать это окно со вкладками сделать вмещающимся в экран (с прокруткой).
Потому что его - просмотреть невозможно - окно уходит куда-то за горизонт.
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
perven1 сказал(а):
окно уходит куда-то за горизонт.

Код:
#include <GuiConstants.au3>
#include <EditConstants.au3>
#include "UIAutomate.au3" ; http://autoit-script.ru/index.php?topic=16780.0
Opt("WinTitleMatchMode", -2)

Global $aWnds = WinList(" - Google Chrome"), $iCount, $oParent, $aTabs, $sTabs
If Not IsArray($aWnds) Then Exit MsgBox(262144, "Ошибка", "Не найдено окно Google Chrome")

For $i = 1 To $aWnds[0][0]
    $oParent = _UIA_GetElementFromHandle($aWnds[$i][1])
    $aTabs = _UIA_FindAllElements($oParent, "ControlType", $UIA_TabItemControlTypeId)
	If @error Then Exit MsgBox(262144, "Ошибка", "Вкладки не найдены")
	For $j = 1 To $aTabs[0]
		$sTabs &= _UIA_ElementGetPropertyValue($aTabs[$j], $UIA_NamePropertyId) & @CRLF & @CRLF
	Next
	$iCount += $aTabs[0]
Next

GUICreate("", 400, 600)
GUICtrlCreateEdit("Количество вкладок: " & $iCount & @CRLF & @CRLF & @CRLF & "Названия вкладок: " & @CRLF & @CRLF & $sTabs, 5, 5, 390, 590, BitOR($WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY))
GUICtrlSendMsg(-1, $EM_LIMITTEXT, -1, 0)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetState(-1, $GUI_FOCUS)
GUISetState()

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
 
Автор
P

perven1

Новичок
Сообщения
57
Репутация
0
Теперь все работает. Спасибо вам большое.
 
Верх