Ir para conteúdo
Fórum Script Brasil
  • 0

Registerhotkey


Paulo Nobre

Pergunta

RegisterHotKey(Handle, 1, MOD_CONTROL, $41); // Ctrl+a

SErve para registrar a combinação ctrl +a,

Mas, percebi que para usar a tecla windows serve

RegisterHotKey(Handle, 1, MOD_Win, $41); // win+a

ou

RegisterHotKey(Handle, 1, MOD_CONTROL, $65); // Win+A(se não me engano é o 65 a maiúscula do a)

O que quiz dizer é que com o MOD_win não tá fazendo diferença entre a maiusculo e minusculo.

Alguém sabe se é isso mesmo?

Outra coisa:

Usei 65 ao invés de $65 e funcionou.

Sempre funciona?

Coloquei o código ascii.

De início havia colocado VK_A, mas não teve nada a ver.

Quando uso uma coisa ou outra?

Alguém poderia comentar?

obrigado.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
RegisterHotKey(Handle, 1, MOD_CONTROL, $65); // Win+A(se não me engano é o 65 a maiúscula do a)
Não neste caso; RegisterHotKey pede a VK(Virtual Key); ou seja; a tecla 'a' ou 'A' é sempre a $41(Hexadecimal) ou 65(Decimal). Tanto faz maiúscula ou minúscula, seu código VK no teclado é sempre o mesmo.
Usei 65 ao invés de $65 e funcionou.

Sempre funciona?

Acho que não porque são teclas diferentes; 65 = $41 e $65 = 101

Link para o comentário
Compartilhar em outros sites

  • 0

Se um programa que esteja rodando está usando

RegisterHotKey(Handle, 1, MOD_CONTROL, $65);

Como posso fazer para que o meu programa tenha prioridade

em relação a esta tecla de atalho?

Tentei colocar

UnRegisterHotKey no oncreat

e depois RegisterHotKey, mas não funcionou.

Link para o comentário
Compartilhar em outros sites

  • 0
Se um programa que esteja rodando está usando

RegisterHotKey(Handle, 1, MOD_CONTROL, $65);

Como posso fazer para que o meu programa tenha prioridade

em relação a esta tecla de atalho?

Como é o Windows quem registra a tecla, o primeiro processo que registrou tem a prioridade; os outros processos não podem registrar uma tecla já registrada.

Vale ressaltar que quando você registra uma tecla, ela fica sem efeito nos outros aplicativos; por ex, se você registra a tecla 'a'($41) e abre o bloco de notas e digita 'a', ela não vai aparecer.

Link para o comentário
Compartilhar em outros sites

  • 0

Entendi, s3c.

Mas objetivando a pergunta.

Tenho um programa cahmado WINKEY(não sei se você comhece).Ele serve para você associar a diversas combinações de teclas com a tecla windows(por exemplo WINDOWS + A). Por exemplo faço o word abrir no meu computador com a combinação Windows + W. Ele abre automáticamente com windows.

A título de estudo fiz o meu winkey, que roda no tray e abre com o windows.

Conforme você mesmo disse a minha tecla WIndows + W não faz nada pelo meu programa, pois

pelo WINKEY ela já está registrada para abrir o word.

Se ela já foi registrada e se pode ser registrada apenas uma vez, como eu poderia fazer para meu programa rodar primeiro e portanto registrar primeiro?

Isto é muito complicado de fazer? Se é que pode se fazer.

Entendeu? No meu caso particular deixo de usar o winkwy e uso o meu programa, mas se no computador de alguém as teclas forem registradas antes, meu programa não funcionaria.

Os dois abrem pelo RUN. Lá existe ordem de prioridade(para que o programa seja aberto) ou é por ordem alfabética?

O que você acha?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...