Невозможно установить флажки внутри SysTreeView32
Я пытаюсь изменить настройки Internet Explorer с помощью AutoIt, но не могу проверить элементы в SysTreeView32 с помощью ControlTreeView()
, Мой код:
var controlTreeView = "[CLASS:SysTreeView32; INSTANCE:1]";
var treeView = AutoItX.ControlGetHandle(hwnd, controlTreeView);
AutoItX.ControlTreeView(hwnd, treeView, "Check", "#6|#6, "");
Код с командой "Выбрать" работает отлично, но он просто выбирает элемент.
var controlTreeView = "[CLASS:SysTreeView32; INSTANCE:1]";
var treeView = AutoItX.ControlGetHandle(hwnd, controlTreeView);
AutoItX.ControlTreeView(hwnd, treeView, "Select", "#6|#6, "");
Как я могу (не) проверить их вместо того, чтобы просто выбирать?
0 ответов
Обратите внимание:
Как в файле справки AutoIt для ControlTreeView
описано, Check
Команда работает только "если элемент поддерживает это". Из-за уже упомянутого диалога, чувствительного к безопасности, эта команда не будет работать.
Решение:
Просто сделай Select
команда, активируйте окно / диалог, задав фокус и отправив клавишу пробела, вот и все. В приведенном ниже примере вы можете увидеть, что я предлагаю.
Global $sWindow = 'Internet Options'
Global $sControl = '[CLASS:SysTreeView32; INSTANCE:1]'
Global $sCheckbox = '#6|#6'
Func _getTreeViewHandle()
WinWaitActive( $sWindow, '', 2 )
Return ControlGetHandle( $sWindow, '', $sControl )
EndFunc
Func _checkTreeViewCheckbox( $hControl )
ControlTreeView( $sWindow, '', $hControl, 'Select', $sCheckbox )
WinActivate( $sWindow )
Send( '{SPACE}' )
EndFunc
Global $hTreeView = _getTreeViewHandle()
_checkTreeViewCheckbox( $hTreeView )
Проверено в IE v11.
Второй подход:
Вы управляете реестром с помощью функции RegWrite
, Пример:
Global $iReturnCode = RegWrite( 'HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main', 'UseSWRender', 'REG_DWORD', '0x00000000' )
Но для этого вам нужно настроить ключ для вашей версии ОС.
Я надеюсь, что это поможет вам.