ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

como capturar as teclas do windows em qualquer janela ???

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
marlone
Aprendiz
Aprendiz


Registrado: Terça-Feira, 29 de Outubro de 2013
Mensagens: 175

MensagemEnviada: Qua Nov 15, 2017 9:25 pm    Assunto: como capturar as teclas do windows em qualquer janela ??? Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Qua Nov 15, 2017 10:49 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
marlone
Aprendiz
Aprendiz


Registrado: Terça-Feira, 29 de Outubro de 2013
Mensagens: 175

MensagemEnviada: Qui Nov 16, 2017 9:16 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
marlone
Aprendiz
Aprendiz


Registrado: Terça-Feira, 29 de Outubro de 2013
Mensagens: 175

MensagemEnviada: Sex Dez 08, 2017 6:06 pm    Assunto: Responder com Citação

alguem teria uma outra solução?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
lokasso
Aprendiz
Aprendiz


Registrado: Terça-Feira, 11 de Abril de 2017
Mensagens: 174

MensagemEnviada: Sáb Dez 09, 2017 4:47 pm    Assunto: Responder com Citação

Cara, a melhor solução é realmente pela API do Windows, um bom começo seria pelo livro API & SOCKETS

Vou te passar alguns links sobre api:

https://www.devmedia.com.br/explorando-apis-do-windows-em-delphi-parte-1/32889

https://www.devmedia.com.br/artigo-clube-delphi-116-programacao-com-a-api-do-windows/16440

https://www.devmedia.com.br/artigo-clube-delphi-75-api-do-windows/11257

O unico problema nos artigos acima é que é para MVP's

http://www.planetadelphi.com.br/download/4289/delphi-com-api-do-windows.pdf

Esse acima, tem um download onde tem algumas coisas sobre o assunto

http://theclub.com.br/Restrito/Revistas/200905/util0905.aspx

http://blog.vitorrubio.com.br/2010/10/truques-usando-api-do-windows.html

E esses dois falam um pouco também sobre o assunto

Não vi aqui na ActiveDelphi, mas com certeza tem artigos e tutorias para API

Espero que ajude

Abraços
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
marlone
Aprendiz
Aprendiz


Registrado: Terça-Feira, 29 de Outubro de 2013
Mensagens: 175

MensagemEnviada: Dom Dez 10, 2017 3:50 pm    Assunto: Responder com Citação

ola lokasso olhei os links e realmente nao da pra ler tudo por estar em MVP's .
mais vascolhando esta nossa net, encontrei algo que daria certo para mim. segue abaixo o link .
http://www.planetadelphi.com.br/dica/6901/Capturar%20teclas%20digitadas%20em%20qualquer%20local%20do%20windows,%20mesmo%20fora%20do%20form%20principal%20(correcao)
fiz o projeto como manda no site, agora quero ver si eu consigo implementar ele em meu projeto. e alias este projeto tb trabalha mesmo com API igual vcs falaram. obrigado pela ajuda ate aqui. assim q terminar volto pra diser si consegui finalizar o meu projeto.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
marlone
Aprendiz
Aprendiz


Registrado: Terça-Feira, 29 de Outubro de 2013
Mensagens: 175

MensagemEnviada: Dom Dez 10, 2017 3:54 pm    Assunto: Responder com Citação

ola lokasso olhei os links e realmente nao da pra ler tudo por estar em MVP's .
mais vascolhando esta nossa net, encontrei algo que daria certo para mim. segue abaixo o link .
http://www.planetadelphi.com.br/dica/6901/Capturar%20teclas%20digitadas%20em%20qualquer%20local%20do%20windows,%20mesmo%20fora%20do%20form%20principal%20(correcao)
fiz o projeto como manda no site, agora quero ver si eu consigo implementar ele em meu projeto. e alias este projeto tb trabalha mesmo com API igual vcs falaram. obrigado pela ajuda ate aqui. assim q terminar volto pra diser si consegui finalizar o meu projeto.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
lokasso
Aprendiz
Aprendiz


Registrado: Terça-Feira, 11 de Abril de 2017
Mensagens: 174

MensagemEnviada: Dom Dez 10, 2017 4:50 pm    Assunto: Responder com Citação

marlone escreveu:
ola lokasso olhei os links e realmente nao da pra ler tudo por estar em MVP's .
mais vascolhando esta nossa net, encontrei algo que daria certo para mim. segue abaixo o link .
http://www.planetadelphi.com.br/dica/6901/Capturar%20teclas%20digitadas%20em%20qualquer%20local%20do%20windows,%20mesmo%20fora%20do%20form%20principal%20(correcao)
fiz o projeto como manda no site, agora quero ver si eu consigo implementar ele em meu projeto. e alias este projeto tb trabalha mesmo com API igual vcs falaram. obrigado pela ajuda ate aqui. assim q terminar volto pra diser si consegui finalizar o meu projeto.


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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB