1 (изменено: dvc, 2011-03-07 15:35:51)

Тема: AHK: Глюки MouseGetPos, CoordMode, MouseMove

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

Цель скрипта
По нажатию заданной клавиши скрипт считывает положение курсора(пусть будут A\S) мышь перемещается в заданную точку, единичный левый клик, нажатие F4, возвращение курсора в точку с координатами A\S. Всё это без привязки к текущему окну, тоесть оф. гайд советует использовать команду CoordMode.

Вот что я навоял:

1::
MouseGetPos, CoordMode, xpos, ypos
Sleep, 100
MouseMove, CoordMode, 435, 958
Sleep, 100
MouseClick, left
Sleep, 100
Send, {F4}
MouseMove, CoordMode, %xpos%, %ypos%

При таком раскладе скрипт даже не запускается, ссылается на ошибку в 4 строке... Сейчас тестю всё вместе и по отдельности. Если не выдаёт ошибку запуска скрипта, то всё-равно на экране творится ересь = (((

Ещё бы было очень неплохо немного "зациклить" скрипт. Тоесть по нажатию кнопки 1 вот эта часть

MouseMove, CoordMode, 435, 958
Sleep, 100
MouseClick, left
Sleep, 100
Send, {F4}
MouseMove, CoordMode, %xpos%, %ypos%

исполняется один раз, по нажатию 2- 2 раза ну итд.... Всего до семи повторений нужно... Как это реализовывается я вообще не представляю...



Всем оказавшим посильную помощь заранее выражаю благодарность.

2

Re: AHK: Глюки MouseGetPos, CoordMode, MouseMove

dvc, для оформления кода используется кнопочка (Code).
В названии темы должен быть указан скриптовый язык.
Исправляйте!

3 (изменено: ypppu, 2011-03-07 17:31:22)

Re: AHK: Глюки MouseGetPos, CoordMode, MouseMove

С CoordMode плохо разобрались. Попробуйте это:

CoordMode, Mouse , Screen ; Задаём для курсора мышки отсчёт координат относительно всего экрана

1:: settimer, mouse_actions, -1
sleep, 500
2::
Loop, 2
settimer, mouse_actions, -1
sleep, 500
3::
Loop, 3
settimer, mouse_actions, -1
sleep, 500
4::
Loop, 4
settimer, mouse_actions, -1
sleep, 500
5::
Loop, 5
settimer, mouse_actions, -1
sleep, 500
6::
Loop, 6
settimer, mouse_actions, -1
sleep, 500
7::
Loop, 7
settimer, mouse_actions, -1
sleep, 500
Return


mouse_actions:
MouseGetPos, xpos, ypos
Sleep, 100
MouseMove, 435, 958
Sleep, 100
MouseClick, left
Sleep, 100
Send, {F4}
MouseMove, %xpos%, %ypos%
Return

4

Re: AHK: Глюки MouseGetPos, CoordMode, MouseMove

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

Вот что у меня получилось:

1::
CoordMode, Mouse
Sleep, 1
MouseGetPos, xpos, ypos
Sleep, 100
Click, 435, 958, 1
Sleep, 100
Send, {F4}
Click, %xpos%, %ypos%, 0

Зы правда F4 не нажималась, но остальное работало хорошо = )))



Большое спасибо за ответ, сейчас опробую Ваш пример.

5

Re: AHK: Глюки MouseGetPos, CoordMode, MouseMove

http://www.autohotkey.com/docs/commands/CoordMode.htm

6

Re: AHK: Глюки MouseGetPos, CoordMode, MouseMove

В буржуйском не силён.

Ваш вариант не работает. Ну или работает, но не так ка мне нужно)
По нажатию любой из семи клавиш результат один:

mouse_actions:
MouseGetPos, xpos, ypos
Sleep, 100
MouseMove, 435, 958
Sleep, 100
MouseClick, left
Sleep, 100
Send, {F4}
MouseMove, %xpos%, %ypos%
Return

Повторяется  1 раз и глохнет(((

7

Re: AHK: Глюки MouseGetPos, CoordMode, MouseMove

Изменил #3. Попробуйте ещё раз.

8

Re: AHK: Глюки MouseGetPos, CoordMode, MouseMove

Странно.. Не пашет.

Причём довольно весело. Нажимаю два, повторяется четыре раза, нажимаю пять повторяется три раза, нажимаю три повторяется пять раз)))

9 (изменено: ypppu, 2011-03-07 21:37:25)

Re: AHK: Глюки MouseGetPos, CoordMode, MouseMove

Не дружу я с SetTimer.

CoordMode, Mouse, Screen 
1::
2::
3::
4::
5::
6::
7::
Loop, %A_ThisHotkey%
{
MouseGetPos, xpos, ypos
Sleep, 100
MouseMove, 435, 958
Sleep, 100
MouseClick, left
Sleep, 100
Send, {F4}
MouseMove, xpos, ypos
}
Return

10

Re: AHK: Глюки MouseGetPos, CoordMode, MouseMove

Мистика...
Теперь:
Нажимаешь 7 повторяется 1 раз
Нажимаешь 6 повторяется 2 раз
Нажимаешь 5 повторяется 3 раз
Нажимаешь 4 повторяется 4 раз
Нажимаешь 3 повторяется 5 раз
Нажимаешь 2 повторяется 6 раз
Нажимаешь 1 повторяется 1 раз (да именно 1,а не 7.... что было бы хоть закономерно)

11

Re: AHK: Глюки MouseGetPos, CoordMode, MouseMove

Добавь CoordMode, Mouse первой строчкой. В первых двух параметрах команды MouseMove знаки % не нужны.

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

12 (изменено: dvc, 2011-03-07 21:46:53)

Re: AHK: Глюки MouseGetPos, CoordMode, MouseMove

teadrinker пишет:

Добавь CoordMode, Mouse первой строчкой. В первых двух параметрах команды MouseMove знаки % не нужны.

Сори я не понял.
Куда именно добавить? В последнем варианте от ypppu, эта команда и так стоит первой.
или должно начинаться так

CoordMode, Mouse
CoordMode, Mouse, Screen

Напишите пожалуйста свой вариант кода целиком...

13

Re: AHK: Глюки MouseGetPos, CoordMode, MouseMove

Теперь уже стоит! Строки

CoordMode, Mouse
CoordMode, Mouse, Screen

равнозначны. У меня всё работает, как написано в последнем варианте. Если скрипт применяется для какой-то игры, последствия непредсказуемы, т. к. во многих играх стоит защита от скриптов.

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

14

Re: AHK: Глюки MouseGetPos, CoordMode, MouseMove

Вчера довольно долго копошился... Заработало)))
Даже затрудняюсь дать ответ что было не так.