Что нового

нажатие через Inspect

saraconor

Новичок
Сообщения
404
Репутация
3
Пытаюсь разобраться с управлением (из этой темы: http://autoit-script.ru/index.php?topic=16780.msg147184#msg147184)

Код:
#include "UIAutomate.au3"

Run("C:\Windows\system32\notepad.exe")
$hWnd = WinWait("[class:Notepad]", "", 10)
If Not $hWnd Then Exit

$oParent = _UIA_GetElementFromHandle($hWnd)

$oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Шрифт...")
_UIA_ElementMouseClick($oElement)


sk6bihva.jpg

пытаюсь нажать на этот пункт меню, выдает ошибку:
!> _UIA_GetControlTypeElement : значение указанного свойства найденных элементов не соответствует заданному
!> _UIA_ElementMouseClick : первый параметр не является объектом

Помогите? идентификатор что-ли не верный, нажатие на кнопку "Формат" срабатывает но как-то странно (меню открывается и тут-же схлопывается), и мышь убегает, можно как-нибудь сделать чтобы мышь не двигалась, как это происходит с ControlClick ?

Кажется найдено решение (последовательное нажатие):
Код:
#include "UIAutomate.au3"

;~ Run("C:\Windows\system32\notepad.exe",'', @SW_HIDE)
Run("C:\Windows\system32\notepad.exe")
$hWnd = WinWait("[class:Notepad]", "", 10)
If Not $hWnd Then Exit

$oParent = _UIA_GetElementFromHandle($hWnd)

$oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Формат")
_UIA_ElementDoDefaultAction($oElement)

$oElement = _UIA_GetControlTypeElement($oParent, "UIA_MenuItemControlTypeId", "Шрифт...")
_UIA_ElementDoDefaultAction($oElement)
;~ winsetstate("[class:Notepad]", '', @SW_SHOW)


Попытка запустить программу в хайде провалилась ;D
 

Khaibit

Осваивающий
Сообщения
103
Репутация
25
Код:
Run("C:\Windows\system32\notepad.exe")
$hWnd = WinWait("[class:Notepad]", "", 10)
If Not $hWnd Then Exit
WinMenuSelectItem($hWnd, '', 'Фор&мат', '&Шрифт')
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
Khaibit сказал(а):
Код:
Run("C:\Windows\system32\notepad.exe")
$hWnd = WinWait("[class:Notepad]", "", 10)
If Not $hWnd Then Exit
WinMenuSelectItem($hWnd, '', 'Фор&мат', '&Шрифт')
С Адоб Акробатом это работать не хочет.
 
Сообщения
142
Репутация
-3
saraconor сказал(а):
Khaibit сказал(а):
Код:
Run("C:\Windows\system32\notepad.exe")
$hWnd = WinWait("[class:Notepad]", "", 10)
If Not $hWnd Then Exit
WinMenuSelectItem($hWnd, '', 'Фор&мат', '&Шрифт')
С Адоб Акробатом это работать не хочет.
И не должно. Было бы странно, будь наоборот.
 

Khaibit

Осваивающий
Сообщения
103
Репутация
25
ЭйчЭйч сказал(а):
И не должно. Было бы странно, будь наоборот.
Ну и где твой вариант решения? как обычно лишь извергание своего мнения, было бы странно, будь наоборот.

В первом сообщении ни слова про adobe, в примере речь шла про notepad.
Вариант:
Код:
#include <WinAPI.au3>
#include <WindowsConstants.au3>
$hadle = WinGetHandle('Adobe Acrobat Reader DC')
_WinAPI_PostMessage($hadle, $WM_COMMAND, 6151, 0); меняем тему на темную - например


6151 - это id пункта который можно увидеть через тот же Inspect > AutomationId
 
Сообщения
142
Репутация
-3
Khaibit сказал(а):
ЭйчЭйч сказал(а):
И не должно. Было бы странно, будь наоборот.
Ну и где твой вариант решения? как обычно лишь извергание своего мнения, было бы странно, будь наоборот.

В первом сообщении ни слова про adobe, в примере речь шла про notepad.
OffTopic:
Извергнул мнение только ты, а я дал информацию, что ошибки в коде нет, но тебе это невдомек, потому что ты даже изъясняешься, сам себе противореча, требуя от меня решение, и тут же пишешь, что исходных данных нет. :rofl:
 

Khaibit

Осваивающий
Сообщения
103
Репутация
25
ЭйчЭйч сказал(а):
.... требуя от меня решение, и тут же пишешь, что исходных данных нет.
Данных не было на момент моего первого ответа, когда ты строчил свой уже было известно что речь про adobe.
Ну так блесни знаниями, предложи свой вариант.
 
Верх