2016-12-10 18 views
3

조이스틱에 액세스하는 Windows 응용 프로그램을 작성하고 싶습니다. 값을 읽고이를 서버에 보내는 매우 단순한 응용 프로그램이므로 어떤 프로그래밍 프로그래밍 프레임 워크도 사용하지 않습니다. 그러나 어떤 API를 사용해야하는지 혼란 스럽습니다.Windows에서 조이스틱을 비 권장 방식으로 액세스하려면 어떻게합니까?

멀티미디어 조이스틱 API를 살펴 보았지만 이는 DirectInput에 의해 대체 된 것으로 설명됩니다. 그래서 DirectInput을 살펴 보았습니다. 그러나 이것은 또한 XInput을 위해 더 이상 사용되지 않습니다. 그러나 XInput 설명서는 Xbox360 컨트롤러에 대해서만 말하고 "레거시 DirectInput 장치"는 지원하지 않는다고 말합니다.

마이크로 소프트는 전체 HID 조이스틱 사용 유형을 쓰레기통에 맡기고 독점적 인 컨트롤러 제품을 선호하여 지원하는 것을 포기 했습니까? 아니면 뭔가 빠졌습니까?

+0

저는 DInput 및 XInput 모드 (물리적 스위치가 있음)를 모두 지원하는 Windows에서 Logitech F710 게임 패드를 사용합니다. XInput은 Microsoft 제품에만 국한되지 않습니다. –

+2

Microsoft는 명확한 대체 문없이 입력 스택 구현 * ("deprecated"*) 중 대부분 (전부는 아닐 경우)에 태그를 지정했습니다. 조이스틱 입력을 처리하기 위해 [DirectInput] (https://msdn.microsoft.com/en-us/library/windows/desktop/ee416842.aspx)을 사용합니다. DirectInput은 여전히 ​​적극적으로 지원되며 가까운 장래에 지원 될 예정입니다. 또는 [원시 입력] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms645536.aspx)을 평가하여 조이스틱 입력에도 사용할 수 있는지 확인하십시오. DirectX의 모든 COM 인프라가 없어도 쉽게 설정할 수 있습니다. – IInspectable

+1

힘의 피드백 ("럼블"을 넘어서는)이 "유산"으로 이관 된 것은 슬픈 일입니다. –

답변

1

가장 일반적인 해결책은 XInput과 DirectInput의 조합을 사용하여 응용 프로그램이 두 가지 유형의 장치에 모두 올바르게 액세스 할 수 있도록하는 것입니다. Microsoft는 instructions on how to do this도 제공합니다.

DirectInput은 Windows Store 응용 프로그램에서 사용할 수 없으므로 거기를 통해 배포하려는 경우에는 옵션이 아닙니다.

XBox 360 컨트롤러와 같은 입력 장치는 DirectInput에서도 작동하지만 일부 제한 사항이 있습니다. 특히 왼쪽 및 오른쪽 트리거는 독립이 아닌 동일한 축에 매핑되며 진동 효과는 사용할 수 없습니다.