Что нового

Работа с Slider20WndClass.

soulmonger

Новичок
Сообщения
11
Репутация
0
Привет! Помогите, пожалуйста, решить задачку:
Дано:
следующий контрол:


Window Info:
>>>> Window <<<<
Title: Farm Connections
Class: ThunderRT6FormDC
Position: 79, 238
Size: 708, 539
Style: 0x16C80000
ExStyle: 0x00040100
Handle: 0x00020658

>>>> Control <<<<
Class: Slider20WndClass
Instance: 1
ClassnameNN: Slider20WndClass1
Name:
Advanced (Class): [CLASS:Slider20WndClass; INSTANCE:1]
ID:
Text:
Position: 297, 184
Size: 143, 33
ControlClick Coords: 55, 11
Style: 0x54000101
ExStyle: 0x00000000
Handle: 0x0001076E

>>>> Mouse <<<<
Position: 352, 195
Cursor ID: 0
Color: 0:rofl:4D0C8

>>>> StatusBar <<<<

>>>> ToolsBar <<<<

>>>> Visible Text <<<<
Frame2
Span &multiple monitors when in full screen mode
Display &remote applications seamlessly on local desktop
Display Configuration
Colors
High Color (15 bit) ;15
Enable &Smart Sizing
&Display the connection bar when in full screen mode
&Pin connection bar
&Cancel
&OK

Это ползунок меняющий параметры разрешения окна.

Необходимо установить его значение в минимальное, затем двигать этот ползунок вправо до упора. В этом положении текст под ним будет "Full Screen", но как доступиться до этого текста, ума не приложу. Window Info не видит его.
Выкрутиться с помощью посыла клавиатурных нажатий в принципе можно, но на разных параметрах дисплея этот ползунок имеет разное количество положений. Например, если экран выставлен в разрешение 640х480, то у этого ползунка будет два значения: 640х480 и FullScreen.
Вобщем задача сводится к тому, чтобы запустить программу несколько раз, перебрав при этом все значения разрешения, которые устанавливаются этим слайдером.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
soulmonger
Текст получить можно так:
Код:
$sTitle = "Свойства: Экран"
Run("control desk.cpl,,3")
If Not WinActive($sTitle) Then WinActivate($sTitle)
WinWaitActive($sTitle)
$sText = WinGetText($sTitle, "")
MsgBox(0, "", $sText)

Только поменяйте $sTitle на свой, судя по скрину, у Вас англ. язык.
Передвинуть слайдер можно с помощью функций GuiSlider.au3, НО, у меня система (Win XP SP3) не реагирует на такое передвижение слайдера, реагирует только если его мышкой передвигать.
 
Автор
S

soulmonger

Новичок
Сообщения
11
Репутация
0
madmasles сказал(а):
soulmonger
Текст получить можно так:
Код:
$sTitle = "Свойства: Экран"
Run("control desk.cpl,,3")
If Not WinActive($sTitle) Then WinActivate($sTitle)
WinWaitActive($sTitle)
$sText = WinGetText($sTitle, "")
MsgBox(0, "", $sText)

Только поменяйте $sTitle на свой, судя по скрину, у Вас англ. язык.
Передвинуть слайдер можно с помощью функций GuiSlider.au3, НО, у меня система (Win XP SP3) не реагирует на такое передвижение слайдера, реагирует только если его мышкой передвигать.
К сожалению этот скрипт вынимает из окна тот же текст, что и Window Info. То бишь бесполезен для меня :(

К слову, этот слайдер - это не тот о котором вы подумали. Он является частью приложения сторонних разработчиков и служит для установки разрешения терминальной сессии. То бишь, это не виндовый слайдер в настройках дисплея.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
На XP, AutoIt Window Info прекрасно види контрол с этой надписью. Проверь еще раз. Если не получится, то попробуй вывести список всех контролов для этого окна с помощью _WinAPI_EnumChildWindows() из WinAPIEx.au3.
 
Автор
S

soulmonger

Новичок
Сообщения
11
Репутация
0
Я повторюсь. Этот слайдер не имеет отношения к свойствам дисплея в винде. Он находится в другой программе, и все, что удается добыть из Windows Info, я скопипастил(см.спойлер).

Yashied, спасибо, щас посмотрю, что можно сделать.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Автор
S

soulmonger

Новичок
Сообщения
11
Репутация
0
Yashied сказал(а):
Я признателен Вам за стремление помочь, однако, снова мимо. :laugh:
Я не могу сказать название программы, это коммерческая тайна. В майкрософтовском РДП клиенте все проще, я смотрел. Однако меня интересует не он.
Все, что удается добыть при помощи window info из - в спойлере. Чувствую, мне прийдется искать другие пути решения этой проблемы.
 
Верх