Что нового

Получить свойство чекбокса класса WindowsForms10.BUTTON

maximax_

Новичок
Сообщения
2
Репутация
0
Доброго времени суток.
Пишу простой скрипт для автоматизации подписи файлов через программу Cryptoline - taxcom.ru/img/content/upload/doc/CryptoLine.zip

На определенном этапе, мне нужно получить свойство чекбокса, стоит ли на нем галочка или нет, в случае, если не стоит, то поставить её.
Сложность в том, что в этой программе используются нестандартные контролы, и стандартная проверка через
Код:
ControlCommand($hWin, '', $hCheckBoxZip, 'IsCheked')
всегда возвращает 0, но, при этом, проверка на доступность
Код:
ControlCommand($hWin, '', $hCheckboxMultiple, 'IsEnabled')
возвращает корректный результат.

Для наглядности приложу скриншот.
h_1455883301_6583021_a3e567bfb9.png

Проверку чекбокса №1 сделал через проверку доступности чекбокса №3
Код:
If Not ControlCommand($hWin, '', $hCheckboxMultiple, 'IsEnabled') Then ControlClick($hWin, '', $hCheckboxDetach)

Но вот как сделать проверку доступности чекбокса №3 я пока не решил, предполагаю нужно использовать функции какой-то UDF.
Подскажите, как можно решить мою задачу.
 

InnI

AutoIT Гуру
Сообщения
4,923
Репутация
1,432
maximax_
использовать функции какой-то UDF
Код:
#include <UIAutomate.au3> ; http://autoit-script.ru/index.php?topic=16780.0

$oParent = _UIA_GetElementFromHandle(WinGetHandle("Подпись файлов"))

$oCheckBox = _UIA_GetControlTypeElement($oParent, "UIA_CheckBoxControlTypeId", "Открепленная подпись")
$State = _UIA_ElementGetPropertyValue($oCheckBox, "Toggle.ToggleState")
ConsoleWrite($State & @CRLF)

$oRadio = _UIA_GetControlTypeElement($oParent, "UIA_RadioButtonControlTypeId", "Base64")
$State = _UIA_ElementGetPropertyValue($oRadio, "SelectionItem.IsSelected")
ConsoleWrite($State & @CRLF)
 
Автор
maximax_

maximax_

Новичок
Сообщения
2
Репутация
0
InnI, спасибо за быстрой ответ.
Я заглядывал в тему с вашей UDF, когда искал решение, но не был уверен, что это именно то, что мне нужно, так как пишу скрипт в вируталке с установленной XP, а для неё ссылка на загрузку необходимого компонента (KB971513) для работы Inspect с сайта Microsoft битая. Поставлю в VirtualBox 7-ку и буду разбираться, думаю пригодится и для других задач. А так код в вашем примере понятен.
 
Верх