1

Тема: Несколько вариантов нажатий клавиш в одном скрипте

Подскажите возможно ли и как написать скрипт который выполнялся бы пока нажата клавиша W: зажимал Shift+LeftMouseClick и вместе с этим прожимал постоянно ещё несколько клавиш, допустим 1, 2, 3. Реально ли при этом добавить прожатие ещё одной клавиши через определённое время, допустим раз в 5 секунд.
Я просмотрел темы, которые были созданы в данном разделе, не заметил, чтобы похожий случай уже разбирался, если я его пропустил, дайте ссылку.

2 (изменено: yalanne, 2015-09-22 00:27:55)

Re: Несколько вариантов нажатий клавиш в одном скрипте

vk57::    ;  Клавиша "W\Ц" в виде Virtual-Key нужен что бы не было ошибки если вкл рус раскладка.
SendInput {Shift Down}{LButton Down} ; зажимаем шифт и левую кнопку
While GetKeyState(A_ThisHotkey,"p") ; Цикл. Будет работать пока клавиша w не отпущенна.
    if DllCall("Sleep",Int,10) true and (A_TickCount > T) && (T := A_TickCount + 5000) ; Dll-Sleep это альтернатива простому "sleep 10"(занимает меньше места), задержка нужна что бы не была нагрузка на процессор. Если количество тиков больше чем в переменной(при старте 0, это больше)), то задаем врямя в мс через сколько же снова сработать(и так бесконечно пока цикл не прервется отпусканием клавиши).
        SendInput 1 ; нажатие каждые 5 сек.
SendInput {Shift Up}{LButton Up}  ; Если цикл прерван это значит что кнопка отжата(W), отжимаем шифт левую кнопку мыши.
return ; конец.
+ без коментов
vk57::
SendInput {Shift Down}{LButton Down} 
While GetKeyState(A_ThisHotkey,"p") 
    if DllCall("Sleep",Int,10) true and (A_TickCount > T) && (T := A_TickCount + 5000) 
        SendInput 1
SendInput {Shift Up}{LButton Up}  
return
+ И вот второй вариант. тут будут с разным интервалом времени нажиматься кнопки
vk57:: 
SendInput {Shift Down}{LButton Down} 
While GetKeyState(A_ThisHotkey,"p") 
{
    if (A_TickCount > T1) && (T1 := A_TickCount + 5000) 
        SendInput 1 ; нажатие каждые 5 сек.
        
     if (A_TickCount > T2) && (T2 := A_TickCount + 3000) 
        SendInput 2 ; нажатие каждые 3 сек.
        
    sleep 10
}
SendInput {Shift Up}{LButton Up}  
return 

3

Re: Несколько вариантов нажатий клавиш в одном скрипте

Да, спасибо большое, больше понравился второй вариант с пропиской таймера на каждую клавишу.