Foro de elhacker.net

Programación => 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
  1. Private Sub Command1_Click()
  2.    'Accion que realizaras al picar el boton
  3. End Sub
  4.  
  5. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  6. If KeyCode = vbKeyF9 Then
  7.    Call Command1 'Que haga lo mismo que hace cuando le picas al boton
  8. End If
  9. End Sub
  10.  
  11.  
  12. Private Sub Form_Load()
  13.    Me.KeyPreview = True
  14. End Sub
  15.  
  16.  
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 hecho
Código:
Private 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:

Código:
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
Justamente en la de Timer1.Enabled=True  es donde me da error
Código:
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:
Código:
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
  1. if keycode = vbkeyf9 then
por
Código
  1. 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
  1. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  2. If KeyCode = vbKeyF9 Then
  3.    Call Command1 'Aqui tambien puedes poner el codigo para que el timer se encienda (Timer1.Start) y que el timer tenga el codigo deseado.
  4.    Else
  5. Call Command2 'O sino Timer1.Stop
  6. End If
  7.  
  8. Private Sub Form1_Load()
  9. Me.KeyPreview = True
  10. End Sub
Solucionado?

Espero que te sirva  :xD

Otra manera de hacerlo sería:

Código
  1. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  2. If KeyCode = vbKeyF9 Then
  3. Call Command1 'O sino el Timer1.Start
  4. End If
  5.  
  6. If KeyCode = vbKeyF8 Then
  7. Call Command2 'O sino Timer1.Stop
  8. End If

Ojalá te funcione :)