Вот пример скрипта (к сожалению последний, рабочий вариант в машине, и тока на выходных смогу выложить):
; Скрипт для подключения автомобильного двойстика Sony X4S к CarPc
; *********************** Секция настроек начало ***********************
JoystickNumber = 1
VolumeStep = 5
; Погрешность определения значений
KeyGetDelta = 2
; Значения кнопок
JKey_OFF = 1
JKey_ATT = 1
JKey_MUTE = 1
JKey_X1 = 1
JKey_X2 = 1
JKey_PREV = 1
JKey_NEXT = 1
JKey_VOLD = 1
JKey_VOLU = 1
JKey_SOURCE = 1
; Переменная в которой запоминаем громкость (для Mute)
MUTE_SOUND = 0
; *********************** Секция настроек конец ***********************
#SingleInstance
SetFormat, float, 03 ; Omit decimal point from axis position percentages.
; Читаем инфу по жостику. Пока с ней ничего не делаем

GetKeyState, joy_buttons, %JoystickNumber%JoyButtons
GetKeyState, joy_name, %JoystickNumber%JoyName
GetKeyState, joy_info, %JoystickNumber%JoyInfo
SoundGet, MUTE_SOUND
Loop
{
; Читаем состояние кнопок. Если кнопарь нажат, то переменная button(№кнопки)= D
Loop, %joy_buttons%
{
GetKeyState, button%a_index%, %JoystickNumber%joy%a_index%
}
; Читаем показания оси Х - по сути основных кнопок жостика
GetKeyState, joyx, %JoystickNumber%JoyX
; Читаем мышиный скролл (пока не пользуем)
; GetKeyState, mouse_Down, WheelDown
; GetKeyState, mouse_Up, WheelUp
; Генерим нужные действия:
; изменение громкости - меньше
If joyx-KeyGetDelta >= JKey_VOLD and joyx+KeyGetDelta <= JKey_VOLD
{
SoundSet -VolumeStep
}
; изменение громкости - больше
If joyx-KeyGetDelta >= JKey_VOLU and joyx+KeyGetDelta <= JKey_VOLU
{
SoundSet +VolumeStep
}
; JKey_MUTE
If joyx-KeyGetDelta >= JKey_MUTE and joyx+KeyGetDelta <= JKey_MUTE
{
SoundGet, Tmp
If Tmp = 0 ;мы в режиме MUTE
{
SoundSet, MUTE_SOUND
}
Else
{
SoundGet, MUTE_SOUND
SoundSet, 0
}
}
; JKey_OFF
If joyx-KeyGetDelta >= JKey_OFF and joyx+KeyGetDelta <= JKey_OFF
{
; Действие на JKey_OFF
}
; JKey_ATT
If joyx-KeyGetDelta >= JKey_ATT and joyx+KeyGetDelta <= JKey_ATT
{
; Действие на JKey_ATT
}
; JKey_X1
If joyx-KeyGetDelta >= JKey_X1 and joyx+KeyGetDelta <= JKey_X1
{
; Действие на JKey_X1
}
; JKey_X2
If joyx-KeyGetDelta >= JKey_X2 and joyx+KeyGetDelta <= JKey_X2
{
; Действие на JKey_X2
}
; JKey_PREV
If joyx-KeyGetDelta >= JKey_PREV and joyx+KeyGetDelta <= JKey_PREV
{
; Действие на JKey_PREV
}
; JKey_NEXT
If joyx-KeyGetDelta >= JKey_NEXT and joyx+KeyGetDelta <= JKey_NEXT
{
; Действие на JKey_NEXT
}
; JKey_SOURCE
If joyx-KeyGetDelta >= JKey_SOURCE and joyx+KeyGetDelta <= JKey_SOURCE
{
; Действие на JKey_SOURCE
}
; Ждем 200 мс (0.2 сек)
Sleep, 200
}
return