1 (изменено: ievgenS, 2018-03-09 16:56:15)

Тема: AHK: Активация части скрипта нажатием клавиш

Добрые люди, помогите. Как сделать, что бы при нажатии F1, F2, F3... активировался определенный скрипт? Либо активировать определенную часть скрипта?
К примеру:
Нужно чтобы верхний скрипт работал после нажатия кнопки F1, а нижний только после нажатия кнопки F2

sc4F::send {sc1F down} {sc1F up}
sc4F::send {sc4B down} {sc4B up}

Необходимо, что бы оба были назначены на одну кнопку. Поиск мне не дал результатов(. Дайте, хотя бы команды с помощью которых это можно сделать, дальше я загуглю.

2

Re: AHK: Активация части скрипта нажатием клавиш

ievgenS, поставьте в предложениях недостающие точки и заглавные буквы. Добавьте префикс скриптового языка к названию темы.

3 (изменено: qqlexa, 2018-03-09 19:54:31)

Re: AHK: Активация части скрипта нажатием клавиш

Не знаю как можно сделать чтобы активировать "части скрипта", но знаю что можно просто запускать отдельные скрипты.
Создаем 3 скрипта в одной папке(чтобы не указывать полный путь):
1.ahk
2.ahk
3.ahk
В первом(1.ahk):


F1::            ;// Запускаем второй скрипт
run, 2.ahk
return
F2::           ;// Запускаем третий скрипт
run, 3.ahk
return
F3::           
reload

Во втором(2.ahk):


sc4F::
send {sc1F down} {sc1F up}
sleep 100 
ExitApp

В третьем(3.ahk)


sc4F::
send {sc4B down} {sc4B up}
sleep 100 
ExitApp

Не проверял, но должно работать.

4

Re: AHK: Активация части скрипта нажатием клавиш

Вооот не совсем то, но работает так как нужно, если сделать:

sc4F::
send {sc1F down} {sc1F up}
sleep 100 
sc3B::ExitApp

спс, друг. Если кто-то знает как сделать все в одном скрипте, будет вообще шикарно.

5

Re: AHK: Активация части скрипта нажатием клавиш

Абсурдно, но вот что придумал:


x:=0       ;// Переменная которая регулирует команды
return
F1::        ;// Если x = 0 присвоить для переменной - x, число 1. Иначе x-=1
if x=0  ;// Если x = 0 пойти на метку x+, иначе x-
{
goto, x+   ;// Пойти на метку x+
}
goto x-     ;// Пойти на метку x-
return
sc4F:: ;// Активация скрипта
if x=1         ;// Проверяет что нажимать
{
send {sc1F down} {sc1F up}
sleep 100
goto, sl
}
send {sc4B down} {sc4B up}
sleep 100
sl:
msgbox, Успешно
return
x+:          ;// Метка которая присваивает переменной значение 1
x+=1
msgbox, x = %x%
return
x-:         ;// Метка которая забирает у переменной значение 1
x-=1
msgbox, x = %x%
return
F3::
reload

Проверил, всё работает. Боксы можете убрать, всунул для наглядности.

6

Re: AHK: Активация части скрипта нажатием клавиш

В скрипте запрещены дубликаты клавиш, но вы можете переназначать их командой Hotkey:


Hotkey, sc4F, metka1, on ;По-умолчанию при нажатии sc4F (NumpadEnd) сработает "metka1".

F1:: ;Переназначение клавиши NumpadEnd.
Hotkey, sc4F, metka1, on ;При нажатии NumpadEnd будет работать метка "metka1".
return

F2::  ;Переназначение клавиши NumpadEnd.
Hotkey, sc4F, metka2, on ;При нажатии NumpadEnd будет работать метка "metka2".
return

metka1: 
send {sc1F down} {sc1F up}
return

metka2:
send {sc4B down} {sc4B up}
return