2011-09-22 48 views
5

¿Cómo uso TTouchKeyboard en Delphi, por lo que podría enviar pulsaciones de teclas a otro programa. Por ejemplo, quiero ingresar la contraseña en un navegador usando el componente TTouchKeyboard. No tengo idea de cómo hacer que el navegador se mantenga enfocado mientras hago clic en mi teclado.TTouchKeyboard: ¿enviar la pulsación de tecla a otro programa?

Respuesta

10

TTouchKeyboard envía las claves para el control actual centrado: por lo que si usted tiene un TEdit con el enfoque , la TEdit recibirán la clave ...

Puede crear un formulario que contiene el TTouchKeyboard y añadir este procedimiento:

protected 
    procedure CreateParams(var Params: TCreateParams); override; 

... 

procedure TForm1.CreateParams(var Params: TCreateParams); 
begin 
    inherited CreateParams(Params); 
    with Params do 
    begin 
    ExStyle := ExStyle or WS_EX_NOACTIVATE; 
    WndParent := GetDesktopwindow; 
    end; 
end; 

Su formulario no puede tener el foco ... por lo tanto, la clave se envía al control enfocado anterior. (Acabo de probarlo y funciona: la clave se ha enviado a esta página web)

+0

Bingo! WS_EX_NOACTIVATE es lo que necesito. – user

+0

Esto no parece funcionar para mí, ya que el control pierde el foco cuando presiono una tecla en el teclado virtual. ¿Qué me estoy perdiendo? Estoy usando XE2 en este caso. – SiBrit

Cuestiones relacionadas