Что нового

Побороть интерфейс "SAS.Planet" / "SAS.Планета"

Vo-ffka

Новичок
Сообщения
2
Репутация
0
Всем доброго дня!

Прошу помощи с интерфейсом программы SAS.Planet / SAS.Планета.
Как то всё там так хитро сделано, что прям грустно.
Опуская разные подробности, не могу получить доступ к элементам диалогового окна (пока одного, но что-то мне подсказывает, что они все там такие непростые).
Программа "AutoIt Window Info" элемент управления видит, а скрипт - нет.

Конкретно пытаюсь проверить состояние CheckBox'а, обнаруживаемого как "TCheckBox11" / "[CLASS:TCheckBox; INSTANCE:11]":

Код:
GUICtrlRead("TCheckBox11")
GUICtrlRead("[CLASS:TCheckBox; INSTANCE:11]")

В обоих случаях функция возвращает "0" (ошибка).

Окно диалога не модальное, но указать функции GUICtrlRead дескриптор (handle) конкретного окна нет возможности (нет такого параметра у функции).

SAS.Planet-Операции с выделенной областью.jpg
>>>> Window <<<<
Title: Операции с выделенной областью
Class: TfrmRegionProcess
Position: 584, 260
Size: 588, 471
Style: 0x16CF0000
ExStyle: 0x00010100
Handle: 0x0000000002701ADA

>>>> Control <<<<
Class: TCheckBox
Instance: 11
ClassnameNN: TCheckBox11
Name:
Advanced (Class): [CLASS:TCheckBox; INSTANCE:11]
ID: 471080
Text: Все
Position: 466, 370
Size: 98, 17
ControlClick Coords: 38, 11
Style: 0x54010005
ExStyle: 0x00000000
Handle: 0x0000000000073028

>>>> Mouse <<<<
Position: 512, 412
Cursor ID: 0
Color: 0xFFFFFF

>>>> StatusBar <<<<

>>>> ToolsBar <<<<

>>>> Visible Text <<<<
Загрузить
15
Закрыть окно загрузки после завершения
2
25.01.2022
Запускать в паузе
25.01.2022
только при их различии
Пытаться загружать тайлы, для которых есть tne
Заменять старые файлы
Yandex - Спутник
Все
Загрузить изображения из интернета
Отменить
Начать


>>>> Hidden Text <<<<

Пробовал "достучаться" до других элементов (в частности CheckBox'ов) окна - они из скрипта так же не видны.

Подскажите, как быть?!
 
Решение
Функция GUICtrlRead используется для собственных контролов (созданных AutoIt).
Для контролов чужих окон пробуйте ControlCommand. Для чекбокса команда "IsChecked" (таблицу команд см. в справке).

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Функция GUICtrlRead используется для собственных контролов (созданных AutoIt).
Для контролов чужих окон пробуйте ControlCommand. Для чекбокса команда "IsChecked" (таблицу команд см. в справке).
 
Решение
Верх