1

Тема: AHK: Проблема с русской раскладкой

;toggle key
$g::
if running
  settimer, sendkey, off
else
  settimer, sendkey, 3000
running := !running
return


sendkey:
send, g
return

http://i32.fastpic.ru/big/2011/0929/25/b7bdc313926e929e090283705b94c625.jpg

2

Re: AHK: Проблема с русской раскладкой

$vk47::
if running
  settimer, sendkey, off
else
  settimer, sendkey, 3000
running := !running
return

sendkey:
send, {vk47}
return

3

Re: AHK: Проблема с русской раскладкой

Спасибо большое, заодно подчитнул про виртуальные клавиши.

А вы можете сделать чтобы при включении кода он сразу начинал посылать "g", а то на данный момент надо нажимать "выключатель". Не могу понять как это сделать.

4 (изменено: hohmuch, 2011-10-03 20:39:48)

Re: AHK: Проблема с русской раскладкой

Пытаюсь разобраться как работает таймер, все равно не могу понять.

$F12::
if vklucheno
  settimer, posylg, off
else
  settimer, posylg, 3000
vklucheno := not vklucheno
return
posylg:
send, {vk47}
return

Кажется, что если кнопка не нажата, то таймер должен работать, а если нажата то послать g и отключиться.

5

Re: AHK: Проблема с русской раскладкой

hohmuch пишет:

...как работает таймер...

Таймер работает в зависимости от значения переменной vklucheno

; $ этот знак тут не нужен, ибо клавиша ф12 не посылает саму-себя
F12:: ; хоткей, по нажатию на который запускается проверка переменной "vklucheno"
   cnt:= ; сброс переменной-счётчика
   If vklucheno ; если переменная имеет положительное значение, что нетак, поскольку она с включением скрипта пуста
     SetTimer, posylg, off ; то, остановка таймера "posylg"
   Else ; или, что с певого нажатия именно и происходит
     SetTimer, posylg, 30 ; включает таймер "posylg" с интервалом в 30 мс (время уменьшено для наглядности работы таймера)
   vklucheno := Not vklucheno ; далее операция с присвоением, действует по принципу переключателя
   MsgBox,,, % "vklucheno = "vklucheno, 1 ; отображение значения переменной "vklucheno"
   Return

posylg: ; метка для таймера
   ++cnt ; переменная-счёчик
;   send, {vk47} ; содержимое метки
   TrayTip,, % "посыл G клавиши (число раз: "cnt ")" ; отображение работы таймера
   Return

Другие примеры, разные в плане составления, но одинаковые по действию:

F12::
   If vklucheno
   {
      vklucheno:=0
      SetTimer, posylg, off
   }
   Else
   {
      vklucheno:=1
      SetTimer, posylg, 30
   }
   Return

posylg:
   Send, {vk47}
   Return
F12::SetTimer, posylg, % (vklucheno := Not vklucheno) ? 30 : "Off"

posylg:
   Send, {vk47}
   Return

6

Re: AHK: Проблема с русской раскладкой

hohmuch пишет:

...сделать чтобы при включении кода он сразу начинал посылать "g", а то на данный момент надо нажимать "выключатель".

vklucheno:=1
SetTimer, posylg, 3000
Return

F12::
   If vklucheno
     SetTimer, posylg, off
   Else
     SetTimer, posylg, 3000
   vklucheno := Not vklucheno
   Return

posylg:
   Send, {vk47}
   Return