2011-09-22 13 views
5

Come utilizzare TTouchKeyboard in Delphi, in modo che possa inviare sequenze di tasti ad altri programmi. Ad esempio, voglio digitare la password in un browser utilizzando il componente TTouchKeyboard. Non ho idea di come rendere il focus del browser mentre clicco sulla mia tastiera.TTouchKeyboard: invia la sequenza di tasti ad un altro programma?

risposta

10

TTouchKeyboard invia i tasti per il controllo corrente concentrata: quindi se avete un TEdit con la messa a fuoco , il TEdit riceveranno la chiave ...

È possibile creare un modulo che contiene il TTouchKeyboard e aggiungere questa procedura:

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; 

Il modulo non può disporre della messa a fuoco ... quindi, la chiave viene inviata al controllo focalizzato precedente. (L'ho appena testato e funziona: la chiave è stata inviata a questa pagina Web)

+0

Bingo! WS_EX_NOACTIVATE è ciò di cui ho bisogno. – user

+0

Questo non sembra funzionare per me, in quanto il controllo perde la messa a fuoco quando premo un tasto sulla tastiera virtuale. Cosa mi manca? Sto usando XE2 in questo caso. – SiBrit

Problemi correlati