Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Hack-11 en 15 Junio 2011, 01:10 AM

Título: Duda en visual basic
Publicado por: Hack-11 en 15 Junio 2011, 01:10 AM
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 :)
Título: Re: Duda en visual basic
Publicado por: ignorantev1.1 en 15 Junio 2011, 02:37 AM
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!
Título: Re: Duda en visual basic
Publicado por: Hack-11 en 15 Junio 2011, 12:48 PM
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
Título: Re: Duda en visual basic
Publicado por: 79137913 en 15 Junio 2011, 13:23 PM
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!!!
Título: Re: Duda en visual basic
Publicado por: Hack-11 en 15 Junio 2011, 13:32 PM
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
Título: Re: Duda en visual basic
Publicado por: raul338 en 15 Junio 2011, 14:22 PM
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 ":"
Título: Re: Duda en visual basic
Publicado por: Hack-11 en 15 Junio 2011, 14:37 PM
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
Título: Re: Duda en visual basic
Publicado por: raul338 en 15 Junio 2011, 14:56 PM
Í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
Título: Re: Duda en visual basic
Publicado por: Hack-11 en 15 Junio 2011, 15:01 PM
Eso es mejor la verdad jaja Gracias
Título: Re: Duda en visual basic
Publicado por: ignorantev1.1 en 15 Junio 2011, 18:17 PM
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!
Título: Re: Duda en visual basic
Publicado por: SimP.- en 19 Junio 2011, 15:29 PM
Es muy simple..

Código (vb) [Seleccionar]
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:

Código (vb) [Seleccionar]
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 :)