Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-08-2016
jocaro jocaro is offline
Miembro
 
Registrado: sep 2011
Posts: 104
Poder: 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
  #2  
Antiguo 25-08-2016
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Código Delphi [-]
procedure SimKey(VK: BYTE; Down: boolean);
var
  Input: TInput;
begin
  ZeroMemory(@Input, sizeof(Input));
  Input.iType:= INPUT_KEYBOARD;
  Input.ki.wVk:= VK;
  Input.ki.wScan:= MapVirtualKey(VK, 0);
  Input.ki.dwFlags:= KEYEVENTF_EXTENDEDKEY;
  if not Down then
    Input.ki.dwFlags:= Input.ki.dwFlags or KEYEVENTF_KEYUP;
  windows.SendInput(1, Input, sizeof(TInput));
end;


Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
convertir mayusculas y minusculas. Solo la primera letra en Mayusculas Delphius MS SQL Server 2 21-07-2007 02:20:22
Select con minusculas y mayusculas lucasarts_18 MySQL 1 13-05-2007 02:44:24
Mayusculas/minusculas Collates juanpe Firebird e Interbase 2 14-06-2005 13:12:22
Índices mayúsculas/minúsculas sur-se Firebird e Interbase 4 20-09-2004 20:35:31
Mayusculas Y Minusculas jberaza Firebird e Interbase 1 24-05-2003 18:44:32


La franja horaria es GMT +2. Ahora son las 12:21:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi