저는 Kinect에 맞서 프로그래밍을 해왔습니다. 이제는 게임이 내가 Kinect에서하고있는 것과 반응하도록하고 싶습니다. 메모장에서 키 누르기를 위해 데이터를 보내는 것은 쉽지만 게임으로 보내려면 훨씬 더 어렵습니다.GlovePIE와 같은 가짜 입력
먼저 Kinect의 WPF 스켈레톤 예제를 사용하고 있습니다. C++ 버전을 사용할 수는 있지만 C++은 매우 녹슨 것이므로 선호하지 않을 것입니다.
그래서 지금까지 내가 한 것은 SendKeys
, SendInput
, keybd_event
, Post_Message
입니다. 그 누구도 Burnout Paradise와 같은 게임을 만들지 않습니다.
GlovePIE 입력이 게임에 도착하는 것을 알고 있지만 어떻게해야합니까? 현재/해킹 주위에 내 작품은 C++에서 샘플 코드를 가지고있는 PPJoy를 사용하여 버튼 누르기를 에뮬레이트합니다. 내 WPF 앱에서 [DllImport]를 통해 이것을 호출합니다. 그런 다음 GlovePIE에서 조이스틱 버튼을 누르고 그것이 키보드 키로 변환됩니다. 따라서 작동하는 원에서 돌아 다니지만 PPJoys 드라이버는 서명되지 않았으므로 사람들이 테스트 서명 된 드라이버를 허용해야하므로이 코드를 실제로 공유 할 수는 없습니다.
GlovePIE으로 Keypresses를 만드는 방법을 아는 사람이 있습니까? 나는 GlovePIE 포럼에 올렸지 만 응답은 없습니다. GlovePIE는 이전 openNI kinect 드라이버와 작동 할 수있는 약간의 해킹이 있지만 몇 주 전에 출시 된 표준 microsoft 버전을 사용하고 있습니다.
나는 sleep을 사용하고 keyup 명령을 보내서 키를 "누르고있다". 모든 것은 메모장에서 훌륭하게 작동하며, 나는 또한 키 입력을 보내는 창/서브 윈도우를 지정하지 않아도됩니다. 그래서 나는 그것을 게임/응용 불가 지론으로 유지할 수 없다. 그래도 몇 가지 아이디어를 가져 주셔서 감사합니다. – Maz
여러 가지에 따라 앱에서 키 업 시간보다 오래 걸릴 수도 있습니다. 또는 무시하고 여러 개의 'wm_char'메시지를 보는 것과 같은 다른 용도를 사용하는 것입니다. '\t :: SendMessage (hWND, WM_KEYDOWN, VK_RETURN, 0); :: SendMessage (hWND, WM_CHAR, VK_RETURN, 0); :: SendMessage (hWND, WM_CHAR, VK_RETURN, 0); :: SendMessage (hWND, WM_KEYUP, VK_RETURN, 0); ' –