1 (изменено: Виталий, 2012-11-24 12:53:26)

Тема: AHK: В зависимости от условия назначить клавиши.

Необходимо при нажатии "pause" в зависимости от условия назначить различные значения нескольким клавишам:

var := 0

*vk13::   ; при нажатии pause
If var   ; если var <> 0
{
*vk44::vk44 ; возвращаем клавишам d, f, g их стандартные значения
*vk46::vk46 ; (необходимо просто отменить назначение, но я не нашёл такой команды)
*vk47::vk47 ;
}
Else    ; если var = 0
{
*vk44::numpad1 ; назначаем клавишам d, f, g значения numpad1, numpad4, numpad5 соответственно
*vk46::numpad4 ;
*vk47::numpad5 ;
}
var:=!var ;    переключаем var
Return

Т.е. я хочу, чтобы "pause" работала как переключатель.
При запуске данного скрипта я получаю:

Line Text: **vk44
Error: Duplicate hotkey.

Прошу помочь мне с исправлением данной ошибки!

2

Re: AHK: В зависимости от условия назначить клавиши.

Для переназначения горячих клавиш используйте команду

Hotkey

3 (изменено: Виталий, 2012-11-24 13:36:32)

Re: AHK: В зависимости от условия назначить клавиши.

Спасибо. Таким образом, мой скрипт должен выглядеть так ?

var := 0

*vk13::   ; 
If var   ; 
{
Hotkey, *vk44, MyLabel1 ;
Hotkey, *vk46, MyLabel2 ;
Hotkey, *vk47, MyLabel3 ;
}
Else
{
Hotkey, *vk44, MyLabel4 ;
Hotkey, *vk46, MyLabel5 ;
Hotkey, *vk47, MyLabel6 ;
}
var:=!var ;    
Return

MyLabel1:
send vk44 ;
Return
MyLabel2:
send vk46 ;
Return
MyLabel3:
send vk47 ;
Return
MyLabel4:
send numpad1 ;
Return
MyLabel5:
send numpad4 ;
Return
MyLabel6:
send numpad5 ;
Return

Выглядит как-то не рационально

4

Re: AHK: В зависимости от условия назначить клавиши.

*vk13:: Var := !Var
$vk44:: Send, % Var ? "{vk44}" : "{numpad1}"
; и т.д.

5

Re: AHK: В зависимости от условия назначить клавиши.

Спасибо! Будь добр, прокомментируй вторую строчку! Я такого синтаксиса не видел в примерах. Можешь дать ссылку на мануал?

6 (изменено: creature.ws, 2012-11-30 17:53:31)

Re: AHK: В зависимости от условия назначить клавиши.

pause::toggleState := !toggleState

#if toggleState
    vk44::numpad1
    vk46::numpad4
    vk47::numpad5
#if

Справка:

Run % SubStr(A_AhkPath, 1, -3) "chm"

7

Re: AHK: В зависимости от условия назначить клавиши.

creature.ws, красиво. Тогда, до кучи, сразу и ссылку на статью («hh.exe» + Ваше + «::/docs/Hotkeys.htm») приписывать?

8 (изменено: creature.ws, 2012-12-01 16:11:57)

Re: AHK: В зависимости от условия назначить клавиши.

Или

Run % SubStr(A_AhkPath, 1, -3) "chm",, max, hhPID
WinWait, ahk_pid %hhPID%
SendMessage, 0x1330, 1,, SysTabControl321
ControlFocus, Edit1
SetDefaultMouseSpeed, 80
SetKeyDelay, 50, 10
Blockinput, MouseMove
MouseMove, % A_CaretX, % A_CaretY
Send +{Home}{Del}Ternary operator{Enter}
Blockinput, MouseMoveOff
ExitApp