Автор Тема: Определение суммарного числа открытых вкладок для всех окон GoogleChrome  (Прочитано 472 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн perven1 [?]

  • Новичок
  • *
  • Сообщений: 48
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Здравствуйте, форумчане.
Помогите советом.

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

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

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

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


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Русское сообщество AutoIt


Помечен как лучший ответ пользователем perven1 Отправлен Октябрь 09, 2017, 19:42:53

Оффлайн gunter123 [?]

  • Новичок
  • *
  • Сообщений: 36
  • Репутация: 15
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Привет. Попробуйте вот так:
Код: AutoIt [Выделить]
#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)

 

Is it future or is it past?

Оффлайн Tempo [?]

  • Осваивающий
  • **
  • Сообщений: 106
  • Репутация: 25
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Код: AutoIt [Выделить]
#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)
 


Оффлайн perven1 [?]

  • Новичок
  • *
  • Сообщений: 48

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Спасибо за ответы.
Все работает.

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
3348 Просмотров
Последний ответ Июль 27, 2011, 22:22:05
от sayman
5 Ответов
2416 Просмотров
Последний ответ Январь 18, 2012, 18:59:00
от WSWR
1 Ответов
3300 Просмотров
Последний ответ Октябрь 26, 2012, 09:21:24
от madmasles
1 Ответов
2251 Просмотров
Последний ответ Февраль 17, 2014, 17:45:15
от inververs
1 Ответов
2008 Просмотров
Последний ответ Апрель 11, 2016, 09:49:37
от Alofa
0 Ответов
1977 Просмотров
Последний ответ Апрель 12, 2016, 01:44:39
от CreatoR
1 Ответов
490 Просмотров
Последний ответ Апрель 14, 2016, 11:00:35
от Alofa
0 Ответов
194 Просмотров
Последний ответ Август 15, 2017, 15:54:08
от OlegSmirnov
4 Ответов
699 Просмотров
Последний ответ Сентябрь 18, 2017, 01:37:13
от perven1
4 Ответов
381 Просмотров
Последний ответ Октябрь 16, 2017, 14:52:14
от perven1