1 (изменено: bestduelwarrior, 2017-08-25 02:32:32)

Тема: AHK:вопрос про скрипт

Добрый день
Я пытался разобраться самостоятельно, но видимо мне не хватило усердия, поэтому прошу помощи
Мне нужно создать два скрипта, которые умножают результат от однократного физического нажатия определенной клавиши (NUM 2) в 2 и в 3 раза.
Проще говоря получить эффект как от двойного ФИЗИЧЕСКОГО нажатия на клавишу, но при единичном
ВАЖНО: Скрипт должен работать при запуске определенной программы!
Подскажите как это можно провернуть, кому не трудно, буду очень благодарен

Вот моя попытка разработки кода.

F11::Suspend

; KP2 - KP2KP2KP2
SetKeyDelay, 0
vk62sc050::SendEvent, {vk62sc05}{vk62sc050}{vk62sc050}

vk62sc050::    ;При нажатии Numpad2 будет еще нажато 3 раз.
Loop, 3    ;Цикл повтора 3 раз.
        {
        Send, {vk62sc050}    ;Нажатие Numpad2
        }
Return

диапазон срабатывания (время зажатой клавиши) между каждым срабатыванием для имитации нажатия должен быть минимальным

2 (изменено: vvvzn78, 2017-09-13 04:17:32)

Re: AHK:вопрос про скрипт


sc50::  ; - клавиша NumPad2
  Send {sc50} ; - просто "факт": клавиша нажата, - нажать её
return

sc51::  ; - NumPad3
  Send {sc51}
return

;Клавиша(ы), которую Вы хотите нажать N-раз, например 'Ctrl-V':
^sc2f::
    ;Определить, сколько раз нужно нажать данную клавишу,
    ; если перед этим была нажата клавиша (секунду назад или на прошлой неделе)...:
    n := A_PriorHotkey == "sc50" ?  2 : A_PriorHotkey == "sc51" ?  3 : 1  ; - иначе нажать один раз
    Loop % n
    {
        Send {LControl down}{sc2f}
    }
return

3 (изменено: stealzy, 2017-09-13 14:43:39)

Re: AHK:вопрос про скрипт

vvvzn78, сам то хоть запускал?
Где откопал этот некро-пост, и зачем в него ответил, если сам не разобрался? Топик-стартер ответа уже давно не ждет.
bestduelwarrior
Вы посылаете клавишу, на которую установили бинд.
Запустите код ниже, нажмите Numpad1 и подумайте, почему посылается цифра 3, а не 2:

Numpad1::Send {Numpad2}
Numpad2::Send {Numpad3}

Чтобы горячая клавиша могла посылать саму себя, к ней нужен префикс, подробнее см. справку в разделе "Горячие клавиши" в русской или Basic Usage → Hotkeys в оригинальной.
В остальном все верно.

bestduelwarrior пишет:

SetKeyDelay, 0 ... (время зажатой клавиши) ... должен быть минимальным

Вы сделали минимальным время между нажатиями, а не самого нажатия.
Ну и запись vk62sc050 — избыточная, достаточно vk62 и то vk-коды обычно используют для буквенных символов.