Paulo Nobre Postado Março 31, 2006 Denunciar Share Postado Março 31, 2006 RegisterHotKey(Handle, 1, MOD_CONTROL, $41); // Ctrl+aSErve para registrar a combinação ctrl +a,Mas, percebi que para usar a tecla windows serveRegisterHotKey(Handle, 1, MOD_Win, $41); // win+aouRegisterHotKey(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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Março 31, 2006 Denunciar Share Postado Março 31, 2006 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Março 31, 2006 Autor Denunciar Share Postado Março 31, 2006 Entendi, s3c, quando se usa o decimal é que se coloca o $.Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Março 31, 2006 Denunciar Share Postado Março 31, 2006 Entendi, s3c, quando se usa o decimal é que se coloca o $.O $ é a representação hexadecimal(base 16); sem o $ é a representação decimal(base 10).$41 = 1 + (4*16) = 65 = 5 + (6*10) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Março 31, 2006 Autor Denunciar Share Postado Março 31, 2006 Obrigado s3c, havia entendido, só que escrevi errado.Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Abril 1, 2006 Autor Denunciar Share Postado Abril 1, 2006 Se um programa que esteja rodando está usandoRegisterHotKey(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 oncreate depois RegisterHotKey, mas não funcionou. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Abril 1, 2006 Denunciar Share Postado Abril 1, 2006 Se um programa que esteja rodando está usandoRegisterHotKey(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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Abril 1, 2006 Autor Denunciar Share Postado Abril 1, 2006 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, poispelo 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Abril 3, 2006 Denunciar Share Postado Abril 3, 2006 Olá Paulo, acho que é por ordem alfabética. Tente colocar seu programa antes do Winkey. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo Nobre Postado Abril 3, 2006 Autor Denunciar Share Postado Abril 3, 2006 Ok, s3c, entendi.Vou colocar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Paulo Nobre
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
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.