Показать сообщение отдельно
Старый 28.03.2007, 13:38   #9
lvovitch
Guest
 
Сообщений: n/a
По умолчанию

Вот он - код вечного счастья, который я обрел еще раз выражаю бесконечную благодарность всемогущему Хамстеру!!!

Цитата:
; Скрипт для подключения автомобильного двойстика Sony X4S к CarPc
; *********************** Секция настроек начало ***********************
JoystickNumber = 1
VolumeStep = 5
; Погрешность определения значений
KeyGetDelta = 2
; Значения кнопок
JKey_OFF = 100
JKey_ATT = 92
JKey_X1 = 66
JKey_X2 = 62
JKey_X3 = 88
JKey_PREV = 84
JKey_NEXT = 80
JKey_VOLD = 75
JKey_VOLU = 70
JKey_SOURCE = 97
; Переменная в которой запоминаем громкость (для 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_X1
If joyx-KeyGetDelta <= JKey_X1 and joyx+KeyGetDelta >= JKey_X1
{
}

; 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
SoundGet, Tmp
If Tmp = 0 ;мы в режиме MUTE
{
SoundSet, MUTE_SOUND
}
Else
{
SoundGet, MUTE_SOUND
SoundSet, 0
}

}


; JKey_X2
If joyx-KeyGetDelta <= JKey_X2 and joyx+KeyGetDelta >= JKey_X2
{
; Действие на JKey_X2
WinActivate ahk_class Winamp v1.x
Send c
}

; JKey_X3
If joyx-KeyGetDelta <= JKey_X3 and joyx+KeyGetDelta >= JKey_X3
{
; Действие на JKey_X3
}

; JKey_PREV
If joyx-KeyGetDelta <= JKey_PREV and joyx+KeyGetDelta >= JKey_PREV
{
; Действие на JKey_PREV
WinActivate ahk_class Winamp v1.x
Send z
}

; JKey_NEXT
If joyx-KeyGetDelta <= JKey_NEXT and joyx+KeyGetDelta >= JKey_NEXT
{
; Действие на JKey_NEXT
WinActivate ahk_class Winamp v1.x
Send b
}

; JKey_SOURCE
If joyx-KeyGetDelta <= JKey_SOURCE and joyx+KeyGetDelta >= JKey_SOURCE
{
; Действие на JKey_SOURCE
}

; Ждем 250 мс (0.25 сек)
Sleep, 250
}
return
Этот чудестный скриптия к доработал под РР (если - завтра могу скинуть, сейчас комп лежит под капельницей ). Теперь вместе с кнопкой Шифт у меня 17 кнопок!!!!
  Ответить с цитированием