Что нового

[Сеть, интернет] Как активировать неактивную вкладку Google Chrome?

Leanna

Новичок
Сообщения
25
Репутация
3
Подскажите пожалуйста, как активировать вкладку Google Chrome?

Следующий код не работает если окно Chrome имеет много вкладок причем вкладка "Яндекс" не активна
Отрабатывает нормально, если главная вкладка Яндекс открыта, даже если сам хром был на background, т.е. было активно другое приложение.
Код:
WinActivate("[TITLE:Яндекс - Google Chrome]")

Можно ли активировать нужную вкладку если она в хроме неактивна?

Может это нужно для информаци.
>>>> Window <<<<
Title: Яндекс - Google Chrome
Class: Chrome_WidgetWin_0
Position: -4, -4
Size: 1688, 1030
Style: 0x17CF0000
ExStyle: 0x00000100
Handle: 0x00030092

>>>> Control <<<<
Class: Chrome_RenderWidgetHostHWND
Instance: 1
ClassnameNN: Chrome_RenderWidgetHostHWND1
Name:
Advanced (Class): [CLASS:Chrome_RenderWidgetHostHWND; INSTANCE:1]
ID: 199670784
Text:
Position: 0, 85
Size: 1680, 937
ControlClick Coords: 228, 223
Style: 0x56000000
ExStyle: 0x00000000
Handle: 0x00A3009C
 

Arei

Скриптер
Сообщения
938
Репутация
115
http://autoit-script.ru/index.php/topic,4476.0.html

вот интересная для вас тема.
 
Автор
Leanna

Leanna

Новичок
Сообщения
25
Репутация
3
Спасибо. Я читала эту тему и попробовала. У меня не получилось, может я где-то не так делаю?

не работают следующие команды
Код:
WinActivate(["CLASS:Chrome_RenderWidgetHostHWND; ID:167554048"])


Код:
WinActivate("[REGEXPCLASS:Chrome_WidgetWin_0]")


и на это тоже ничего не происходит
Код:
$List = WinList('[CLASS:Chrome_WidgetWin_0]')
For $i = 1 To UBound($List) - 1
    If BitAND(WinGetState($List[$i][1]), 2) Then
        WinActivate($List[$i][1])
        ExitLoop
    EndIf
Next


Помогите пожалуйста, составить пазл правильно.
 

rollin

Новичок
Сообщения
15
Репутация
1
Столкнулся с похожей задачей.
Проблему активации вкладки решал перебором всех.
Код:
$hChromeWin=""
$int=True
$List = WinList('[REGEXPCLASS:Chrome_WidgetWin_]')
If $List[0][0]=0 Then
	MsgBox(64,Default,"No Chrome windows found!!")
	Exit
EndIf
For $i = 1 To $List[0][0]
    If BitAND(WinGetState($List[$i][1]), 2) Then
        $hChromeWin=$List[$i][1];получаем хендл первого найденого видимого окна	
        ExitLoop
    EndIf
    If $i=$List[0][0] Then;перебрали все окна
        MsgBox(64,Default,"No visible Chrome windows found!!!")
	Exit
    EndIf
Next
$SearchTitle="Яндекс - Google Chrome";название искомой вкладки
WinActivate($hChromeWin)

$firstTabTitle=WinGetTitle($hChromeWin);запоминаем название первой вкладки
If $firstTabTitle=$SearchTitle Then $int=False;если нужная вкладка уже открыта - перебор не выпоняется
While $int
	Send("^{PgUp}")
	$curTitle=WinGetTitle($hChromeWin);заголовок окна хрома соответствует названию активной вкладки
	If $curTitle=$SearchTitle Then;открыта нужная вкладка
		;проверка на полное совпадение - наверное лучше StringInStr т.к. может быть указано неполное название искомой вкладки
		ExitLoop
	ElseIf $curTitle=$firstTabTitle Then;дошли до начальной вкладки
		MsgBox(64,Default,'Tab "'&$SearchTitle&'" - not found',3)
		ExitLoop
	EndIf
WEnd
 

IgorFIN

Новичок
Сообщения
6
Репутация
1
Используя UIAutomate.au3 можно примерно так

Код:
#include <UIAutomate.au3>
Opt("WinTitleMatchMode", 2)

$hWnd = WinWait("Google Chrome", "", 3)
$oParent = _UIA_GetElementFromHandle($hWnd)
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_TabItemControlTypeId", "Яндекс")
If IsObj($oElement) Then _UIA_ElementMouseClick($oElement)


UIAutomate.au3
http://autoit-script.ru/index.php?topic=16780
 
Верх