| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
marlone Aprendiz

Registrado: Terça-Feira, 29 de Outubro de 2013 Mensagens: 175
|
Enviada: Qua Nov 15, 2017 9:25 pm Assunto: como capturar as teclas do windows em qualquer janela ??? |
|
|
ola galera do fórum tudo blz?
e o seguinte tenho um projeto em mente, que quando eu pressiono um determinado conjunto de teclas o meu programa mostra uma msg. ate ai tudo bem. como estou fazendo isso? simples! no código abaixo eu pego qual o código de qual tecla esta sendo pressionada e adiciono em um edit, quando esse edit estiver com a texto igual a determinada no código fonte ele executa uma mensagem.
segue abaixo o link do projeto e os codigos que estou usando.
https://drive.google.com/uc?authuser=0&id=180FqYmcaDSne6vh5d7g3safhvAlywFl0&export=download
este e os codigos utilizados.
| Código: |
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
label1.Caption:=('O nº da tecla: '+Char(ORD(Key))+' é => '+IntToStr(key));
Edit1.Text:= (Edit1.Text)+ IntToStr(key) ;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Clear;
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Edit1.Text= '7765676582826579' then// o nome que deve ser digitado e 'macarrao' para confirmacao
begin
begin
MessageDlg('Codigo de Seguranca Ativado', mtConfirmation, mbOKCancel, 0);
end;
end;
end; |
o que eu quero desse projeto e que ele possa capturar as teclas independente si ele estiver com a janela aberta ou nao. capturar todas as teclas pressionadas do windows mais sem mudar muito a funcionalidade do código.
mais qual o objetivo deste programa? para que em qualquer janela que eu estiver e pressionar um conjunto de teclas ele possa executar uma função, acima eu dei o exemplo de uma msg , mais quero ir mais alem !por exemplo. para que quando eu digitar 'copiar' ele copiar de um diretório para o outro que ja esta pre definido . mais a questão que eu quero, no momento e receber as teclas pressionada no windows em qualquer tela, mesmo que meu programa esteja oculto.
desde ja agradeço . |
|
| Voltar ao Topo |
|
 |
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Qua Nov 15, 2017 10:49 pm Assunto: |
|
|
Esqueça os método KeyDown e KeyPress dos componentes nativos do Delphi e comece a trabalhar com api do windows. _________________ Tudo podemos quando tudo sabemos! |
|
| Voltar ao Topo |
|
 |
marlone Aprendiz

Registrado: Terça-Feira, 29 de Outubro de 2013 Mensagens: 175
|
Enviada: Qui Nov 16, 2017 9:16 am Assunto: |
|
|
| strak2012 escreveu: | | Esqueça os método KeyDown e KeyPress dos componentes nativos do Delphi e comece a trabalhar com api do windows. |
sou meio fraco em api. teria como vc fazer um exemplo para demostra como funcionaria o pedido acima? |
|
| Voltar ao Topo |
|
 |
marlone Aprendiz

Registrado: Terça-Feira, 29 de Outubro de 2013 Mensagens: 175
|
Enviada: Sex Dez 08, 2017 6:06 pm Assunto: |
|
|
| alguem teria uma outra solução? |
|
| Voltar ao Topo |
|
 |
lokasso Aprendiz

Registrado: Terça-Feira, 11 de Abril de 2017 Mensagens: 174
|
|
| Voltar ao Topo |
|
 |
marlone Aprendiz

Registrado: Terça-Feira, 29 de Outubro de 2013 Mensagens: 175
|
|
| Voltar ao Topo |
|
 |
marlone Aprendiz

Registrado: Terça-Feira, 29 de Outubro de 2013 Mensagens: 175
|
|
| Voltar ao Topo |
|
 |
lokasso Aprendiz

Registrado: Terça-Feira, 11 de Abril de 2017 Mensagens: 174
|
Enviada: Dom Dez 10, 2017 4:50 pm Assunto: |
|
|
marlone que ótimo que tu conseguiu uma luz e volta mesmo pra falar se conseguiu e também para deixar algumas dicas pra quem está iniciando com APIs
Abraços |
|
| Voltar ao Topo |
|
 |
|