1,701

Re: AHK: Замена "Window Spy"

Malcev пишет:

Вивальди, как и скайп сразу не выдаст весь путь.

Да, это видел.

Malcev пишет:

Получаешь дерево и считаешь.

Тяжело однако.
А ты путь проверял в Accget. У меня он считается от объекта под мышкой, а не от окна.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,702

Re: AHK: Замена "Window Spy"

А это неважно откуда он считается.
Правильно считать сверху вниз, но это долго.
А снизу вверх могут быть разного рода баги, от которых в последних версиях ahk spy вроде как избавились.

1,703

Re: AHK: Замена "Window Spy"

Как не важно, ты говоришь путь не правильный. ahk spy от Chrome_RenderWidgetHostHWND1 берёт, а AccExplorer от  другого.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,704

Re: AHK: Замена "Window Spy"

Они одинаково берут путь.
Просто AccExplorer переходит на родительское окно и строит от него вниз, а ahk spy переходит на родительский объект и сравнивает его детей.
А у вивальди и, как я вспоминаю, у хрома, при переходе на главное родительское окно, дочернее окно изчезает.
Поэтому accexplorer показывает правильный путь, а автохоткивский accviewer нет.
А после введенных мною проверок ahk spy тоже либо показывает правильный путь либо показывает, что путь не найден.

1,705

Re: AHK: Замена "Window Spy"

Malcev пишет:

А после введенных мною проверок ahk spy тоже либо показывает правильный путь либо показывает, что путь не найден.

Отвлёкся от темы. Так что надо в коде изменить чтобы путь правильный был? CompareAcc изменить.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,706

Re: AHK: Замена "Window Spy"

Думаю ничего менять не надо.
Только для наглядности, можно в Acc_GetPath, если найденный путь начинается не с хендла главного окна (из вкладки windows), то вписывать этот хендл - path not found.

1,707

Re: AHK: Замена "Window Spy"

Malcev пишет:

Баг в проверке acc пути.
На броузере vivaldi при дефалтных установках путь для получения адресной строки должен  быть таким

4.1.2.1.1.1.1.1.2.1.2.3.1.1

AhkSpy же выводит

4.1.1.1.2.1.2.3.1.1

А почему путь неправильный? У меня так находит. Он пишет путь от Chrome_RenderWidgetHostHWND.

