Ver Mensaje Individual
  #1  
Antiguo 19-08-2016
jocaro jocaro is offline
Miembro
 
Registrado: sep 2011
Posts: 104
Reputación: 13
jocaro Va por buen camino
Sendinput (mayúsculas/minúsculas)

Hola

Al enviar con SendInput una secuencia de letras mayúsculas y minúsculas mediante un bucle del siguiente código,
una secuencia como abcDEFghi se convierte en abcDEFGHI.

Parece que una vez que se simula la pulsación de una mayúscula, la tecla VK_SHIFT no se libera mediante el
KEYEVENTF_KEYUP.

No se que estoy haciendo mal, ¿alguien que me pueda ayudar?

Código Delphi [-]
aDatPul.Itype := INPUT_KEYBOARD;
aDatPul.ki.wScan := 0;

{ Tecla mayúscula}
begin
  { Pulsar tecla shift key para mayusculas }
  aDatPul.ki.dwFlags := KEYEVENTF_EXTENDEDKEY;
  aDatPul.ki.wVk := VK_LSHIFT;
  SendInput( 1, &aDatPul, sizeof( aDatPul ) );

  { Pulsar tecla carácter en mayúsculas }
  aDatPul.ki.dwFlags := 0;
  aDatPul.ki.wVk := CodTec;  // Virtual Code
  SendInput( 1, &aDatPul, sizeof( aDatPul ) );

  { Soltar tecla carácter en mayúsculas }
  aDatPul.ki.dwFlags := KEYEVENTF_KEYUP;
  aDatPul.ki.wVk := CodTec;  // Virtual Code
  SendInput( 1, &aDatPul, sizeof( aDatPul ) );

  { Soltar tecla shift key }
  aDatPul.ki.dwFlags := KEYEVENTF_KEYUP and KEYEVENTF_EXTENDEDKEY;
  aDatPul.ki.wVk := VK_LSHIFT;
  SendInput( 1, &aDatPul, sizeof( aDatPul ) );
end
else
{ Tecla minúscula }
begin
  { Pulsar tecla carácter en minúsculas }
  aDatPul.ki.dwFlags := 0;
  aDatPul.ki.wVk := CodTec;  // Virtual Code
  SendInput( 1, &aDatPul, sizeof( aDatPul ) );

  { Soltar tecla carácter en minúsculas }
  aDatPul.ki.dwFlags := KEYEVENTF_KEYUP;
  aDatPul.ki.wVk := CodTec;  // Virtual Code
  SendInput( 1, &aDatPul, sizeof( aDatPul ) );
end;

Gracias. Un saludo
Responder Con Cita