1 (изменено: OmTatSat, 2016-10-01 12:40:41)

Тема: AHK: Acc_ObjectFromPoint без наведения мыши в скрытом окне.

Здравствуйте, есть окно с текстом который доступен только при использовании , возможно ли получить к нему доступ без реального наведения мыши в скрытом окне?

2 (изменено: OmTatSat, 2016-10-01 10:04:51)

Re: AHK: Acc_ObjectFromPoint без наведения мыши в скрытом окне.

Нужно достать текст 01:56.
Cкрины AHK Spy:

+ открыть спойлер

http://images.vfl.ru/ii/1475301612/b0a38e4d/14330477.jpg http://images.vfl.ru/ii/1475301612/86b7090a/14330478.jpg

3 (изменено: OmTatSat, 2016-10-01 11:28:24)

Re: AHK: Acc_ObjectFromPoint без наведения мыши в скрытом окне.

Acc_ObjectFromPoint(ByRef _idChild_ = "", x = "", y = "")
{
	Acc_Init()
	If	DllCall("oleacc\AccessibleObjectFromPoint", "Int64", x==""||y==""?0*DllCall("GetCursorPos","Int64*",pt)+pt:x&0xFFFFFFFF|y<<32, "Ptr*", pacc, "Ptr", VarSetCapacity(varChild,8+2*A_PtrSize,0)*0+&varChild)=0
	Return	ComObjEnwrap(9,pacc,1), _idChild_:=NumGet(varChild,8,"UInt")
}

Может если не сворачивать окно а просто затащить за экран, можно будет как-то вытащить текст? Только как задать вручную координаты Х,У? Вроде так Acc := Acc_ObjectFromPoint(child, 55, 56)

4

Re: AHK: Acc_ObjectFromPoint без наведения мыши в скрытом окне.

Но код:

Acc := Acc_ObjectFromPoint(child, -12, 65)

Не работает.

5

Re: AHK: Acc_ObjectFromPoint без наведения мыши в скрытом окне.

Мне достаточно понять как подставлять координаты нужного элемента в Acc_ObjectFromPoint. Не цифрами, а через переменную меняющую значение.
Например

Acc_ObjectFromPoint(ByRef _idChild_ = "", x = "var1", y = "var2")

Устроит и для активного окна.

6

Re: AHK: Acc_ObjectFromPoint без наведения мыши в скрытом окне.

Kurskador, вам не отвечают по причине несуразности ситуации, когда человек собирается работать с IAccessible интерфейсом, но при этом не знаком даже с простым синтаксисом вызова функции. Между тем, для ответа на ваши вопросы достаточно открыть хэлп (даже переводной) на странице "Функции".

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

7

Re: AHK: Acc_ObjectFromPoint без наведения мыши в скрытом окне.

С хелпом по функциям я как бы знаком. Уж точно лучше, чем с устройством смартфона, которым пользуюсь каждый день.
Функциями тоже пользуюсь каждый день.
Но я вот так делаю:


var1 := 10
var2 := 20

MsgBox, % Summa(var1,var2)
Return

Summa(aaa,bbb)
	{
	sm := aaa * bbb
	Return, sm
	}

Я как бы понимал, что в самой функции можно аргументы подставить в виде любых asdfghj, но как-то не думал, что туда можно впереть ещё и знаки присвоения, и кавычки. Тем более там ещё какой-то ByRef с чилдом с подчёркиваниями и др. Поэтому не воспринимал  Acc_ObjectFromPoint(ByRef _idChild_ = "", x = "", y = "") как обычную функцию. Ведь совершенно не ясно где что, и что откуда берётся.

Но спасибо за подсказку, она хоть и выставляет меня дебилом, но помогла. Если понять, что это просто обычная функция, то найти нужный вариант можно. Теперь я понимаю, что такая форма написания призвана объяснить что куда нужно писать, но именно она меня и сбила.

8 (изменено: teadrinker, 2017-05-17 14:07:06)

Re: AHK: Acc_ObjectFromPoint без наведения мыши в скрытом окне.

Kurskador пишет:

но как-то не думал, что туда можно впереть ещё и знаки присвоения, и кавычки. Тем более там ещё какой-то ByRef

Kurskador пишет:

С хелпом по функциям я как бы знаком

Чувствуется, что знакомы не до конца.

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

9

Re: AHK: Acc_ObjectFromPoint без наведения мыши в скрытом окне.

Почитал ещё раз. Мутная штука вообще, а с  ByRef, так особенно. Я формировал специальные составные переменные, если мне нужно было вывести больше одной переменной.