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 :)
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!
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
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!!!
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
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 asiEn vb no se pueden poner instrucciones seguidas si no es con el signo ":"
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
Índice del Curso Básico
de Programación en Visual Basic (por Guillermo "guille" Som) (http://www.elguille.info/vb/cursos_vb/BASICO/indice.htm)
Busca sobre el Else (condicionales, If) :P
Eso es mejor la verdad jaja Gracias
Pos con un poquito de sentido comun podras darte cuenta que si cambias: if keycode = vbkeyf9 then
por 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!
Es muy simple..
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF9 Then
Call Command1 'Aqui tambien puedes poner el codigo para que el timer se encienda (Timer1.Start) y que el timer tenga el codigo deseado.
Else
Call Command2 'O sino Timer1.Stop
End If
Private Sub Form1_Load()
Me.KeyPreview = True
End Sub
Solucionado?
Espero que te sirva :xD
Otra manera de hacerlo sería:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF9 Then
Call Command1 'O sino el Timer1.Start
End If
If KeyCode = vbKeyF8 Then
Call Command2 'O sino Timer1.Stop
End If
Ojalá te funcione :)