TECLADO DE AUTOMACAO

MARCELOKROL 10/07/2011 17:28:09
#378892
Olá pessoal.

Estou convertendo o meu sistema de pdv para vb.net, e etou com um problema no uso do teclado.
Bom vamos la:
a dúvida é a seguinte como fazer para pegar a tecla Seta Acima (por exemplo) e converter em outra tecla, ou ainda, capturar uma tecla qualquer e converter para seta acima (por exemplo).

Isso é usado muito em teclados de automação, aqueles usado em supermercados.

desde já agradeço a todos.
PEGUDO 11/07/2011 07:52:55
#378896
Resposta escolhida
    [txt-color=#0000f0]Private Sub[/txt-color] Form1_KeyDown([txt-color=#0000f0]ByVal[/txt-color] sender [txt-color=#0000f0]As[/txt-color] Object, [txt-color=#0000f0]ByVal[/txt-color] e [txt-color=#0000f0]As[/txt-color] System.Windows.Forms.KeyEventArgs) [txt-color=#0000f0]Handles Me[/txt-color].KeyDown
[txt-color=#0000f0]Select Case[/txt-color] e.KeyCode
[txt-color=#0000f0]Case[/txt-color] 37
MsgBox([txt-color=#e80000][Ô]Seta pra esquerda[Ô][/txt-color])
[txt-color=#0000f0]Case[/txt-color] 38
MsgBox([txt-color=#e80000][Ô]Seta pra cima[Ô][/txt-color])
[txt-color=#0000f0]Case[/txt-color] 39
MsgBox([txt-color=#e80000][Ô]Seta pra direita[Ô][/txt-color])
[txt-color=#0000f0]Case[/txt-color] 40
MsgBox([txt-color=#e80000][Ô]Seta pra baixo[Ô][/txt-color])
[txt-color=#0000f0]Case Else[/txt-color]
SendKeys.Send([txt-color=#e80000][Ô]{UP}[Ô][/txt-color])
MsgBox([txt-color=#e80000][Ô]Convertendo para seta para cima[Ô][/txt-color])
[txt-color=#0000f0]End Select
End Sub[/txt-color]
PEGUDO 11/07/2011 10:48:39
#378906
Cara, eu até iria colocar, no exemplo, o Keys.Up, o Keys.Left e assim por diante mas já tive tantos problemas com este tipo de código
que o programa, mesmo reconhecendo o Keys.UP, não executava nada.

Daí a prática dos [Ô]Números mágicos[Ô], em minha opinião, não considero má.

Inclusive tenho dois programas aqui na empresa que só reconheceram as teclas de direção (setas) depois que eu coloquei os [Ô]Números mágicos[Ô].
Vai lá saber porque isto aconteceu, mas estão funcionando até hoje.

De qualquer forma, seja a minha dica ou a do OCELOT, o importante é que possamos ajudá-lo.
MARCELOKROL 11/07/2011 11:03:58
#378908
Agradeço a ajuda de todos

Então como capturar as teclas eu ja tinha conseguido e minha duvida é, como converter uma tecla em outra, por exemplo setas em letras e letras em setas.
PEGUDO 11/07/2011 11:33:41
#378913
Então, Use o SendKeys

[txt-color=#0000f0]Select Case [/txt-color]e.KeyCode
[txt-color=#0000f0]Case[/txt-color] 37 [txt-color=#007100][ô]Seta à esquerda[/txt-color]
SendKeys.Send([txt-color=#e80000][Ô]{A}[Ô][/txt-color])
[txt-color=#0000f0]Case[/txt-color] 38 [txt-color=#007100][ô]Seta pra cima[/txt-color]
SendKeys.Send([txt-color=#e80000][Ô]{B}[Ô][/txt-color])
[txt-color=#0000f0]Case[/txt-color] 39 [txt-color=#007100][ô]Seta à direita[/txt-color]
SendKeys.Send([txt-color=#e80000][Ô]{C}[Ô][/txt-color])
[txt-color=#0000f0]Case[/txt-color] 40
SendKeys.Send([txt-color=#e80000][Ô]{D}[Ô][/txt-color])
[txt-color=#0000f0]End Select[/txt-color]

Para converter letras para setas você captura o ascii dela e utiliza o SenKeys de novo
Por exemplo, para trocar a tecla A (Maiúscula) para a seta à esquerda:

[txt-color=#0000f0]Case[/txt-color] 65
SendKeys.Send(Keys.Left)
Tópico encerrado , respostas não são mais permitidas