1 (изменено: yalanne, 2015-02-20 20:24:30)

Тема: AHK: Работа с библиотекой Acc Library. Вывод информации

Как с помощью библиотеки Acc Library вывести значение функции Acc.accName(child) НЕ через позицию мыши, а у конкретного контрола другого окна?

    Acc := Acc_ObjectFromPoint(Child)
    msgbox %  Acc.accName(child)

2

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

Acc_ObjectFromWindow.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.27.03 (Unicode 32-bit).

3 (изменено: yalanne, 2015-02-20 21:53:01)

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

Cам разобрался. у меня получилось через Acc_ObjectFromEvent.

hWnd_ctrl := ; hwnd нужного контрола.
Acc := Acc_ObjectFromEvent(Child, hWnd_ctrl,0, 0)
msgbox %  Acc.accName(child)

4 (изменено: yalanne, 2015-02-20 21:53:13)

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

А как наоборот сделать, что бы изменить этот параметр а не прочесть?

5

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

yalanne, не нужно цитировать предыдущий пост.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

6

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

teadrinker пишет:

yalanne, не нужно цитировать предыдущий пост.

Поправил

7

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

Насколько я помню, он неменяется.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.27.03 (Unicode 32-bit).

8

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

Всем привет. Никто не пробовал через ID потомка выбрать элемент?
Нашел вот такой пример:

acc := acc_get("Object", "3.1", 0, "ahk_class TTOTAL_CMD")
acc.accDoDefaultAction(0) ; Set Focus

Только он находит строку меню и все. Остальные элементы тотала он не видит.

Как вариант, нужно в панели TMyListBox2 (там отображено содержимое диска С:) установить курсор на любую папку или файл.

9

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

Ошибка выходит в результате запуска скрипта по автозапуску при включении ноутбука. Приходится запускать скрипт вручную, тогда ошибка не выходит. Как решить проблему?

http://puu.sh/yOvuU/a836f2458c.png

Win10x64, AHK v1.1.25

10

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

Это сильно вряд ли относится к "Acc". Я наблюдаю такое же сообщение, когда все виртуальные машины включаю за раз, тогда есть вероятность, что на какой-либо машине случится подобное. Видимо, у Вас на момент запуска на устройстве, грузится вместе со скриптом ещё, довольно критичное количество программ, сервисов и прочих, или HDD стареет и таким образом проявляет себя. Попробуйте отложенную автозагрузку таким способом, или используйте тулзы для этой настройки, например, я пользую Anvir.

11

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

Прописать полный путь к файлу acc.ahk, пробовали?

12 (изменено: stealzy, 2017-12-27 16:32:12)

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

becauseim, дело в рабочей директории, если вы не прописали ее отдельно в ярлыке, ею становится директория установки интерпретатора, а в ней конечно файл Acc.ahk отсутствует.
Решение - прописать раб. дир. в ярлыке, либо прописать в скрипте первым инклудом #Include %A_ScriptDir%, либо указать полный путь инклуда.

13

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

У меня над инклюдами во всех сценариях значится -> SetWorkingDir, A_ScriptDir. У этой директивы настолько меньше приоритета при загрузке контента, нежели прямое указание пути к файлу, что это так влияет на загрузку основного документа?

14

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

SetWorkingDir на Include не влияет.

15 (изменено: stealzy, 2017-12-28 15:36:52)

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

KusochekDobra, ни одна команда на директивы не влияет, потому что команды выполняются в ходе исполнения скрипта, а директивы - до.
И разумеется SetWorkingDir не директива, потому что директивы пишутся с #.

16

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

stealzy пишет:

ни одна команда на директивы не влияет

Как же не влияет?

SetWorkingDir, c:\
#If (A_ScriptDir != A_WorkingDir)
f1::msgbox

17

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

В общем, SetWorkingDir никак не помог. Только полный путь после #Include. Хотя ранее или в более легких по объему скриптах этого не требовалось.

Win10x64, AHK v1.1.25

18

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

Malcev пишет:

Как же не влияет?

Это влияние на условие директивы а не на нее саму.
Если бы можно было командой выключить директиву, или создать новую, или изменить выражение в условии...
Но по ходу выполнения скрипта даже невозможно создать хоткей с произвольным условием в #If, это условие должно быть прописано в коде скрипта.

Справка по Hotkey пишет:

Counterpart of #If Expression. Expression must match exactly the text of an existing #If Expression, excluding "#If"
...
Although this command is unable to create new expressions

19 (изменено: Malcev, 2017-12-28 07:16:39)

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

stealzy пишет:

Если бы можно было командой выключить директиву

#InputLevel 1
f1::f2
#InputLevel 0
f2::Msgbox
f3::Hotkey, f2,,I1  ; изменяем inputlevel

20

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

Благодарю за разъяснения. Но, всё же, раз я на своём опыте встречаю такие ошибки исключительно в момент крайней загрузки ЖД, то связываю проблему именно с этим. Во всех остальных случаях, работает как описано в той же справке, которая говорит, что если полный путь указан не был, то поиск осуществляется вначале в каталоге скрипта.

21

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

Malcev, с моей точки зрения вы выключили отдельную ГК, а не директиву. Под директивой могут находится и другие ГК.
Вообще, суть моего сообщения о порядке выполнения директив и команд. Конечно команды влияют друг на друга, даже если на одни из них оказывают влияние директивы.
Ну никак нельзя оказать влияние на выполнение директивы до начала хода исполнения скрипта поместив команду выше нее.

22 (изменено: Malcev, 2017-12-28 16:32:47)

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

stealzy пишет:

Ну никак нельзя оказать влияние на выполнение директивы до начала хода исполнения скрипта поместив команду выше нее.

Так у f1 inputlevel будет равен 2, а не 1 (как указано в директиве):

Hotkey, f1,,I2  ; изменяем inputlevel
#InputLevel 1
f1::msgbox % A_SendLevel

23 (изменено: stealzy, 2017-12-28 19:19:56)

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

Malcev, вы узнаете чему будет равен inputlevel только когда нажмете ГК. В самом начале исполнения, очевидно, inputlevel будет 1.
Не понимаю, вы не согласны что директивы выполняются до старта исполнения последовательности команд в коде? Если нет, тогда увольте...

24 (изменено: Malcev, 2017-12-28 16:42:37)

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

stealzy пишет:

Malcev, вы узнаете чему будет равен inputlevel только когда нажмете ГК. В самом начале исполнения, очевидно, inputlevel будет 1.

Inputlevel можно посмотреть в Hotkeys and their methods.

stealzy пишет:

директивы иполняются до старта исполнения последовательности команд в коде?

Судя по всему некоторые команды (в частности hotkey) тоже до старта исполнения и имеют приоритет над директивами.
Я не согласен с тем, что "ни одна команда на директивы не влияет".

25 (изменено: stealzy, 2017-12-28 17:43:56)

Re: AHK: Работа с библиотекой Acc Library. Вывод информации

Malcev пишет:

Судя по всему некоторые команды (в частности hotkey) тоже до старта исполнения

Наивное предположение. :: а не Hotkey, причем это даже и не команда.

Sleep 5000
Hotkey, f1,,I2  ; изменяем inputlevel
#InputLevel 1
f1::msgbox % A_SendLevel