Что нового

Определение суммарного числа открытых вкладок для всех окон GoogleChrome

perven1

Новичок
Сообщения
57
Репутация
0
Здравствуйте, форумчане.
Помогите советом.

У меня есть скрипт подсчета количества открытых вкладок браузера GoogleChrome.
Работает он исправно.

Однако браузер GoogleChrome - имеет способность разделять свое окно.
Например можно взять одну вкладку и вытянуть за пределы основного окна GoogleChrome - в этом случае создастся новое окно GoogleChrome с одной вкладкой.

А скрипт умеет распознавать только один экземпляр окна GoogleChrome.
То есть если есть два окна браузера - в одном окне открыто 5 вкладок, а во втором окне - открыто 8 вкладок. И скрипт в этом случае - выдаст значение 8 (поскольку второе окно ГуглХрома - он "не видит")ю

Подскажите - как изменить скрипт, чтобы он подсчитывал общее количество вкладок для всех окон GoogleChrome, которые открыты на компьютере ?
 

Вложения

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

gunter123

Продвинутый
Сообщения
159
Репутация
69
Привет. Попробуйте вот так:
Код:
#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)
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Код:
#include "UIAutomate.au3" ; http://autoit-script.ru/index.php?topic=16780.0
Opt("WinTitleMatchMode", 2)

Global $aWnds = WinList(" - Google Chrome"), $iCount, $oParent, $aTabs
If Not IsArray($aWnds) Then Exit MsgBox(0x40000, "Ошибка", "Не найдено окно 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(0x40000, "Ошибка", "Вкладки не найдены")
	$iCount += $aTabs[0]
Next

MsgBox(0x40000, "", "Количество вкладок: " & $iCount)
 
Автор
P

perven1

Новичок
Сообщения
57
Репутация
0
Спасибо за ответы.
Все работает.
 
Верх