Duda en visual basic

Iniciado por Hack-11, 15 Junio 2011, 01:10 AM

0 Miembros y 1 Visitante están viendo este tema.

Hack-11

Buenas esta misma mañana empeze con visual basic a hacer cosas sencilla y demas hize una calculadora lo tipico que se hace cuando se empieza y creando un autoclick que bueno en realidad la mitad del codigo lo saque de la red yo solo lo retoue un poco y me gustaria saber como añadirle a un boton una tecla por ejemplo yo tengo un boton que es activar y para que sea mas sencillo en vez de clikear en el como se haria para que pulsando f9 se activase??

Le agradeceria que me lo dijesen... Gracias :)

ignorantev1.1

Código (vb) [Seleccionar]
Private Sub Command1_Click()
    'Accion que realizaras al picar el boton
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF9 Then
    Call Command1 'Que haga lo mismo que hace cuando le picas al boton
End If
End Sub


Private Sub Form_Load()
    Me.KeyPreview = True
End Sub


Espero y te sirva... salud!... hip!

Hack-11

#2
Muchas gracias pero me da un error al copilar y nose que hago mal ahi les dejo el code aver si me dicen que esta mal hechoPrivate Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Const MOUSELEFTDOWN = &H2 ' left button down /This is actually MOUSEEVENTF_LEFTDOWN
Private Const MOUSELEFTUP = &H4 ' left button up /This is actually MOUSEEVENTF_LEFTUP
Private Const KEY_TOGGLED As Integer = &H1
Private Const KEY_PRESSED As Integer = &H1000

Private Sub Command1_Click()
Timer1.Enabled = True

End Sub

Private Sub Command2_Click()
Timer1.Enabled = False
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF9 Then
   Call Command1 Timer1.Enabled = True
End If
End Sub

Private Sub Form_Load()

Timer1.Enabled = False
Timer2.Enabled = True
Me.KeyPreview = True
End Sub





Private Sub Image1_Click()

End Sub

Private Sub Option3_Click()
Timer1.Interval = (1)
End Sub

Private Sub Timer1_Timer()
mouse_event MOUSELEFTDOWN, 0, 0, 0, 0 'left button goes down
mouse_event MOUSELEFTUP, 0, 0, 0, 0 'left button comes up
End Sub

Private Sub Timer2_Timer()
If GetKeyState(vbKeyF1) And KEY_PRESSED Then
Timer1.Enabled = True
ElseIf GetKeyState(vbKeyF2) And KEY_PRESSED Then
Timer1.Enabled = False
End If
End Sub


Me da error en  la parte de:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF9 Then
   Call Command1 Timer1.Enabled = True
End If


Justamente en la de Timer1.Enabled=True  es donde me da error

Si alguien me dice donde esta el error se lo agradeceria :)

Al final postee para nada ya se donde esta el error grax

79137913

HOLA!!!

Si queres algo aun mas simple entra al editor de menus (Ctrl + E en modo edicion de formulario) Crea un menu que sea Visible  = False y que su ShortCut  = F9, con eso tendrias el tema solucionado casi sin codigo ;).

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

Hack-11

Lo tomare en cuenta para la proxima vez pero ya consegui que se activase lo malo esque aun tengo que hacer lo mismo para que se desactive y seguro que me tiro un ratejo mas jaja

raul338

Cita de: Hack-11 en 15 Junio 2011, 12:48 PM
Justamente en la de Timer1.Enabled=True  es donde me da error
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF9 Then
    Call Command1
    Timer1.Enabled = True
End If


Todavia me pregunto porque lo hiciste asi

En vb no se pueden poner instrucciones seguidas si no es con el signo ":"

Hack-11

Ya pero esque empeze ayer y entonces tuve que probar hasta que di con la correcta jaja Por cierto se me activa con el F9 pero quiero que se desactive con F8 y no se como hacerle intente esto pero no me resulto se me queda igual:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF9 Then
    Call Command1_Click
If KeyCode = vbKeyF8 Then
    Call Command2_Click
End If
End If
End Sub


PD:Al final con tanta pregunta tanta pregunta me vais a hacer la mitad del codigo pero esque es mi 2º dia en estod e la programacion nunca antes lo hize y nose como funcionan muy bien las cosas

raul338

#7

Hack-11

Eso es mejor la verdad jaja Gracias

ignorantev1.1

Pos con un poquito de sentido comun podras darte cuenta que si cambias:
Código (vb) [Seleccionar]
if keycode = vbkeyf9 then por
Código (vb) [Seleccionar]
if keycode = vbkeyf8 then Seactivara con F8 y no con F9:
http://msdn.microsoft.com/en-us/library/aa243025%28v=vs.60%29.aspx

Salud!