A
Alofa
Гость
Прошу знающих людей наставить меня на путь истинный.
Тут недавно обнаружил что функция ...
... в таком виде возвращает дескриптор элемента, который является по умолчанию для данного окна.
Что это - баг, закономерность или недокументированная особенность?
А может быть это я где-то что-то упустил?
Опытным путем добился подтверждения слов InnI (смотри пост ниже),
о том что:
на предмет их работоспособности без назначения параметров "title", "text" и "controlID".
Что касается отсутствия ("") первых двух, то тут функции работают, согласно справочным данным:
При пустом параметре "controlID" функции отрабатывают все также, как и писал InnI:
Ну а при "@SW_MINIMIZE" поймать элемент в фокусе для функций становиться невозможным. Несмотря на это они возвращают следующие значения:
В дополнении хотелось бы добавить, что функция
в случае если никакое окно не соответствует заданным критериям, возвращает не пустую строку, а "0x00000000".
P.s: И да простят меня модераторы за изменение названия темы.
Тут недавно обнаружил что функция ...
Код:
ControlGetHandle($hWnd, "", "")
Что это - баг, закономерность или недокументированная особенность?
А может быть это я где-то что-то упустил?
Опытным путем добился подтверждения слов InnI (смотри пост ниже),
о том что:
Не поленился и поэкспериментировал с каждой функцией раздела справки Функции --> Окна --> Управление элементами, кромеInnI сказал(а):В Win* и Control* функциях при использовании пустых параметров в качестве Title и ControlID работа будет проводиться с активным окном или элементом...
Код:
ControlFocus, ControlGetFocus, StatusbarGetText
Что касается отсутствия ("") первых двух, то тут функции работают, согласно справочным данным:
Только хотел бы добавить, что если нет вообще ни одного активного окна, то будет использован дескриптор рабочего стола.Примечание: пустая строка "", переданная в качестве заголовка и текста означает, что будет использовано текущее активное окно..!
Window
======
Title: Program Manager
Class: Progman
Control
=======
Class: SysListView32
Instance: 1
ID: 1
Text: FolderView
======
Title: Program Manager
Class: Progman
Control
=======
Class: SysListView32
Instance: 1
ID: 1
Text: FolderView
При пустом параметре "controlID" функции отрабатывают все также, как и писал InnI:
Тут я попытался поиграть флагами состояний окон элементов и пришел к выводу, что при любых флагах (кроме "@SW_MINIMIZE") функции отрабатывают хорошо.InnI сказал(а):... В случае с элементом, "активным" считается элемент, имеющий фокус ввода
Ну а при "@SW_MINIMIZE" поймать элемент в фокусе для функций становиться невозможным. Несмотря на это они возвращают следующие значения:
Код:
ControlClick ; --> возвращает 1 (Успех)
ControlCommand ; --> устанавливает @error = 1 (Ошибка)
ControlDisable ; --> возвращает 1 (Успех)
ControlEnable ; --> возвращает 1 (Успех)
ControlGetHandle; --> возвращает дескриптор Окна
ControlGetPos ; --> возвращает размер Окна
ControlGetText ; --> возвращает заголовок Окна
ControlHide ; --> возвращает 1 (Успех)
ControlListView ; --> устанавливает @error = 0 (Успех)
ControlMove ; --> возвращает 1 (Успех)
ControlSend ; --> возвращает 1 (Успех)
ControlSetText ; --> возвращает 1 (Успех)
ControlShow ; --> возвращает 1 (Успех)
ControlTreeView ; --> возвращает 1 (Успех)
В дополнении хотелось бы добавить, что функция
Код:
ControlGetHandle
P.s: И да простят меня модераторы за изменение названия темы.