1 (изменено: kursiv, 2014-04-17 22:41:16)

Тема: AHK: Перехват (Home) в IE

словить клик на (Home) в IE.

2

Re: AHK: Перехват (Home) в IE

Этот скрипт будет запущен на компьютере каких-то посторонних людей?

3 (изменено: kursiv, 2014-04-14 13:16:34)

Re: AHK: Перехват (Home) в IE

нет. для собственных нужд.

4 (изменено: Irbis, 2014-04-13 09:39:20)

Re: AHK: Перехват (Home) в IE

#If WinActive("ahk_exe iexplore.exe")&&(GetTextUnderMouse() = "Домой")
LButton:: SendInput ^{vk53}
#If

GetTextUnderMouse() {
    Acc := Acc_ObjectFromPoint(child)
    try value := Acc.accValue(child)
    if Not value
        try value := Acc.accName(child)
    return value
}

Для работы нужна библиотека Acc Library.

5

Re: AHK: Перехват (Home) в IE

Так мало ли где может быть такая надпись. Перед этим я бы сначала проверил что под курсором мыши находится окно IE и соответствующий контрол.

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

6 (изменено: serzh82saratov, 2014-04-13 10:08:09)

Re: AHK: Перехват (Home) в IE


#If IsHomeKey()
LButton:: ToolTip ^{vk53}
#If

