Estoy usando SendKeys en un programa de automatización para el trabajo. He estado avanzando lentamente, y ahora estoy tratando de resolver todos los errores que he creado :-)Deshabilitar mediante programación el bloqueo de mayúsculas
Una de las cuales es que cuando utilicé SendKeys.Send ("Prueba"), si el CapsLock está activado, producirá "TEST" en lugar de "Test".
He utilizado el código siguiente para intentar detectar el estado capsLock, y cambiar si es necesario:
bool tmp = Control.IsKeyLocked(Keys.CapsLock);
if (tmp)
{
keybd_event(0x14, 0x45, KEYEVENTF_EXTENTEDKEY, (UIntPtr)0);
keybd_event(0x14, 0x45, KEYEVENTF_EXTENTEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
//Application.DoEvents(); <-Testing.
}
Y a continuación, utilizar inmediatamente SendKeys para enviar un texto:
SendKeys.SendWait("This Is An Over Capitalized Test String");
Qué AÚN sale como: "ESTE ES UN SORTEO DE PRUEBA CAPITALIZADO".
¿Hay alguna forma de evitar este problema?
¡Respondido! Solo para aclarar para cualquier otra persona, el problema se resolvió mediante el uso de
SendKeys.SendWait("{CAPSLOCK}" + text);
primera vez que trató de utilizar:
SendKeys.SendWait("{CAPSLOCK}");
SendKeys.SendWait("This Is An Over Capitalized Test String");
los cuales no funcionaba en absoluto.
¿Qué pasa si 'SendKeys.Send" {CAPSLOCK} Prueba "'? – V4Vendetta