Domanda

desidero simulare i clic della tastiera e digitare determinati messaggi in cirillico. so come simulare un evento della tastiera:

SendKeyboardMessage(handle, WM_KEYDOWN, Convert.ToInt32(key), 0);
SendKeyboardMessage(handle, WM_KEYUP, Convert.ToInt32(key), 0);

ma il terzo argomento è di tipo "Keys" e non ci sono caratteri cirillici.

Allora come inviare un evento di tastiera con caratteri cirillici?

È importante inviare il messaggio all'applicazione in sé NON globale

È stato utile?

Soluzione

Prova a cambiare prima il layout della tastiera in cirillico e poi a simulare gli eventi della tastiera.

Ho trovato questo progetto di codice che mostra come modificare il layout.

Spero che questo aiuti

Altri suggerimenti

La stessa funzione dovrebbe funzionare anche per Cyrilic.

Capisci la differenza tra KEY e CHARACTER?I tasti sono sulla tastiera, mentre i caratteri sono ciò che viene disegnato sullo schermo.WM_KEYDOWN e WM_KEYUP non inviano caratteri, inviano chiavi.Il tipo di dati Keys copre la tastiera come un hardware: hai sempre gli stessi 102 tasti circa indipendentemente da cosa significano nella tua lingua locale.Queste chiavi vengono convertite in caratteri in un secondo momento, utilizzando la tabella codici attiva.Ecco perché puoi usare la stessa funzione per Cirilico, basta cambiare la tabella codici attiva in Cirillo e inviare i nomi dei tasti corretti come se provenisse da una tastiera inglese degli Stati Uniti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top