Ver Mensaje Individual
  #8 (permalink)  
Antiguo 18/02/2010, 16:20
Avatar de erbuson
erbuson
 
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: Estaba haciendo esta api y no me lo hace si podes ayudar mejor

1 - Crea un nuevo proyecto
2 - Inserta un Timer1 y un Label1
Copia y pega este código
Pruébalo y verás como funciona correctamente esta API

Código vb:
Ver original
  1. Option Explicit
  2.  
  3. ' Api Captura Teclado
  4. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
  5.  
  6. Function KeysPressed(KeyCode1 As KeyCodeConstants, Optional KeyCode2 As KeyCodeConstants, Optional KeyCode3 As KeyCodeConstants) As Boolean
  7.   ' Funcion que devuelve VERDADERO si se pulsaron las teclas solicitadas
  8.  If GetAsyncKeyState(KeyCode1) >= 0 Then Exit Function
  9.   If KeyCode2 = 0 Then KeysPressed = True: Exit Function
  10.   If GetAsyncKeyState(KeyCode2) >= 0 Then Exit Function
  11.   If KeyCode3 = 0 Then KeysPressed = True: Exit Function
  12.   If GetAsyncKeyState(KeyCode3) >= 0 Then Exit Function
  13.   KeysPressed = True
  14. End Function
  15.  
  16. Private Sub Form_Load()
  17.   ' Activamos TIMER que capturará las teclas por ejemplo cada 10 milisegundos
  18.  Timer1.Interval = 10
  19.   Timer1.Enabled = True
  20.   ' Maximizamos la pantalla
  21.  Me.WindowState = vbMaximized
  22.   ' Ajustamos y centramos el Label
  23.  Label1.FontSize = 18
  24.   Label1.FontBold = True
  25.   Label1.ForeColor = vbRed
  26.   Label1.Caption = "oOo"
  27.   Label1.AutoSize = True
  28.   Label1.Move (Screen.Width - Label1.Width) / 2, (Screen.Height - Label1.Height) / 2
  29. End Sub
  30.  
  31. Private Sub Timer1_Timer()
  32.  ' Captura de Teclas en el Temporizador
  33. Timer1.Enabled = False
  34.  If KeysPressed(vbKeyLeft) Then
  35.    Label1.Move Label1.Left - 10
  36.  ElseIf KeysPressed(vbKeyUp) Then
  37.    Label1.Move Label1.Left, Label1.Top - 10
  38.  ElseIf KeysPressed(vbKeyDown) Then
  39.    Label1.Move Label1.Left, Label1.Top + 10
  40.  ElseIf KeysPressed(vbKeyRight) Then
  41.    Label1.Move Label1.Left + 10
  42.  End If
  43.  Timer1.Enabled = True
  44. End Sub
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...