Тема: AHK: Повторение действия при нажатии клавиши
Подскажите пожалуйста ,как сделать,чтобы при однократном нажатии на W , сразу происходило 5-7 кликов.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Подскажите пожалуйста ,как сделать,чтобы при однократном нажатии на W , сразу происходило 5-7 кликов.
Кликов чего? Повторное нажатие W? Или кликов мышки? Приблизительно это так:
~W:: ;При нажатии W будет еще нажато 7 раз.
Loop, 7 ;Цикл повтора 7 раз.
{
Send, {W} ;Нажатие W
}
Return
Если нужно что бы при нажатии на W нажимало 7 раз мышкой, то вместо
Send, {W} ;Нажатие W
Пиши
Click (by itself)
Не получаеться что-то( не могли бы вы ехе сделать и залить куда нибудь? Спасибо!
Опиши подробнее какой вариант тебе нужен!
Нужно для игры сыну,чтобы не долбить W , а при нажатии 1 раз W, раз 5-7 нажималось! Чтобы прыгать легче было.
Возможно не получалось из-за отсутствия задержки, он тупо сразу долбил "W" 7 раз. Поставил задержку в 100мс между нажатиями, получилось следующее:
~W:: ;При нажатии W будет еще нажато 7 раз.
Loop, 7 ;Цикл повтора 7 раз.
{
Send, {w} ;Нажатие W
Sleep, 100
}
Return
Cпасибо что помогаете,но не скрипт ,не готовое ехе не запускается, пишет такое сообщение(Note:The hotkey-W::will not be active because it does not exist in the current
keyboard layout) ,как это можно исправить?
Омг. Впервые вижу такую ошибку. У себя попробовал, все работает замечательно. Возможно из-за того, что это Ноутбук и на нем Вин7 не хочет работать. Попробовать запустить от прав администратора. Или попробовать побаловаться с языками(хотя если бы не та раскладка была, просто не работало, а не ошибку выдавало).
Сейчас вот еще раз перепроверил у себя, все работает замечательно.
да ноут бук и виндос 7,но дело в том ,что мне сделал человек аналогичное ехе ,только не на W, а на пробел,и оно работает замечательно, а сейчас его нет в сети ,и не знаю что делать, может быть драйвер какой нибудь нужен?
$vk57::Send, {vk57 7}
Ошибка всё равно,,,,вот видео сделал,посмотрите пожалуйста и помогите если можете http://www.youtube.com/watch?v=eR-I0igrDLo
$vk57::Send, {vk57 7}
Отлично всё,а как кнопку shift сделать,на включение,отключение скрипта?
Suspend
ToolTip, ENTER, 640, 512
Sleep, 250
Tooltip
Return
$vk57::Send, {vk57 7} ; w/ц
~Shift::
Suspend
If (A_IsSuspended)
{
ToolTip, OFF, 640, 512
Sleep, 250
Tooltip
SoundBeep, 2500, 250
Sleep, 50
SoundBeep, 2500, 250
KeyWait, Shift
}
Else
{
ToolTip, ON, 640, 512
Sleep, 250
Tooltip
SoundBeep, 2500, 250
KeyWait, Shift
}
Return
F12:: ; клавиша завершения работы скрипта
Suspend, Off
ToolTip, EXIT, 640, 512
Sleep, 250
Tooltip
ExitApp
Спасибо огромное,всё работает! Еще 1 вопрос можно? А какой код кнопки(стрелка вверх)? Спасибо
Альтернативный в плане отображения информации вариант:
Gui, -Caption +AlwaysOnTop +Lastfound
Gui, Color, 009966
WinSet TransColor, 009966
Gui, font,w800 cGreen s12,
Gui, Add, Text,, СКРИПТ ЗАПУЩЕН
Gui, Show, Center
Sleep, 500
Gui, Destroy
Return
$vk57::Send, {vk57 7} ; w/ц
~Shift::
Suspend
If (A_IsSuspended)
{
Gui, -Caption +AlwaysOnTop +Lastfound
Gui, Color, FF3333
WinSet TransColor, FF3333
Gui, font,w800 cRed s12,
Gui, Add, Text,, СКРИПТ НА ПАУЗЕ
Gui, Show, Center
Sleep, 500
Gui, Destroy
SoundBeep, 2500, 250
Sleep, 50
SoundBeep, 2500, 250
KeyWait, Shift
}
Else
{
Gui, -Caption +AlwaysOnTop +Lastfound
Gui, Color, 0099FF
WinSet TransColor, 0099FF
Gui, font,w800 cBlue s12,
Gui, Add, Text,, СКРИПТ ВКЛЮЧЕН
Gui, Show, Center
Sleep, 500
Gui, Destroy
SoundBeep, 2500, 250
KeyWait, Shift
}
Return
F12::
Suspend, Off
Gui, -Caption +AlwaysOnTop +Lastfound
Gui, Color, 009966
WinSet TransColor, 009966
Gui, font,w800 cGreen s12,
Gui, Add, Text,, ЗАВЕРШЕНИЕ РАБОТЫ СКРИПТА
Gui, Show, Center
Sleep, 500
Gui, Destroy
ExitApp
Идея взята вот от сюда.
А какой код кнопки(стрелка вверх)?
По поводу определения виртуальных кодов клавиш можно посмотреть в этой теме.
Cпасибо,но вот только что-то не получается,делаю вроде всё правильно vk57 заменяю на vk26 , но не работает.Что я делаю не так? С другими кнопками работает
Разобрался во всем,но есть небольшая проблема:
Сделал количество кликов 1 ,но всё равно при нажатии и удержании клавиши , игрок улетает в небеса))
Как можно сделать,чтобы при удержании клавиши ,выполнялось примерно 5-7 кликов в секунду? то есть эмитировалось простое быстрое нажатие клавиши . Спасибо!
На сколько я понимаю значение времени/количество нажатий для Вас очень актуально. Тогда делим 1 секунду (1000мс) на количество нажатий, чтобы получить время задержки:
если 5 нажатий, то пауза 200мс
если 6 нажатий, то пауза 165мс (округлено)
если 7 нажатий, то пауза 145мс (округлено).
$vk57:: ; префикс $ для того, чтобы клавиша могла запустить сама себя
Random, random_value, 5, 7
If random_value = 5
sleep_value := 200
If random_value = 6
sleep_value := 165
If random_value = 7
sleep_value := 145
Loop, % random_value
{
SendInput, {vk57}
Sleep, % sleep_value
}
KeyWait, vk57
Return
Этим скриптом делал отладку:
vk57::
Random, random_value, 5, 7
If random_value = 5
sleep_value := 200
If random_value = 6
sleep_value := 165
If random_value = 7
sleep_value := 145
Loop, % random_value
{
ToolTip, отладка: колличество повторений %random_value% задержка %sleep_value%
Sleep, % sleep_value
ToolTip
}
KeyWait, vk57
Return
Работает спасибо,но немного медленно. Хотелось бы сделать побыстрее, это возможно?
Хотелось бы сделать побыстрее, это возможно?
Делим не 1000мс а 500мс (пол секунды):
если 5 нажатий, то пауза 100мс
если 6 нажатий, то пауза 85мс (округлено)
если 7 нажатий, то пауза 70мс (округлено)
Полученые результаты заменяем в скрипте.
Всё понял ,но я имел ввиду не это) Я хочу . что бы просто держать кнопку W( не нажимать часто) . а компьютер это рассматривал бы как частое нажатие на W c паузой примерно 50 мил.сек. ,между кликами! первый ваш скрипт работает (я вместо 7 сделал 1) но игрок улетает в небеса ,а мне нужно,что бы была пауза,просто эмитировалось частое нажатие(как вручную) Спасибо!
Я хочу, что бы просто держать кнопку W (не нажимать часто), а компьютер это рассматривал бы как частое нажатие...
Думаю вот тут можно найти для себя полезную информацию, как это можно осуществить.
разобрался, спасибо большое! Сделал так,правильно?
Скажите ещё, как бип сделать менее звонким,а то на уши давит этот0))
Suspend
ToolTip, ENTER, 640, 512
Sleep, 250
Tooltip
Return
$vk57:: ;
{
Send, {vk57} ;
Sleep, 50
}
Return
~Shift::
Suspend
If (A_IsSuspended)
{
ToolTip, OFF, 640, 512
Sleep, 250
Tooltip
SoundBeep, 2500, 250
Sleep, 50
SoundBeep, 2500, 250
KeyWait, Shift
}
Else
{
ToolTip, ON, 640, 512
Sleep, 250
Tooltip
SoundBeep, 2500, 250
KeyWait, Shift
}
Return
F12:: ;
Suspend, Off
ToolTip, EXIT, 640, 512
Sleep, 250
Tooltip
ExitApp
...правильно?
Правильно, только без блоков, они тут не нужны.
$vk57::
Send, {vk57}
Sleep, 50
Return
...как бип сделать менее звонким
Его можно совсем убрать из кода, или почитать про него тут.
Grey ,скажи что я тут намудрил? надо чтобы при нажатии W запускалась 3 раза W,и при нажатии стрелки вверх запускалось 3 раза W
Suspend
ToolTip, ENTER, 640, 512
Sleep, 250
Tooltip
Return
vk26::
Send, {vk57 3}
Sleep, 58
Return
vk57::
Send, {vk57 3}
Sleep, 58
Return
Shift::
Suspend
If (A_IsSuspended)
{
ToolTip, OFF, 640, 512
Sleep, 250
Tooltip
SoundBeep, 2000, 250
Sleep, 50
SoundBeep, 2000, 250
KeyWait, Shift
}
Else
{
ToolTip, ON, 640, 512
Sleep, 250
Tooltip
SoundBeep, 2000, 250
KeyWait, Shift
}
Return
F12:: ; клавиша завершения работы скрипта
Suspend, Off
ToolTip, EXIT, 640, 512
Sleep, 250
Tooltip
ExitApp
...что я тут намудрил?
Не поставил префикс $ перед хоткеем vk57::.
Всё ,спасибо тебе большое, я туплю просто)):rolleyes:
Кликов чего? Повторное нажатие W? Или кликов мышки? Приблизительно это так:
~W:: ;При нажатии W будет еще нажато 7 раз. Loop, 7 ;Цикл повтора 7 раз. { Send, {W} ;Нажатие W } Return
Если нужно что бы при нажатии на W нажимало 7 раз мышкой, то вместо
Send, {W} ;Нажатие W
Пиши
Click (by itself)
Спасибо тебе огромное мил человек,я 6 часов мучался.хотел это простое действие написать в разных программах.только ты мне помог.спасибо ещё раз:)
Возможно не получалось из-за:
Доброго времени суток! При попытке скомпилировать данный скрипт, выдает ошибку. Может такое быть, что код морально устарел? Прошло много лет (здесь должен быть смайлик).
Skanavy, добро пожаловать
Перечитал правила, что не так не увидел. На всякий случай убрал картинку в споллер. Добавил точку в конце скрипта - не помогло. В остальных местах везде есть. Полагаю, что просто новая программа, работает по другому и скрипт не актуален.
Прошло много лет)
Теперь увидели? Почему-то пошла мода завершать текст без точки, даже если в середине точки были. Не знаете, с чем это связано?
Теперь увидели?
Лично меня улыбнуло, что мне удалось найти тему такой давности. Я считаю смайлик уместным, но для вас его уберу. Что до программы, я искал версию того времени и не нашел. Может есть способ включить совместимость?
Если действительно правила прочитали, то странно, что не заметили слова про смайлики и правила цитирования.
Если действительно правила прочитали
С третьего раза увидел, посыпаю голову пеплом.
Нагуглил, что в скрипте надо убрать все запятые, тогда должно заработать. Проверю вечером.
Проблема современной молодёжи в том, что они не могут держать в голове две вещи одновременно. На что-то одно обратил внимание — всё, что было раньше, моментально вылетело.
Проблема современной молодёжи
Я уже далеко не молод, и за трендами новых правил не успеваю следить. Как говорится со своим уставом в чужой монастырь не ходят, поэтому я все исправил.
Я уже далеко не молод
Сожалею, это тоже может быть негативным фактором. Правила цитирования вам освоить так и не удалось.
Сожалею,
О боги...
Вы ещё и верующий? Это частично объясняет ситуацию. Но постарайтесь всё же взять себя в руки, перечитать правила, и исправить свои посты. Мое терпение же не бесконечно.
Исправил цитирование. Убрал запятые из кода, все равно не работает. Попросил нейронку написать скрипт под v2, а он все равно не работает. Видимо не успевает за обновлениями. Судя по гуглу, AHK не узнает синтаксис, что именно не узнает не понятно. Есть идеи?
~w::
; При нажатии W будет симулировано двойное нажатие с задержкой 500 мс.
Click 2, 500
Return
Ошибка:
Исправил цитирование
Я не вижу, что исправили. Исправьте во всех постах.
Я не вижу, что исправили. Исправьте во всех постах.
Поправил.
Теперь непонятно, для какой всё-таки версии AHK нужен скрипт.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться