Le applicazioni possono sovrascrivere il layout della tastiera del sistema operativo?

2

Abbiamo un'applicazione .NET interna, che può essere utilizzata in più lingue. Ultimamente abbiamo ricevuto uno strano bug che si verifica quando viene utilizzata la nostra applicazione, l'utente non è stato in grado di inserire caratteri accentati (spagnolo, Win 7) in altre applicazioni (ad esempio: MS Word o Blocco note). Strano, eh!

Qualcuno ha incontrato un bug simile? Se sì, come l'hai risolto?

    
posta Prashant C 06.09.2011 - 12:39
fonte

3 risposte

4

Sì, è possibile. Le applicazioni possono ascoltare eventi key-press e fare quello che vogliono.

È anche possibile rimappare il comportamento della tastiera in Windows, sia per le singole applicazioni che direttamente dal registro di Windows. Ciò potrebbe causare conflitti con altre applicazioni nel tentativo di digitare alcuni caratteri speciali.

Infine, è possibile cambiare il layout della tastiera attualmente utilizzato, e anche se in teoria ogni applicazione dovrebbe mantenere il proprio layout utilizzato, è molto comune in Windows modificarlo per alcune applicazioni e vederlo modificato anche per gli altri.

    
risposta data 06.09.2011 - 16:22
fonte
1

Un particolare tasto che potrebbe essere utile controllare è il tasto apostrofo (') attraverso i listener di eventi. Sono piuttosto sicuro di ciò che dice a Windows di attivare l'accento sulle lingue straniere.

    
risposta data 06.09.2011 - 22:58
fonte
0

Puoi utilizzare ganci per tastiera per dirottare la tastiera. Potrei iniziare cercando le chiamate SetWindowsHookEx nel tuo codice. Forse prova a eseguire normalmente il tuo programma e Blocco note come amministratore; i ganci della tastiera non funzionano con processi di privilegi più elevati, in modo da limitare un po 'il problema.

Tu puoi cambiare il layout della tastiera all'interno del tuo codice, ma solo cambiando il registro, e richiede un riavvio prima che funzioni (o almeno un logout, forse) - quindi dubito strongmente che questo è il colpevole.

Come nota Jose, anche il layout di input potrebbe essere cambiato. Accedi alle impostazioni della lingua e della lingua di Windows e in Tastiere e lingue - > Cambia tastiere - > Barra della lingua, scegli Floating On Desktop. Prova a cambiare tra diverse applicazioni per vedere se la lingua di input viene cambiata. Se lo è, dovresti disattivare i layout di tastiera che non stai utilizzando (probabilmente non avrai bisogno dell'inglese), oppure premere left alt + shift ogni volta che la lingua viene cambiata.

    
risposta data 07.09.2011 - 00:16
fonte

Leggi altre domande sui tag