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 

[resolvido] hotkey usando alfanumerico e caracter n imprim.

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


Registrado: Sexta-Feira, 16 de Abril de 2010
Mensagens: 666

MensagemEnviada: Sex Mar 25, 2011 9:26 am    Assunto: [resolvido] hotkey usando alfanumerico e caracter n imprim. Responder com Citação

Olá pessoal:

Estou precisando de mais essa forcinha ...

Eu preciso criar um atalho pra quendo se pressionar CONTROL + SHIFT + M,
executa uma aplicacao externa.

Essa combinacao de teclas, estao sendo passadas para a aplicacao por uma tecla de um controle remoto usb.

Nao tenho como alterar a combinacao, entao terei q fazer funcionar com essas teclas.

Primeiro eu tentei fazer usando os eventos on key press e on key down, mas um deles aceita os carateres imprimiveis e o outro nao aceita as teclas control e shift.

Eu consegui fazer funcionar usando control + shift + f11 com o seguinte codigo:

Código:

unit UfrmonitorControleRemoto;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TfrmonitorControleRemoto = class(TForm)
    lbl1: TLabel;
    btn1: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);


  private
  procedure WMHotkey(var Msg: TWMHotkey); message WM_HOTKEY;

  public
    { Public declarations }
  end;

var
  frmonitorControleRemoto: TfrmonitorControleRemoto;

implementation

{$R *.dfm}
procedure TfrmonitorControleRemoto.WMHotkey(var Msg: TWMHotkey);
begin
  case Msg.HotKey of
    1: WinExec('calc.exe', SW_SHOW);
  end;
end;


procedure TfrmonitorControleRemoto.FormCreate(Sender: TObject);
begin
  if not RegisterHotkey(Handle, 1, MOD_CONTROL or MOD_SHIFT, VK_F11) then
    ShowMessage('Erro ao programar Ctrl+Shift+F11');
end;


procedure TfrmonitorControleRemoto.FormDestroy(Sender: TObject);
begin
  UnRegisterHotkey(Handle, 1);
end;


end.


Mas como ja disse, tem q ser cntrl + shift + m ...

Alguem sabe se tem jeito ?

Obrigado mais uma vez ...


Editado pela última vez por leo_bruno em Sex Mar 25, 2011 10:20 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
NalDinHuU
Colaborador
Colaborador


Registrado: Segunda-Feira, 26 de Julho de 2010
Mensagens: 1294
Localização: João Pessoa/PB

MensagemEnviada: Sex Mar 25, 2011 9:39 am    Assunto: Responder com Citação

Já tentou referenciar o F11 como caractere binário? sem ser o Virtual Key, use a referência hexadecimal;
_________________
Try
Topic.Resolve;
Finally
Topic.Caption := Topic.Caption + '[RESOLVIDO]';
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
leo_bruno
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Abril de 2010
Mensagens: 666

MensagemEnviada: Sex Mar 25, 2011 10:00 am    Assunto: Responder com Citação

NalDinHuU escreveu:
Já tentou referenciar o F11 como caractere binário? sem ser o Virtual Key, use a referência hexadecimal;


O código que eu passei aí funciona, o problema é que eu preciso substituir o
F11 por M ...

Apenas trocar VK_F11 por VK_M nao adianta, pois ele nao aceita.

Entao, preciso achar outro caminho pra fazer ...

Certeza que se tiver jeito, alguem aki do forum ja deve ter feito , provavelmente com combinacoes de tecla diferentes, por exemplo :

Control + alt + R ou outro parecido ...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
NalDinHuU
Colaborador
Colaborador


Registrado: Segunda-Feira, 26 de Julho de 2010
Mensagens: 1294
Localização: João Pessoa/PB

MensagemEnviada: Sex Mar 25, 2011 10:11 am    Assunto: Responder com Citação

O Que eu quis dizer foi que, além de poder referenciar as teclas pelas Virtual Keys (VK) você pode referenciar pelo valor Hexadecimal, isso pode resolver seu problema, porque o valor hexadecimal não é imprimível;
_________________
Try
Topic.Resolve;
Finally
Topic.Caption := Topic.Caption + '[RESOLVIDO]';
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
leo_bruno
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Abril de 2010
Mensagens: 666

MensagemEnviada: Sex Mar 25, 2011 10:18 am    Assunto: Responder com Citação

NalDinHuU escreveu:
O Que eu quis dizer foi que, além de poder referenciar as teclas pelas Virtual Keys (VK) você pode referenciar pelo valor Hexadecimal, isso pode resolver seu problema, porque o valor hexadecimal não é imprimível;


Ja vi aki onde errei ...


Eu tava usando o codigo #77 pra tecla M e devia usar apenas 77 sem o #.

Obrigado mesmo assim

..

Abraco !!!
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