1 (изменено: GOSPODBOGTROICA, 2020-03-28 22:54:30)

Тема: Зажатие кнопки

Зажимаем кнопку Z
происходят нажатия других кнопок пока не отпустим Z
напишу как я примерно хочу видеть код, он не рабочий.


sc2C:
if sc2C down
then
loop
sendinput, {q}
If  sc2C up, then
break
return

что то в этом роде не понимаю как прописать его.

2

Re: Зажатие кнопки

GOSPODBOGTROICA


*$z::
While GetKeyState("vk5A", "P")
{
	SendInput,{vk51}
	sleep,1
}
return

3 (изменено: GOSPODBOGTROICA, 2020-03-28 21:25:02)

Re: Зажатие кнопки

Murka
Спасибо все четко работает, а можно расшифровать *$z, обязательно так писать или можно просто z или "vk5A" или "sc2C" , и не подскажете чтобы только в определенном процессе работало? что прописать, и еще вопрос ahk может прочитать в игре нажалась ли кнопка или нет? ну в скрипте например она сработала а в игре может не сработала она может проверить?
Или проверить была ли нажата в игре кнопка, и не нажимать её, или новую ветку надо создавать на другой вопрос уже, заранее извиняюсь.

4 (изменено: Murka, 2020-03-28 22:11:25)

Re: Зажатие кнопки

GOSPODBOGTROICA

http://www.script-coding.com/AutoHotkey/Hotkeys.html Ну вот вам справочка. Там говорится про эти *, $ символы.

5

Re: Зажатие кнопки

GOSPODBOGTROICA

Для какой игры вам нужен этот скрипт?

6 (изменено: GOSPODBOGTROICA, 2020-03-29 00:51:29)

Re: Зажатие кнопки

Murka мне для доты 2, скрипт просто прокликивает все, а нужные способности могут не прожаться а он может выбрать другую цель, через процесс игры он не сможет проверять ?

А Скрипт можно остановить в тот момент когда отпускаешь кнопку, чтобы он до конца не тыкал и не ждал?


*$z::
While GetKeyState("vk5A", "P")
{
Sendinput, {f5}
sleep, 		
Sendinput, {f6}
sleep, 300
Sendinput, {5}
sleep, 300
Sendinput, {6}
sleep, 300
Sendinput, {7}
sleep, 300
Sendinput, {9}
sleep, 300
Sendinput, {0}
sleep, 300
Sendinput, {tab}{tab}
sleep, 300
}
return

Вообще желательно чтобы, он как то мог проверить выполнилось ли дейстиве или нет, а те каторые выполнились чтобы не повторялись, выполнялись только те каторые не выполнились, пока нажата кнопка, sleep, вообще поидее не нужна, просто действия перескакивают или не выполняются, приходиться зажимать кнопку, чтобы они по новой нажались, какие то кнопки прожались, отпускаю кнопку, скрипт до конца выполняется, можно остановить в тот момент когда отпускаю?

7 (изменено: Murka, 2020-03-29 17:51:19)

Re: Зажатие кнопки

GOSPODBOGTROICA

Я пытался сделать код более компактным, но не получилось.


#SingleInstance, Force

*$z::
While GetKeyState("vk5A", "P")
{
SendInput, {f5}
sleep, 300
If GetKeyState("vk5A", "P") = 0
	break
SendInput, {f6}
sleep, 300
If GetKeyState("vk5A", "P") = 0
	break
SendInput, {5}
sleep, 300
If GetKeyState("vk5A", "P") = 0
	break
SendInput, {6}
sleep, 300
If GetKeyState("vk5A", "P") = 0
	break
SendInput, {7}
sleep, 300
If GetKeyState("vk5A", "P") = 0
	break
SendInput, {9}
sleep, 300
If GetKeyState("vk5A", "P") = 0
	break
SendInput, {0}
sleep, 300
If GetKeyState("vk5A", "P") = 0
	break
SendInput, {Tab 2}
sleep, 300
If GetKeyState("vk5A", "P") = 0
	break
}
return

8

Re: Зажатие кнопки

Эх, Murka...

*$z::
for k, v in ["F5", "F6", "5", "6", "7", "9", "0", "Tab 2"] {
   SendInput, % "{" . v . "}"
   Sleep, 300
} until !GetKeyState("vk5A", "P")
Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

9

Re: Зажатие кнопки

teadrinker

А что если задержка будет всё время разной? 100, 250, 300

10

Re: Зажатие кнопки

for k, v in [["F5", 100], ["F6", 250], ["5", 300] ...] 
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

11 (изменено: Murka, 2020-03-29 20:29:33)

Re: Зажатие кнопки

teadrinker

.

12 (изменено: Murka, 2020-03-29 20:31:25)

Re: Зажатие кнопки

teadrinker

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


*$z::
for k, v in [["h", 100], ["e", 250], ["l", 500], ["l", 750], ["o", 1000]] {
   SendInput, % "{" . v . "}"
   Sleep, % v
} until !GetKeyState("vk5A", "P")
return

13

Re: Зажатие кнопки

В данном случае v — это массив вида ["h", 100], соответственно к его элементам нужно обращаться по индексам, 1 и 2.

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

14

Re: Зажатие кнопки

teadrinker

Я правильно написал?


*$z::
for k, v in bga := [["h", 100], ["e", 250], ["l", 500], ["l", 750], ["o", 1000]] {
	;MsgBox, % bga[k, 2]
	SendInput, % "{" . bga[k, 1] . "}"
	Sleep, % bga[k, 2]
} until !GetKeyState("vk5A", "P")
return

15

Re: Зажатие кнопки

teadrinker

У меня ещё вопрос, зачем нужны точки внутри фигурных скобок?

16

Re: Зажатие кнопки

Murka пишет:

Я правильно написал?

Нет, усложнили.

*$z::
for k, v in bga := [["h", 100], ["e", 250], ["l", 500], ["l", 750], ["o", 1000]] {
	SendInput, % "{" . v[1] . "}"
	Sleep, v[2]
} until !GetKeyState("vk5A", "P")
return

Три точки не нужны, я просто показал, что можно продолжить.

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

17 (изменено: Murka, 2020-03-29 21:48:49)

Re: Зажатие кнопки

Спасибо.