1 (изменено: cepera, 2012-11-11 15:52:57)

Тема: AHK: Правильность синтаксиса Send

Добрый день!

Нужен макрос для игры, который бы делал Ctrl,  сдвигался в право, опять Ctrl, опять в право и так 6 раз.

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

 #s::Send, ^{Left 6}

но чего то сомнения закрались..а может

#s::Send, {^Left 6}

?

В доке этот момент как то не совсем понятен. Подскажите  plz!

2 (изменено: creature.ws, 2012-11-11 16:49:50)

Re: AHK: Правильность синтаксиса Send

Если понимать «делал ctrl» как «нажимал и отпускал ctrl» то:

Send {Control}

{left 6} подразумевает 6 «нажатий» клавиши Left.
{^left 6} — ошибка.

сдвигался в право

вправо — right.

делал Ctrl,  сдвигался в право, опять Ctrl, опять в право и так 6 раз.

action := DupString("{Control}{Right}", 6)
#vk53::Send %action%

DupString(str, count) {
    token := str, str := ""
    loop %count%
        str .= token
    return str
}

3

Re: AHK: Правильность синтаксиса Send

Спасибо за помощь! Но чего то не работает по клавише Win+S. Даже в блокноте курсор не двигается...

4

Re: AHK: Правильность синтаксиса Send

«Чего-то» не связано с примером из сообщения #2. Угадать причину почему «не работает» в вашем случае — не возьмусь.

5

Re: AHK: Правильность синтаксиса Send

Ну по идее если маркос проигрывать в блокноте - курсор должен двигаться?

6

Re: AHK: Правильность синтаксиса Send

OFF: creature.ws, видно, без классов и подгружаемых Dll'ок эффект не тот, надо переписать

cepera, скрипт рассчитан на AHK_L версию, с устаревшей офф.версией работать не будет, скорее всего.

Попробуй такой вариант, если скрипт нужен "на раз" (Если будешь в дальнейшем пользоваться AHK, то крайне рекомендуется перейти на версию от Lexicos)

#vk53:: ; win+s
Loop 6 {
   Send {Control}{Right}
}

7 (изменено: creature.ws, 2012-11-11 22:18:56)

Re: AHK: Правильность синтаксиса Send

Курсор мыши или каретка ввода?
Эмуляция нажатия «стрелки вправо» приводит к перемещению каретки на один символ вправо.
Пример работает как описано в первом сообщении.

Irbis, и в 1.0.48.05 работать будет, там ведь нечему «не работать»
Мне кажется, лучше скармливать готовую строку такой умной команде как send, чем теребить её в цикле.

OFF: Lexikos

8

Re: AHK: Правильность синтаксиса Send

Irbis пишет:

OFF: creature.ws, видно, без классов и подгружаемых Dll'ок эффект не тот, надо переписать

cepera, скрипт рассчитан на AHK_L версию, с устаревшей офф.версией работать не будет, скорее всего.

Попробуй такой вариант, если скрипт нужен "на раз" (Если будешь в дальнейшем пользоваться AHK, то крайне рекомендуется перейти на версию от Lexicos)

#vk53:: ; win+s
Loop 6 {
   Send {Control}{Right}
}

Все понял! Программу качал с http://www.autohotkey.com

Ваш вариант работает.

Как вариант, еще можно сделать по простому

^!a::
Send,{Control}{Control}{Right}
Send,{Control}{Control}{Right}
Send,{Control}{Control}{Right}
Send,{Control}{Control}{Right}
Send,{Control}{Control}{Right}
Send,{Control}{Control}{Right}
return

Спасибо большое!

9

Re: AHK: Правильность синтаксиса Send

А для чего {Control}{Control}? В первом сообщении об этом не упоминалось. Что по-вашему произойдёт при выполнении этого участка кода?

10

Re: AHK: Правильность синтаксиса Send

creature.ws пишет:

А для чего {Control}{Control}? В первом сообщении об этом не упоминалось. Что по-вашему произойдёт при выполнении этого участка кода?

ну два раза Ctrl будет нажат? нет?

11 (изменено: creature.ws, 2012-11-11 22:29:02)

Re: AHK: Правильность синтаксиса Send

Будет нажат два раза, да.

делал Ctrl

Это значит «нажимал два раза»?

12

Re: AHK: Правильность синтаксиса Send

creature.ws пишет:

Будет нажат два раза, да.

делал Ctrl

Это значит «нажимал два раза»?

Нет! Это я описывал комбинацию с одим Ctrl+Right.

А сейчас еще пробую Ctrl+Ctrl+Right - она тоже нужна.

Но пока в игре не работает:-) Видать она блокирует как то...

13

Re: AHK: Правильность синтаксиса Send

Одно дело нажатие и отпускание клавиши Ctrl и последующее нажатие и отпускание клавиши Right, другое дело комбинация ctrl и right.
Нажатие с модификатором: ^{Right}

14

Re: AHK: Правильность синтаксиса Send

creature.ws пишет:

Одно дело нажатие и отпускание клавиши Ctrl и последующее нажатие и отпускание клавиши Right, другое дело комбинация ctrl и right.
Нажатие с модификатором: ^{Right}

Ага. Не точно написал видимо в #1

Нужно:
1. Нажать Ctrl
2. Отпустить Ctrl
3. Нажать Ctrl
4. Отпустить Ctrl
5. Перейти вправо

Это уже по другому делать?

Повторить 1-5  - 6 раз.

15

Re: AHK: Правильность синтаксиса Send

Нет, это делать так же.