Buenas
Bueno la verdad es que tengo un portatil e machines con teclado ingles europeo, y resulta que no tiene la tecla <>, y de verdad que es necesaria, asi que decidi realizar una aplicacion para tomar otra tecla que tiene instalada pero no tiene acciones alguna. he hize esto:
Const SW_NORMAL As Short = 1
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Integer, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Integer) As Integer
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Hide()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim Key As String = Nothing
Dim i As Integer
For i = 0 To 255
'Consultamos el valor de la tecla mediante el Api.
'Si se presionó devuelve -32767 y mostramos el valor de i
If GetAsyncKeyState(i) = -32767 Then
Key = Chr(i)
End If
Next
Try
If asc(Key) = 255 Then
My.Computer.Keyboard.SendKeys("<")
ElseIf asc(Key) = 255 And My.Computer.Keyboard.ShiftKeyDown Then
My.Computer.Keyboard.SendKeys(">")
ElseIf asc(Key) = 255 And My.Computer.Keyboard.CtrlKeyDown Then
My.Computer.Keyboard.SendKeys("<>")
ElseIf asc(Key) = 255 And My.Computer.Keyboard.CtrlKeyDown And My.Computer.Keyboard.ShiftKeyDown Then
My.Computer.Keyboard.SendKeys("</>")
End If
Catch ex As Exception
End Try
End Sub
Bueno resutlta que SI entra a los if , pero No envia a la ventana activa el caracter.
Pregunto que hice mal??? o que me falta....
Esta hecho en .net 3.5
De ante mano muchas gracias