1 (изменено: ypppu, 2013-01-15 11:43:31)

Тема: AHK: Нажатие кнопки в окне.

появляется окно с двумя кнопками. согласен-не согласен.
Необходимо нажать на согласен. Не важно активно окно либо свёрнуто.
На активное окно я что-то написал\подглядел.

; <COMPILER: v1.0.48.5>
#SingleInstance force
Menu, tray, NoStandard
Menu, tray, add, Info
Menu, tray, Default, Info
Menu, tray, add, About
Menu, tray, add, Rosh
Menu, tray, add, Exit
IniRead, accepter, %A_temp%\d2a.ini, Config, Accepter, F11
Hotkey,%accepter%, accept
return

accept:
gojoin:=!gojoin
if gojoin
{
x:=A_ScreenWidth*.42
y:=A_ScreenHeight*.45
gosub, Accepter
sleep 100
SetTimer, Accepter, 2012
}
else
{
ToolTip
SetTimer, Accepter, off
}
return

Accepter:
ifWinActive,DOTA 2
{
ToolTip, Dota2 Accepter is active`nPress %accepter% to deactivate
MouseMove,x,y
sleep,1
Click
}
return

Info:
gui, font, s10 w500
Gui, Add, Text, x5 y5 h30, Press
Gui, Add, Hotkey, vaccepter x55 y5 w50 h30 , %accepter%
Gui, Add, Text, x105 y5, to activate/deactivate
Gui, Add, Button, gsaveconfig x0 y35 w300 h30,Save
Gui, Show, w300 h65,Dota2 Accepter v1
return

saveconfig:
Hotkey, %accepter%, Off
gui, submit
IniWrite,%accepter%, %A_temp%\d2a.ini, Config, Accepter
Hotkey,%accepter%, accept
gui, destroy
return

GuiEscape:
gui, destroy
return
Exit:
ExitApp
return

About:
Run http://www.playdota.com/forums/blog.php?b=146942
return

Rosh:
Run http://rosh.likesyou.org
return

Но это для старой версии. Необходимо для новой.
Не работает.
Error: The same variable cannot be used for more than one control
Specifically: vaccepter

                   Line#
                   ...
-->              043: Gui,font,s10 w500   
                   ...
Подскажите что я делаю не так.
И как сделать на последнюю версию ahk.

2 (изменено: creature.ws, 2013-01-15 12:08:10)

Re: AHK: Нажатие кнопки в окне.

Не работает.

Работает. На новой.

3 (изменено: evga, 2013-01-16 08:21:43)

Re: AHK: Нажатие кнопки в окне.

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

4

Re: AHK: Нажатие кнопки в окне.

Каждый раз при нажатии на пункт инфо выполняется процедура инфо и команда Gui, Add, Hotkey, vaccepter пытается добавить в окно ещё один контрол с переменной vaccess, а там уже есть один такой. Gui нужно создать один раз, например, в начале скрипта, а потом только показывать и прятать командами Gui, Show и Gui, Hide.

5

Re: AHK: Нажатие кнопки в окне.

Я хочу убрать и info и всё остальное.
Оставить нажатие в окне. Активно или нет скрипту неважно.
А всякие примочки about и прочая ерунда мне совсем не нужна.

6

Re: AHK: Нажатие кнопки в окне.

Убирайте. Нажатие в неактивном окне — команда ControlClick. Работать скорее всего не будет, но какой-то шанс есть.

7

Re: AHK: Нажатие кнопки в окне.

пробовал убирать menu только exit оставил.
Убрал gui.
Всё равно ошибка.
Аж бесит уже. Не могу понять в чём сложность.
Нужно то нажать на кнопку "Accept/Принять".

8

Re: AHK: Нажатие кнопки в окне.

Ну так покажите код, который сейчас запускаете.

9

Re: AHK: Нажатие кнопки в окне.


#SingleInstance force

Menu, tray, add, Exit


accept:
gojoin:=!gojoin
if gojoin
{
x:=A_ScreenWidth*.42
y:=A_ScreenHeight*.45
gosub, Accepter
sleep 100
SetTimer, Accepter, 2012
}
else
{
ToolTip
SetTimer, Accepter, off
}
return

Accepter:
ifWinActive,DOTA 2
{
ToolTip, Dota2 Accepter is active`nPress %accepter% to deactivate
MouseMove,x,y
sleep,1
Click
}
return

10

Re: AHK: Нажатие кнопки в окне.

Жалуется на строчку Menu, tray, add, Exit. Уберите её и ошибки не будет. Чтобы скрипт не закрывался, добавьте в начало #Persistent

11

Re: AHK: Нажатие кнопки в окне.

теперь без ошибок.
Дома проверю.

12

Re: AHK: Нажатие кнопки в окне.

а почему controlclick скорее всего работать не будет?

13

Re: AHK: Нажатие кнопки в окне.

работает.
Но, работает и дальше.
Кнопку нажимает, на x,y и потом её нажимает всю игру.
Как бы это убрать?

14

Re: AHK: Нажатие кнопки в окне.

evga пишет:

работает.
Но, работает и дальше.
Кнопку нажимает, на x,y и потом её нажимает всю игру.
Как бы это убрать?

Видимо, надо убрать строчку SetTimer, Accepter, 2012.

а почему controlclick скорее всего работать не будет?

А фиг его знает. Попробуйте, может, и будет.