2012-03-28 9 views
5

Ho un programma C che ottiene gli eventi dalla tastiera bene. Tuttavia, voglio usare Java per inviarlo eventi di tastiera simulati. Ho provato due approcci:Utilizzare Java per inviare eventi di tastiera Windows simulati a un programma C che utilizza SDL

  1. utilizzare la classe Robot
  2. Chiamare la funzione keybd_event in Win32.dll (nativo).

Entrambi gli approcci di cui sopra faranno cose come inviare chiavi a un editor di testo, ecc. Ma l'altro programma (GIMX per la precisione) non riconoscerà gli eventi. Qualche idea sul perché questo sarebbe, e cosa potrei fare per far comunicare a Java con esso?

+0

Mentre io non sono a conoscenza con il tuo problema, la documentazione per keybd_event dice di usare SendInput invece: http://msdn.microsoft.com/en-us/library/windows/ desktop/ms646304 (v = vs.85) .aspx –

+0

Funziona con Blocco note? Cioè è il problema alla fine o GIMX? – Ben

risposta

1

Vedi qui per spiegazioni dettagliate:

http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/29cf2de9-412e-44dd-9050-174089d8e2a2/

In sostanza, sembra che tu abbia bisogno di inviare a basso livello SendInput eventi, ossia i codici di scansione per lavorare con DirectInput. Per utilizzare i codici di scansione, passare KEYEVENTF_SCANCODE nella struttura KBDINPUT e passare il codice di scansione in wScan.

Problemi correlati