[C] Differenza teorica nella digitazione pulsante tastiera

Messaggioda Return89 » 15/10/2016, 13:27

Salve a tutti,
sto sviluppando una tesina universitaria sulla sicurezza informatica ed un collega ha posto una domanda teorica a cui, in effetti, non abbiamo saputo dar risposta.
Sapreste dirmi qual è la differenza teorica tra quando digito un pulsante io e quando lo stesso pulsante viene digitato dal PC mediante software?
Mi spiego meglio: quando io ad esempio devo digitare la lettera 'A' mando un input (che sarà associato ad un valore binario) e verrà visualizzata a schermo la lettera 'A'.
Nel caso invece in cui è il computer a digitare la lettera 'A' viene inviato lo stesso input?

Per far un esempio: se scrivo questo semplice programma in C: (su google ho letto che lettera A dovrebbe essere associata a quel valore, in ogni caso non valutate errori nel codice in quanto serve solo come esempio!)
Codice:
#define VK_A 0x41
int main(){
keybd_event( VK_A, 0, 0, 0 );
}

In linea teorica ci sarà qualche differenza rispetto a quando sarò io a digitare il pulsante?

Grazie in anticipo a chiunque voglia aiutarmi!
Return89
Average Member
Average Member
 
Messaggio: 229 di 526
Iscritto il: 13/06/2013, 23:00

Re: [C] Differenza teorica nella digitazione pulsante tastiera

Messaggioda Return89 » 17/10/2016, 13:11

Nessuno sa rispondere a questa domanda? :(
Return89
Average Member
Average Member
 
Messaggio: 230 di 526
Iscritto il: 13/06/2013, 23:00

Messaggioda Rggb » 17/10/2016, 18:13

Prima cosa,
#define "digitato dal pc mediante software"

o almeno definisci meglio la questione. In linea generale direi che
1) premere un tasto -> si altera un valore di una porta/locazione di memoria/genera un intr -> leggere la memoria
2) eseguire un programma -> leggere la memoria
sono due cose differenti.
Avatar utente
Rggb
Cannot live without
Cannot live without
 
Messaggio: 2196 di 3226
Iscritto il: 30/07/2009, 17:27

Re: [C] Differenza teorica nella digitazione pulsante tastiera

Messaggioda vict85 » 17/10/2016, 18:42

La domanda non è tanto legata al C++, ma al sistema operativo (e dei vari software e hardware collegati). Puoi ovviamente costruire una tastiera virtuale, ma per farlo devi chiamare specifiche librerie di sistema (nel tuo caso penso sia windows).

Riguardo al caso di quanto premi i pulsandi della tastiera. La tua tastiera invia un segnale al tuo computer che viene interpretato dal driver e che immagino possa chiamare keybd_event o similari. So molto poco di driver e sistemi operativi, ma penso che ogni buona introduzione sui sistemi operativi possa darti un overview di cosa succede. Per il resto del sistema non cambia nulla chi ha materialmente chiamato quell'evento. Il sistema fornisce semplicemente una interfaccia in modo tale da trasformale il signale che gli arriva in qualcosa di comprensibile per il sistema.
vict85
Moderatore
Moderatore
 
Messaggio: 8899 di 19253
Iscritto il: 16/01/2008, 00:13
Località: Berlin

Re: [C] Differenza teorica nella digitazione pulsante tastiera

Messaggioda Cronovirus » 17/10/2016, 22:29

Come hanno già detto sopra anche io penso che l'unica differenza sia come gestisce il sistema operativo l'interrupt che viene generato dal device o dalla tastiera. Dopodichè i caratteri sono utilizzati (e meno male..) alla stessa maniera. Se sei curioso di come facciano le librerie a simulare i device potrebbe essere utile vedere qualche libreria open source come questa https://github.com/jordansissel/xdotool
Cronovirus
Junior Member
Junior Member
 
Messaggio: 153 di 320
Iscritto il: 11/06/2015, 01:49


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite