1

Тема: AHK: Возвращение курсора на n-символов назад

Здравствуйте. Я написал свой скриптик, который делится на 2 части: 1) команды которые сразу отправляются в чат. 2) команды которые требуют самостоятельной отправки. И вот с вторым у меня случилась проблема.
Мне надо дополнить эту часть так, что бы курсор в окне чата сам возвращался на какое-то количество символов назад (кол-во символов я задаю сам для каждой строки), но поиск в гугле мне не помог найти нужного решения. Сам скрипт

SetKeyDelay, 0, 50

toSend(text)
{
    Send /
    Sleep 200
    Send %text%
    Send {Enter}
}

toChat(text)
{
    send /
    Sleep 200
    Send %text%
}

;команды наблюдения за игроками

^PgUp::toSend("gamemode spectator")
^PgDn::toSend("gamemode survival")
^Delete::toSend("fly")
^End::toSend("god")
^Home::toSend("v")

;команды выдачи наказаний (в разработке)

^Numpad0::toChat("tempmute  30m спам")
^Numpad1::toChat("mute ")
^Numpad2::toChat("tempban 1d ")
^Numpad3::toChat("ban ")

2

Re: AHK: Возвращение курсора на n-символов назад

Я так понимаю такой вариант вас не устроит?


Loop %n%
{
    Send, {Left}
}

3

Re: AHK: Возвращение курсора на n-символов назад

EV.Jack

Не совсем понятно чего вы хотите осуществить скриптом.
Напишите как-то иначе суть проблемы, может в виде команд как понимаете.
Например:

Ждать, 4000 ; 4 сек.
Нажать, Кл.Вверх, 4 раза
Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

4

Re: AHK: Возвращение курсора на n-символов назад

__Михаил__

^Numpad0::toChat("tempmute  30m спам") & ждать 200мс. Нажать влево 9 раз.

5

Re: AHK: Возвращение курсора на n-символов назад

qqlexa
Я находил такой вариант и не совсем понял как его интегрировать в скрипт, потому что я только начал учится писать на ahk.
Буду очень признателен, если вы покажете как можно интегрировать ваше решение!

6

Re: AHK: Возвращение курсора на n-символов назад

Мной было найдено решение!
Выглядит оно вот так:

toChat(text, shift)
{
    send /
    Sleep 200
    Send %text%
    SendInput, {left %shift%}
}

^Numpad0::toChat("tempmute  30m спам", 9)
^Numpad1::toChat("mute ", 0)
^Numpad2::toChat("tempban  1d Гриф", 8)
^Numpad3::toChat("ban ", 0)

7 (изменено: qqlexa, 2020-07-01 10:28:41)

Re: AHK: Возвращение курсора на n-символов назад

EV.Jack, для чего передавать в функцию значение shift = 0?
Параметр по умолчанию

8

Re: AHK: Возвращение курсора на n-символов назад

qqlexa, иначе скрипт не компилировался, я решил попробовать и все получилось.

9

Re: AHK: Возвращение курсора на n-символов назад

EV.Jack, даже используя значение по умоланию ноль?

10

Re: AHK: Возвращение курсора на n-символов назад

EV.Jack

Дело в том, что вы немного не верно создали функцию:

toChat(text, shift := 0)
{
    send /
    Sleep 200
    Send %text%
    SendInput, {left %shift%}
}

Теперь можно не указывать второй аргумент.

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

11

Re: AHK: Возвращение курсора на n-символов назад

__Михаил__, знаете это не удивительно, я только начал учить ахк.

12 (изменено: qqlexa, 2020-07-02 13:54:05)

Re: AHK: Возвращение курсора на n-символов назад

__Михаил__, во время, когда людям тыкают носом, они не всегда успевают подумать, поэтому считаю Вашу помощь медвежьей услугой.