• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Nazgulled

[VB.NET 2005] Capturar eventos de teclas multimedia em teclados/portateis

19 mensagens neste tópico

Alguem sabe como posso capturar os eventos das teclas multimedia que existem muitos teclados e/ou (principalmente) nos portáteis? Nalguns desses eventos, pretendo fazer um override e tomar as minhas próprias acções quando pressionados neles, em outros, apenas quero saber se foram pressionados e o que estão a fazer.

Por exemplo, o meu portátil tem 5 teclas dessas, DVD, MUSIC, VOLUME + e - e MUTE. As teclas de volume e mute funcionam sem qualquer programa da LG (marca do meu portátil), mas preciso de um programa deles se quiser que o OSD funcione e me mostre o volume e por ai, no entanto, não gosto deste OSD e queria fazer o meu. As teclas DVD e MUSIC, supostamente abrem um leitor de dvd ou leitor de música, ms tenho de ter software especifico instalado e não funciona para o que eu uso e queria programa-las para isso.

Já tentei apanhar as mensagens do Windows, mas sem sucesso... Mas mensagens são apanhadas, mas nenhuma mensagem é produzida quando clico nesses teclas.

Se alguém tiver ideia de como fazer isto...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, por acaso também me dava jeito isso, o meu teclado tem algumas teclas dessas e não tenho os drivers pra ele  :bored:

O que posso fazer é tentar fazer em VB6 e depois como vou utilizar API's tu passas para VB.NET 2005... mas não prometo nada  :P

À tarde quando chegar a casa vejo isso ;)

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ja arranjei APIs e já tenho tudo declarado no VB.NET e parece tar a funcionar, mas isto, para o teclado, para as teclas multimedias ainda não testei. Nem sei se vai funcionar...

EDIT:

As teclas de volume e mute parece estarem a responder, ao retornar o valor de cada tecla quando pressionada, as de volume e mute retornam, mas as teclas DVD e MUSIC não respondem ;) E também queria programa atalhos do teclado com a tecla Fn do portatil, mas esta também não responde... :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ja arranjei APIs e já tenho tudo declarado no VB.NET e parece tar a funcionar, mas isto, para o teclado, para as teclas multimedias ainda não testei. Nem sei se vai funcionar...

EDIT:

As teclas de volume e mute parece estarem a responder, ao retornar o valor de cada tecla quando pressionada, as de volume e mute retornam, mas as teclas DVD e MUSIC não respondem ;) E também queria programa atalhos do teclado com a tecla Fn do portatil, mas esta também não responde... :P

Pelo que parece, tiveste a mesma ideia que eu  :P

Bem... em VB6 acho que consegui qualquer coisita.... fazendo um hook ao teclado consigo fazer com que cada tecla multimédia tenha um keycode diferente, o único problema é que ha teclas multimedia que retornam keycodes iduais a teclas normais. Por exemplo, se eu carrego na tecla para abrir o browser, ele retorna-me o keycode da letra "a" por exemplo. Depois tenho também o retorno do código das virtual keys, e esse retorno em quase todas me dá 255 só não dá em 2. Portanto, se fizer o cruzamento de informação entre estes 2 valores sei qual foi a tecla pressionada  :)

Se quiseres eu posso-te arranjar o código fonte que estou a utilizar, é só dizeres ;)

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu estou a usar este código:

http://www.developer.com/net/net/article.php/11087_2193301_3

O qual é uma revisão do código antigo que era para o vb6, para o vb.net, do mesmo autor.

Se puderes, faz so um simples programa que apresenta numa caixa de texto os varios keycodes devolvidos quando se pressiona qq tecla, para ver se funciona para o que eu quero no meu portatil.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas... desculpa lá a demora mas só agora é que pude fazer isto  :)

Estive a ver e esse código que esta nessa página é mt idêntico ao que estou a utilizar, ambos utilizam o mesmo mecanismo.

como de momento não consigo colocar anexos fica alojado aqui

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso não me ajuda muito porque eu queria era já um programa compilado para testar no meu teclado e ver os keycodes que ele retornar, porque se nada for retornado, esta tecninca não vai funcionar para o que quero. E isso tá em VB6, eu useo VB.NET, não tenho como compilar isso sem ter o trabalho de estar a converter o código, algo para o qual não tenho tempo neste momento...

Se não te der muito trabalho, so te peço que cries com esse código, algo que escreva numa textbox os keycodes de todas as teclas que forem pressionadas e assim eu vejo se a tecla que eu pressionei retornou alguma coisa...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui esta o executável com o que pedis-te

Download

P.S.

Como estou a fazer um hook ao teclado é natural que a tua firewall ou antivírus te dê algum aviso  :)

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

N uso dessas coisas lol, só antivirus que fica caladinho... Mas também não deu, as teclas que eu quero, não retorna nada... :S que xunga

desculpa la e obrigado pelo trabalho

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ao clicares no Fn retorna um keycode?

Estava a referir-me aos outros botões extras, tipo aquelas teclas multimédia e de atalho.

Na altura não experimentei os botões do Fn, vou verificar e já digo algo.

EDIT: Só não funcionam as do brilho do ecrã e a de passar para projector/tv.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é isso que eu quero saber... Com o programa do NuGuN, pressiona APENAS a tecla Fn, sem mais nenhuma outra... e vê se retorna algum keycode no teu portatil.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

Bem.. se o problema é o Fn que não retorna valor nenhum então não sei como é porque tipo, eu por acaso tenho um teclado quase igual ao dos portateis e tem essa tecla e também não me retorna nenhum valor. Mas quando carrego nele e depois pressiono outra tecla que seja para trabalhar com o Fn como por exemplo a tecla do "ç" que no meu caso tem o sinal de mais essa tecla retorna outros valores diferentes e o mesmo acontece com as teclas multimédia.

Agora.... eu não sei bem o que queres fazer com isto.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Queria fazer um programa que substituisse todos os que tenho da LG relativamente as teclas e OSD.

Tive a exprimentar o que disseste e eu nas setas direcionais tenho o pageup, pagedow, home e end e funcionam com o Fn, estas retornam um keycode difrente se o fn estiver pressionado. Mas outras, por exemplo do F1 ate ao F12, onde todas elas tem acções usando o Fn, retorna keycodes sem o Fn mas com ele, não retornam nada...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora