1 (изменено: Indomito, 2012-03-27 15:42:33)

Тема: AHK: Как использовать Send с аргументом переменная?

И так два фрагмента (не нужное я опустил)

btJoy1 := 1
btJoy1Key := "1"
btJoy1KeyA := "5"
;btJoy1KeyB := "" не определено, т.к. избыточность.

btJoy2 := 2
btJoy2Key := "2"
btJoy2KeyA := "6"

btJoy3 := 3
btJoy3Key := "3"
btJoy3KeyA := "7"

btJoy4 := 4
btJoy4Key := "4"
btJoy4KeyA := "8"

btJoy8 := 8
btJoy4Key := "vk2E"
btJoy4KeyA := "Tab"

и

;=============Начало обработки кнопок с 1 по 12==
;-1
lbJoy1:
if (fShiftA)
  send %btJoy1KeyA%
 else if (fShiftB)
  send %btJoy1KeyB%
else
  send %btJoy1Key%
return
;-2
lbJoy2:
if (fShiftA)
  send %btJoy2KeyA%
 else if (fShiftB)
  send %btJoy2KeyB%
else
  send %btJoy2Key%
return
;-3
lbJoy3:
if (fShiftA)
  send %btJoy3KeyA%
 else if (fShiftB)
  send %btJoy3KeyB%
else
  send %btJoy3Key%
return
;-4
lbJoy4:
if (fShiftA)
  send %btJoy4KeyA%
 else if (fShiftB)
  send %btJoy4KeyB%
else
  send %btJoy4Key%
return
;-8
lbJoy8:
if (fShiftA)
  send %btJoy8KeyA%
 else if (fShiftB)
  send %btJoy8KeyB%
else
  send %btJoy8Key%
return

Секция по 8 кнопке джойстика не работает, т.е. не работает передача Enter, Tab и другие не литеральные символы.
Как правильно их записать?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

2

Re: AHK: Как использовать Send с аргументом переменная?

Да тут была ошибка/опечатка

btJoy8 := 8
btJoy4Key := "vk2E"
btJoy4KeyA := "Tab"

исправил на

btJoy8 := 8
btJoy8Key := "vk2E"
btJoy8KeyA := "Tab"

но проблема осталась.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

3

Re: AHK: Как использовать Send с аргументом переменная?

Send {Tab}

Фигурные скобки требуются.

4

Re: AHK: Как использовать Send с аргументом переменная?

Это я знаю, но как это написать когда аргументом Send является переменная?
Так - Send {%btJoy8KeyA%} или как то ещё?

Просто я перебрал кучу вариантов.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

5

Re: AHK: Как использовать Send с аргументом переменная?

Вариантов не более кучки

var := "tab"
c::send {%var%}
x::send % "{" . var . "}"
z::send % "{" var "}"

6 (изменено: Indomito, 2012-03-27 16:47:02)

Re: AHK: Как использовать Send с аргументом переменная?

Если я правильно понял....

btJoy8KeyA := "Tab"
....
send {%btJoy8KeyA%}

Да?

Да, правильно понял

Спасибо.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

7

Re: AHK: Как использовать Send с аргументом переменная?

Кстати можно проще.

btJoy8KeyA := "{Tab}"
....
send %btJoy8KeyA%

если send обрабатывается внутри функции, вот так например

fnKeyJoy(KeyA,KeyB,Key) 
{
global fShiftA, fShiftB
if (fShiftA) 
       send %KeyA%
 else if (fShiftB) 
       send %KeyB%
else 
      send %Key%
return
}
"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download