1 (изменено: Andrey3242, 2013-05-07 04:58:55)

Тема: AHK: Отключение одной клавиши при нажатии другой клавиши.

Надо что бы при одновременном нажатии и удержании CapsLock и LShift, CapsLock работала как CapsLock, а LShift не работала как будто её и не нажимали.

Еще просьба по одному скрипту: Клавиша LShift при её нажатии и удержании начинает работать через секунду, а при отпускании сразу прекращает работу.

*LShift::
   sleep 1000
   if GetKeyState("LShift", "P")
      SendInput {LShift Down}
Return
*LShift Up:: SendInput {LShift Up}

Надо что бы вдобавок по LShift работала и RShift обыкновенно без всяких задержек.

2

Re: AHK: Отключение одной клавиши при нажатии другой клавиши.

по LShift работала и RShift

То есть замена срабатывала как при нажатии правого так и при нажатии левого? В таком случае вместо

LShift::

используй

+::

3

Re: AHK: Отключение одной клавиши при нажатии другой клавиши.

Надо что бы при одновременном нажатии и удержании CapsLock и LShift, CapsLock работала как CapsLock, а LShift не работала как будто её и не нажимали.

s=0 ;по умолчанию CapsLock выключен

+CapsLock::
if s = 0
{
 SetCapsLockState, on
 s = 1
 return
}
if s = 1
{
 SetCapsLockState, off
 s = 0
 return
}
return

На сколько я знаю, то в таком случае shift посылаться не будет

4

Re: AHK: Отключение одной клавиши при нажатии другой клавиши.

То есть замена срабатывала как при нажатии правого так и при нажатии левого? В таком случае вместо

Нет, что бы по LShift, помимо LShift с задержкой еще и RShift без задержки включался и выключался.

5

Re: AHK: Отключение одной клавиши при нажатии другой клавиши.

Может так?

*LShift::
if GetKeyState("LShift", "P") 
 SendInput {RShift Down}   
sleep 1000
if GetKeyState("LShift", "P")  
 SendInput {LShift Down}
Return

*LShift Up::
SendInput {LShift Up}
SendInput {RShift Up}
return

6 (изменено: Andrey3242, 2013-05-06 11:59:46)

Re: AHK: Отключение одной клавиши при нажатии другой клавиши.

Залипает LShift.
Но так как мне достаточно что бы здесь две любых клавиши работали по LShift. То сделал:

*LShift:: 
if GetKeyState("LShift", "P") 
 SendInput {AppsKey Down} 
sleep 1000
if GetKeyState("LShift", "P")  
 SendInput {RShift Down}
Return

*LShift Up::
SendInput {AppsKey Up}
SendInput {RShift Up}
Return

И все работает.

А вот:

s=0 ;по умолчанию CapsLock выключен

+CapsLock::
if s = 0
{
 SetCapsLockState, on
 s = 1
 return
}
if s = 1
{
 SetCapsLockState, off
 s = 0
 return
}
return

Не работает. CapsLock только залипает и все.

7

Re: AHK: Отключение одной клавиши при нажатии другой клавиши.

s=0 ;по умолчанию CapsLock выключен

+CapsLock::
if s = 0
{
 SetCapsLockState, on
 s = 1
 return
}
if s = 1
{
 SetCapsLockState, off
 s = 0
 return
}
return

Эм... недосмотрел. Не знаю откуда это и почему я это написал, но это и НЕ ДОЛЖНО РАБОТАТЬ.