IsHomeKey() {
    if !WinActive("ahk_class IEFrame ahk_exe iexplore.exe")
        return 0
    MouseGetPos, , , WinId, ControlNN 
    if !InStr( ControlNN, "ToolbarWindow")
        return 0
    WinGet, Process, ProcessName, ahk_id %WinId%
    if Process != iexplore.exe 
        return 0
    Acc := Acc_ObjectFromPoint(child)
    try value := Acc.accValue(child)
    if Not value
        try value := Acc.accName(child)
    if (value= "Домой")
        return 1
    return 0
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

7

Re: AHK: Перехват (Home) в IE

спасибо. но скрипт незапускается. выдает ошибку. что нетак.?

Error: Call to nonexistent function.
Specifically: Acc_ObjectFromPoint(child)
Line*
005 {
006 if !WinActive("ahk_class IEFrame ahk_exe iexplore
007 Return.O
008 MouseGetPos,„WinId,ControlNN
009 WinGet,Process,ProcessName,ahk_id %WinId%
010 if (Process != "iexplore.exe" && ControINN !=
"ToolbarWindow324")
011: Return.O
—>        012: Acc := Acc_ObjectFromPoint(child)
013: Try
013: value := Acc.accValue(child)
014: if Not value
015: Try
015: value := Acc.accName(child)
016: if (value= "Домой")
017: Return,!
The program will exit.

библиотеку Acc Library. скопировал в папку AutoHotKey.

8

Re: AHK: Перехват (Home) в IE

Это >>>Download Acc Library<<< бережно кладёте сюда C:\Program Files\AutoHotkey\Lib

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

9 (изменено: Irbis, 2014-04-13 10:20:24)

Re: AHK: Перехват (Home) в IE

Общие библиотеки хранятся в папке Autohotkey\Lib\

10

Re: AHK: Перехват (Home) в IE

010 if (Process != "iexplore.exe" && ControINN !=
"ToolbarWindow324")

И перекопируйте мой код.

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

11

Re: AHK: Перехват (Home) в IE

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

WinActive("ahk_exe iexplore.exe")&&(GetTextUnderMouse() = "Домой")

вызвала ложное срабатывание.
А зачем у тебя 3ий if, если в 1ом имеется ahk_exe iexplore.exe ?

...
if !WinActive("ahk_class IEFrame ahk_exe iexplore.exe")
        return 0
    MouseGetPos, , , WinId, ControlNN 
    if !InStr( ControlNN, "ToolbarWindow")
        return 0
    WinGet, Process, ProcessName, ahk_id %WinId%
    if Process != iexplore.exe 
        return 0
...

12

Re: AHK: Перехват (Home) в IE

вызвала ложное срабатывание.

Если кликнуть на слово Домой в адресной строке или где то на странице то скрипт сработает. accName может вернуть любое слово на странице. Более того так можно кликнуть и мимо активного окна IE. 

А зачем у тебя 3ий if, если в 1ом имеется ahk_exe iexplore.exe

В 1 проверка активности окна, а в 3 что мышь именно над окном.

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

13

Re: AHK: Перехват (Home) в IE

Error at line 13.
Line Text: "ToolbarWindow324")
Error: This line does not contain a recognized action.
The program will exit.

а вы на чем проверяете работоспособность скрипта?

14

Re: AHK: Перехват (Home) в IE

Вы какой код запускаете? Этот работает:


#If IsHomeKey()
LButton:: ToolTip ^{vk53}
#If

IsHomeKey() {
    if !WinActive("ahk_class IEFrame ahk_exe iexplore.exe")
        return 0
    MouseGetPos, , , WinId, ControlNN 
    if !InStr( ControlNN, "ToolbarWindow")
        return 0
    WinGet, Process, ProcessName, ahk_id %WinId%
    if Process != iexplore.exe 
        return 0
    Acc := Acc_ObjectFromPoint(child)
    try value := Acc.accValue(child)
    if Not value
        try value := Acc.accName(child)
    if (value= "Домой")
        return 1
    return 0
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

15

Re: AHK: Перехват (Home) в IE

нет.(

16

Re: AHK: Перехват (Home) в IE

Ошибка?

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

17 (изменено: kursiv, 2014-04-14 13:17:27)

Re: AHK: Перехват (Home) в IE

скрипт запускается но неработает
не тот не другой.

18

Re: AHK: Перехват (Home) в IE

Проверьте параметры, у меня 11.

ahk_class IEFrame
ahk_exe iexplore.exe 
ToolbarWindow
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

19 (изменено: serzh82saratov, 2014-04-14 19:16:09)

Re: AHK: Перехват (Home) в IE

Irbis
Кстати в таких случаях лучше не проверять окно на активность, ведь по кнопке можно кликнуть и в неактивном окне.


#If IsHomeKey()
LButton:: ToolTip ^{vk53}
#If

IsHomeKey() { 
    MouseGetPos, , , WinId, ControlNN 
    if !InStr( ControlNN, "ToolbarWindow")
        return 0
    WinGet, Process, ProcessName, ahk_id %WinId%
    if Process != iexplore.exe 
        return 0
    Acc := Acc_ObjectFromPoint(child)
    try value := Acc.accValue(child)
    if Not value
        try value := Acc.accName(child)
    if (value= "Домой")
        return 1
    return 0
}


-------------------------

Хотел добавить, для мобильности библиотеку можно не юзать без особого ущерба для лаконичности:


#If IsHomeKey()
LButton:: ToolTip ^{vk53}
#If

IsHomeKey() { 
    MouseGetPos, , , WinId, ControlNN 
    if !InStr( ControlNN, "ToolbarWindow")
        return 0
    WinGet, Process, ProcessName, ahk_id %WinId%
    if Process != iexplore.exe 
        return 0
    return GetTextUnderMouse() = "Домой" ? 1 : 0
} 

GetTextUnderMouse()  {
    Static h
    If !h
        h := DllCall("LoadLibrary","Str","oleacc","Ptr")
    If DllCall("oleacc\AccessibleObjectFromPoint"
                , "Int64", DllCall("GetCursorPos","Int64*",pt)+pt
                , "Ptr*", pacc, "Ptr", VarSetCapacity(varChild,8+2*A_PtrSize,0)*0+&varChild)=0
    Acc:=ComObjEnwrap(9,pacc,1), child:=NumGet(varChild,8,"UInt")
    try value := Acc.accValue(child)
    if value =
        try value := Acc.accName(child) 
    return value
}
 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

20 (изменено: kursiv, 2014-04-17 22:43:17)

Re: AHK: Перехват (Home) в IE

никак не выходит.

21

Re: AHK: Перехват (Home) в IE

Запустите AhkSpy v1.047
Мыши наведите на кнопку, это данные с IE 11
http://i.imgur.com/ETnhAFu.png
У Вас что видно?

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

22 (изменено: kursiv, 2014-04-14 13:19:50)

Re: AHK: Перехват (Home) в IE

вот

23

Re: AHK: Перехват (Home) в IE

Всё также, должно работать.

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

24 (изменено: kursiv, 2014-04-14 13:21:43)

Re: AHK: Перехват (Home) в IE

по клику открываться?

25

Re: AHK: Перехват (Home) в IE

При клике сейчас должен появлятся тултип:

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

26 (изменено: kursiv, 2014-04-14 13:23:46)

Re: AHK: Перехват (Home) в IE

спасиб.

27

Re: AHK: Перехват (Home) в IE

kursiv, отредактируйте свои сообщения. Грамоту (особенно заглавные буквы и знаки препинания) никто не отменял.

Запрещается отвечать в теме до исправления.