elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Detectar tecla presionada y enviarla a una ventana activa....
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Detectar tecla presionada y enviarla a una ventana activa....  (Leído 3,177 veces)
Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Detectar tecla presionada y enviarla a una ventana activa....
« en: 24 Abril 2010, 20:08 pm »

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:

Código
  1. Const SW_NORMAL As Short = 1
  2.    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
  3.    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
  4.  
  5.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.        Me.Hide()
  7.    End Sub
  8.  
  9.    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  10.        Dim Key As String = Nothing
  11.        Dim i As Integer
  12.        For i = 0 To 255
  13.            'Consultamos el valor de la tecla mediante el Api.  
  14.            'Si se presionó devuelve -32767 y mostramos el valor de i  
  15.            If GetAsyncKeyState(i) = -32767 Then
  16.                Key = Chr(i)
  17.            End If
  18.        Next
  19.        Try
  20.            If asc(Key) = 255 Then
  21.                My.Computer.Keyboard.SendKeys("<")
  22.            ElseIf asc(Key) = 255 And My.Computer.Keyboard.ShiftKeyDown Then
  23.                My.Computer.Keyboard.SendKeys(">")
  24.            ElseIf asc(Key) = 255 And My.Computer.Keyboard.CtrlKeyDown Then
  25.                My.Computer.Keyboard.SendKeys("<>")
  26.            ElseIf asc(Key) = 255 And My.Computer.Keyboard.CtrlKeyDown And My.Computer.Keyboard.ShiftKeyDown Then
  27.                My.Computer.Keyboard.SendKeys("</>")
  28.            End If
  29.        Catch ex As Exception
  30.        End Try
  31.    End Sub
  32.  

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



En línea

Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines