2011-11-21 31 views
6

He estado aburrido, así que traté de crear un programa que escriba un smiley de Look of Disapproval (la cara ಠ_ಠ) al presionar ctrl + shift + L. Ahora todo funciona, excepto el guión bajo que está en el emoticón, que no se escribirá en absoluto.¿No se puede enviar guion bajo con Sendkeys en C#?

Esto fue lo que utilizó por primera vez:

SendKeys.Send("ಠ_ಠ"); 

que he probado varias cosas, como la adición de llaves {} de todo el guión, y por supuesto que esto también en Google.

¿Hay alguna manera de que pueda enviar el guión bajo?

Gracias de antemano.

+5

+1 para la programación de aburrimiento. Buena causa. – MPelletier

+0

Tiene que ser algo de codificación de caracteres. 'ಠ' no es ASCII. – MPelletier

+0

Los ಠ 'se envían bien, es el _ que se rompe por alguna razón: \ – JeremyG

Respuesta

1

Mezclar diferentes codificaciones crea resultados extraños. es Unicode, _ es ASCII. Los diferentes caracteres de longitud confunden e irritan a Visual Studio.

Probar:

SendKeys.Send("\u0CA0_\u0CA0"); 

O:

SendKeys.Send("\u0CA0\u005F\u0CA0"); 
+3

Eso significa que aunque puede escribir "ಠ_ಠ", eso no se interpreta como "ಠ_ಠ", porque Visual Studio ve: Unicode, luego espera más Unicode y encuentra algo que no es. El resultado final te hace * sentir * como tu entrada: ಠ_ಠ. – MPelletier

+2

Incorrecto. Cualquier sistema de codificación decente manejará bien. – SLaks

+0

@SLaks Nunca dije que Unicode fuera decente. :) Pero en serio, es una limitación en la interpretación de Unicode por VS. ¿Estarías de acuerdo? – MPelletier

0

Si no se utiliza un diseño de teclado Inglés que tiene el carácter de subrayado como la clave se puede simplemente escribir el carácter ASCII sino que tienen que escríbalo como una combinación de teclas modificadoras y de caracteres.

Cuestiones relacionadas