1 (изменено: Ed11, 2011-12-23 06:49:06)

Тема: AHK: Как решить проблему несрабатывания клавиш хоткея по отдельности?

Есть скрипт. В нем назначен хоткей Space+1

; AHK version:   1.0.48.05
; version := "1.00"
#SingleInstance force
#NoEnv
#Persistent
SetWinDelay, -1
SetBatchLines, -1

Space & 1::
WinGetPos X, Y, width, height, A
XPOS:=Width*.99
YPOS:=Height*0.7
MouseClick, Left, XPOS, YPOS, 1, 0
Sleep, 10
return

Space & 2::
WinGetPos X, Y, width, height, A
XPOS:=Width*0.5
YPOS:=Height*0.5
MouseClick, Left, XPOS, YPOS, 1, 0
Sleep, 10
return

Но сразу же после запуска скрипта (когда хоткей еще не применялся) совсем не обрабатываются нажатия по отдельности клавиш 1 и Space.

Как можно избавиться от этой проблемы и чем она может быть вызвана?

2

Re: AHK: Как решить проблему несрабатывания клавиш хоткея по отдельности?

1 нормально работает, а пробел блокируется, поскольку Вы его используете как модификатор горячих клавиш. Можно сделать, чтобы он всегда проходил, добавив к имени хоткеев тильду.

~Space & 1::

Можно сделать, чтобы он посылался при отпускании клавиши. Тогда он будет посылаться, только если нажат сам по себе.

Space Up:: Send, {Space}

Можно ограничить действие  хоткеев определённым окном.

#IfWinActive, Блокнот
; Код хоткеев.
#IfWinActive

3

Re: AHK: Как решить проблему несрабатывания клавиш хоткея по отдельности?

YMP пишет:

Можно сделать, чтобы он посылался при отпускании клавиши. Тогда он будет посылаться, только если нажат сам по себе.

Space Up:: Send, {Space}

А можно так сразу для всех клавиш задать, чтобы они посылались при отпускании?
Дело в том, что я сейчас в том же самом коде назначил хоткеем Z+WheelUp, и начала точно так же "западать" клавиша Z, как и пробел.

4

Re: AHK: Как решить проблему несрабатывания клавиш хоткея по отдельности?

Можно, задавайте
Срабатывание при отпускании не лучший выбор, я бы ограничился стандартными модификаторами.