MsgBox %  Acc_Get("Object", "4.1.1.1.2.1.2.3.1.1", 0, "ahk_id " Chrome_RenderWidgetHostHWND).accName(0

Выводит

Введите поисковый запрос или адрес страницы

Единственное что нет путя от окна.

Malcev пишет:

Так же если есть желание, то можно добавить нахождение пути в буквенной форме через role properties.

Тут не понял, что за буквенная форма?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,708

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

А почему путь неправильный? У меня так находит. Он пишет путь от Chrome_RenderWidgetHostHWND.

Вот и я понял, что бага тут нет, о чем и написал в 1,693 посте.

Протестировал с вивальди.
Багов не нашел.
Просто при переходе к главному родительскому элементу дерево перестраивается и с нашим алгоритмом (снизу вверх) путь не  найти.
Можно для наглядности при таких случаях добавлять хендл окна и писать path not found.

serzh82saratov пишет:

Единственное что нет путя от окна.

Вот я и предлагаю, что если мы не можем найти пути от окна, то пишем:
path not found * хендл окна.

serzh82saratov пишет:

что за буквенная форма?

Acc := Acc_Get("Object", "application.tool bar3.combo box.editable text", 0, "ahk_id 0x000204fc")

1,709

Re: AHK: Замена "Window Spy"

Malcev пишет:

Вот я и предлагаю, что если мы не можем найти пути от окна, то пишем:
path not found * хендл окна.

Сделал.

Malcev пишет:

Acc := Acc_Get("Object", "application.tool bar3.combo box.editable text", 0, "ahk_id 0x000204fc")

Не, не понятно, что за путь такой.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,710 (изменено: Malcev, 2022-07-24 00:51:00)

Re: AHK: Замена "Window Spy"

В исходном коде:

Acc_Get(Cmd, ChildPath="", ChildID=0, WinTitle="", WinText="", ExcludeTitle="", ExcludeText="") {
static properties := {Action:"DefaultAction", DoAction:"DoDefaultAction", Keyboard:"KeyboardShortcut"}
AccObj :=   IsObject(WinTitle)? WinTitle
:   Acc_ObjectFromWindow( WinExist(WinTitle, WinText, ExcludeTitle, ExcludeText), 0 )
if ComObjType(AccObj, "Name") != "IAccessible"
ErrorLevel := "Could not access an IAccessible Object"
else {
StringReplace, ChildPath, ChildPath, _, %A_Space%, All
AccError:=Acc_Error(), Acc_Error(true)
Loop Parse, ChildPath, ., %A_Space%
try {
if A_LoopField is digit
Children:=Acc_Children(AccObj), m2:=A_LoopField ; mimic "m2" output in else-statement
else
RegExMatch(A_LoopField, "(\D*)(\d*)", m), Children:=Acc_ChildrenByRole(AccObj, m1), m2:=(m2?m2:1)

Путь по роле объекта.
Бывает нужным решением, когда нельзя использовать точный путь из-за появления/убирания всяких новых объектов в приложении.

Сделал.

Сейчас у тебя показывает хендл не главного окна приложения, а первого родительского, которое не находится.
Ну и можно, если вообще путь не находится, убрать надпись из   "Get path   path not found  ▪  ", а вставить в path not found * хендл окна.

1,711

Re: AHK: Замена "Window Spy"

Malcev пишет:

Сейчас у тебя показывает хендл не главного окна приложения, а первого родительского, которое не находится.

Chrome_WidgetWin_1. Какое там главнее?

Malcev пишет:

Путь по роле объекта.

Не замечал раньше, надо будет сделать.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,712

Re: AHK: Замена "Window Spy"

Просто у хрома Chrome_WidgetWin_1 - это первое родительское, которое не определяется, оно в то же время является главным окном приложения.
Но например у flashfxp это не так.

1,713

Re: AHK: Замена "Window Spy"

Malcev пишет:

Но например у flashfxp это не так.

У меня нет flashfxp, в коде как поправить, чтобы и там и там было правильно?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,714

Re: AHK: Замена "Window Spy"

"Правильно" - тут не совсем тот термин, сейчас тоже правильно показывает, так как от родительского окна мы путь найти не можем.
Просто нагляднее, на мой взгляд, было бы вставить вместо

If (v.Path = 0)
tree .= AddSpace(k - 1) "<span><span style='color:#" ColorErrorAccPath "'>path not found</span>" _DP  "<span name='MS:'>" v.Hwnd "</span>"
. _DP "<span name='MS:'>" v.WinClass "</span>" _DP  "<span name='MS:'>" v.ProcessName "</span></span>"

переменные из раздела Window в вкладке Control.

( Window )  flash
ahk_class Chrome_WidgetWin_1 ahk_exe chrome.exe ahk_id 0x20624

А в коде тебе лучше подправить, так как я не вижу где у тебя эти переменные хранятся.
Если что flashfxp тут:
https://www.flashfxp.com/download

1,715

Re: AHK: Замена "Window Spy"

Malcev пишет:

Но например у flashfxp это не так.

А что там не так? Навожу на адресную строку TTntEdit.UnicodeClass.

path not found  ▪  0x150DA6  ▪  TPanelEx.UnicodeClass  ▪  FlashFXP.exe  ▪   flash
↓    4  ▪  0x101C56  ▪  TPTShellCombo.UnicodeClass  ▪  FlashFXP.exe  ▪   flash

TPanelEx.UnicodeClass родитель TPTShellCombo.UnicodeClass
TPTShellCombo.UnicodeClass родитель TTntEdit.UnicodeClass

Malcev пишет:

переменные из раздела Window в вкладке Control

В смысле добавить ahk_class ahk_exe ahk_id?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,716

Re: AHK: Замена "Window Spy"

Я предлагаю вместо

path not found  ▪  0x121BF6  ▪  TPanelEx.UnicodeClass  ▪  FlashFXP.exe  ▪

писать

path not found  ▪  0x111374  ▪  TFrmMain.UnicodeClass  ▪  FlashFXP.exe  ▪

1,717

Re: AHK: Замена "Window Spy"

Не согласен. Зачем идти выше, надо показать откуда путь начинает не читаться, а те что выше уже не имеют значения в таком случае.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,718

Re: AHK: Замена "Window Spy"

Может забыл, может не знал, можно ли в Accessible получить объект исходя из координат относительно окна, например в случае когда окно перекрыто.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,719

Re: AHK: Замена "Window Spy"

Нет.
Для таких задач целесообразней использовать UI Automation.

1,720

Re: AHK: Замена "Window Spy"

А в нём как? Я искал, не нашёл такого.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,721

Re: AHK: Замена "Window Spy"

Как-нибудь Findfirst с UIA_BoundingRectanglePropertyId.

1,722

Re: AHK: Замена "Window Spy"

Тут что то нашёл https://www.autohotkey.com/boards/viewtopic.php?t=69627, но не понял Findfirst получает корневой объект от окна?
UIA_BoundingRectanglePropertyId как работает? Я предполагаю передачу в него координат в окне, ну и видимо корневой объект окна в котором искать, но я не увидел передачи координат.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,723

Re: AHK: Замена "Window Spy"

От хендла окна мы получаем AutomationElement, после чего ищем элемент с нужными нам свойствами через Findfirst.
Вот тут можешь почитать:
https://docs.microsoft.com/en-us/window … fromhandle
https://docs.microsoft.com/en-us/window … ncondition
https://docs.microsoft.com/en-us/window … -findfirst
А вообще на ahk Descolada сделал враппер на основе от jethrow.
https://www.autohotkey.com/boards/viewt … p;t=104999

1,724

Re: AHK: Замена "Window Spy"

Спасибо, буду смотреть.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,725

Re: AHK: Замена "Window Spy"

Нифигасе, господин Descolada поработал.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,726

Re: AHK: Замена "Window Spy"

Кстати не в курсе Accessible  может устанавливать значения? Как тут в примерах вводить строку.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,727

Re: AHK: Замена "Window Spy"

Не понял вопроса.
Ты спрашиваешь про это?

acc.accvalue := "a"

1,728

Re: AHK: Замена "Window Spy"

Видимо да, надо будет попробовать.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,729

Re: AHK: Замена "Window Spy"

С accName так не работает насколько помню.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,730

Re: AHK: Замена "Window Spy"

4.95
Добавил Set в accvalue.

Добавил в основное меню:
Open window from clipboard 
Open control from clipboard

Открыть окно если его хэндл в буфере.
По хорошему конечно надо добавить кнопку перехода для всех хэндлов в программе.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,731 (изменено: sergei.kashirin, 2022-08-17 15:51:59)

Re: AHK: Замена "Window Spy"

Всем привет. Не получается скачать программу.
Все получилось. Нужно было просто скопировать код и вставить его.

1,732

Re: AHK: Замена "Window Spy"

sergei.kashirin пишет:

Нужно было просто скопировать код и вставить его.

Там ниже под ссылкой написано:

Чтобы сразу сохранить в файл, нажмите правую кнопку мыши на ссылке "Скачать AhkSpy", выберите "сохранить как" (!этот способ работает не во всех браузерах). Иначе перейдите по ссылке, и скопируйте код в файл с расширением .ahk, и с кодировкой UTF-8-BOM.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,733

Re: AHK: Замена "Window Spy"

Если планируются еще апдейты, то было бы неплохо вставить убирание/возврат стилей из окон и контролов.