2013-05-12 15 views
5

Sto provando a controllare i giochi e faccio il tracking gratuito usando un dispositivo IMU esterno qui simulando input da tastiera come frecce sinistra e destra.Simula l'input da tastiera a livello di sistema in C++

Ho eseguito correttamente la chiamata alla funzione SendInput() in C++ per simulare la pressione della freccia sinistra e destra. Tuttavia, in realtà non funziona in un'applicazione di gioco (anche per un piccolo gioco in flash.)

Ho cercato su MSDN e ho rilevato che SendInput() funziona solo nelle applicazioni con lo stesso livello di integrità. Quindi c'è un modo per realizzare questa simulazione di input da tastiera a livello di sistema per aggirare questo problema di integrità?

Grazie ~

+0

Questo ha sempre funzionato per me, ma potrebbe essere necessario un driver della tastiera o qualcosa del genere. – chris

+0

Potrebbe dirmi per che tipo di applicazione stai usando SendInput()? – Tianyu

+0

Se ho capito bene, hai due applicazioni: 1 che riceve i dati di tracciamento IMU e li inoltra come eventi tastiera, e 1 che riceve input da tastiera e li traduce come comandi in un gioco in flash. Hai provato a inviare manualmente eventi di tastiera, WM_KEYDOWN, WM_KEYUP utilizzando la funzione SendMessage. –

risposta

1

Non è una risposta diretta alla sua domanda, ma una proposta alternativa.

Saitek (produttore di un'ampia gamma di dispositivi di gioco) utilizza sempre driver virtuali per tastiera/mouse per eseguire lo stesso compito. Ti suggerirei di fare lo stesso. O puoi rendere il tuo dispositivo conforme a HID a livello hardware, in modo che possa emulare tastiera/mouse/joystick senza alcun driver.

+0

Penso che tu abbia ragione nello sviluppo di un dispositivo HID compatibile a livello hardware. Anche il driver virtuale è anche un'opzione. Grazie – Tianyu

Problemi correlati