2013-03-26 7 views
6

E 'possibile che un programma blocchi l'input da altri programmi ma NON l'input chiave direttamente dalla mano dell'utente che colpisce un tasto sulla tastiera?Un programma può distinguere tra l'ingresso della chiave utente e l'ingresso della chiave del programma?

Ad esempio:

Programa contiene un campo di testo.

ProgramB è Windows Tastiera su schermo.

Dopo aver selezionato il campo di testo in programa, tento di premere la lettera 'c' sul programma Tastiera su schermo, ma non riesco a vederla nel campo di testo.

Tuttavia, quando si preme la lettera 'C' direttamente dalla mia tastiera che appare all'interno del campo di testo del programa.

so come funzionano gli eventi chiave, come sono messi in coda, e ho visto la funzione BlockInput in C++

http://msdn.microsoft.com/en-us/library/windows/desktop/ms646290%28v=vs.85%29.aspx

Ma quella funzione semplicemente blocca tutti gli input.

Ive incontrato programmi che filtrano l'ingresso in questo modo e non riesco a capire come. Mi manca qualcosa di completamente ovvio?

Questa domanda è prevalentemente riferibile a C++ sul sistema operativo Windows 7.

+1

Quale linguaggio di programmazione e quale sistema operativo stai chiedendo? Sembra un po 'troppo ampio per contrassegnare una tale domanda per entrambi i tag java e C++. –

+0

Hovercraft, se conosci la classe dei robot in java, il tuo aiuto sarebbe molto apprezzato. I comandi KeyPress sono anche bloccati in ProgramA. – user2212942

+0

Si sta cercando di creare un programma kiosk. Hai cercato su Google quel termine? –

risposta

1

Non si può mai essere sicuri se l'input proviene da hardware. L'esempio più semplice è un driver personalizzato che simulerà una tastiera reale basata sull'input del software.

Alcune idee di fantasia possono essere collegate al dispositivo, ascoltare suoni/vibrazioni per il filtraggio degli input, ma intendi la soluzione o l'applicazione completa, che verrà data agli utenti personali?

+0

Sto cercando di capire come un'applicazione di chat di Windows (C++) sul mio computer blocca in qualche modo keyPresses da un programma (java) che ho scritto, ma mi permette di scrivere su di esso quando sto digitando sulla tastiera usando le mie mani Stavo solo scherzando con la classe dei robot Java e mi sono chiesto perché non avrebbe accettato l'input robotico, ma solo l'input diretto dalla mia tastiera. http://docs.oracle.com/javase/6/docs/api/java/awt/Robot.html – user2212942