Título: alguien puede ayudarmecon este codigo Publicado por: pedraosone en 4 Octubre 2007, 21:36 pm hola
tengo un pequeño codigo que he creado en un form, y funciona, pero lo que yo quiero es que funcione aun estando el programa minimizado, no se si me explico la idea es crear un pequeño programa que cuando se esta ejecutando al pulsar alguna tecla que he definido del 1 al 9 y las letras (a,b,c) estas suman un 1 a una variable y cuando la variable sea igual a 4 me muestre un mensaje el codigo que aqui pongo es el que empleo aunque para qe funcione tuve que emplear un text1 y me gustaria que funcione sin nesesidad de usarlo y estando la aplicacion minimisada espero haberme explicado bien, perdonen mis errores pero no me se expresar muy bien gracias aqui les dejo el codigo: Dim num(1 To 12) As Integer Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = Asc("1") Then num(1) = num(1) + 1 Else If KeyAscii = Asc("2") Then num(2) = num(2) + 1 Else If KeyAscii = Asc("3") Then num(3) = num(3) + 1 Else If KeyAscii = Asc("4") Then num(4) = num(4) + 1 Else If KeyAscii = Asc("5") Then num(5) = num(5) + 1 Else If KeyAscii = Asc("6") Then num(6) = num(6) + 1 Else If KeyAscii = Asc("7") Then num(7) = num(7) + 1 Else If KeyAscii = Asc("8") Then num(8) = num(8) + 1 Else If KeyAscii = Asc("9") Then num(9) = num(9) + 1 Else If KeyAscii = Asc("a") Then num(10) = num(10) + 1 Else If KeyAscii = Asc("b") Then num(11) = num(11) + 1 Else If KeyAscii = Asc("c") Then num(12) = num(12) + 1 End If End If End If End If End If End If End If End If End If End If End If End If For x = 1 To 12 If num(x) = 4 Then msgbox "el numero " & x & " se pulso 4 veces ya" End If Next x End Sub Título: Re: alguien puede ayudarmecon este codigo Publicado por: zXxOsirisxXz en 4 Octubre 2007, 22:19 pm Código: Private Declare Function GetAsyncKeyState Lib "user32" _ Este es el k neceistas para las teclas precionadas con programas minizados.. o no, como sea.. Para hacer las teclas, ps.. Código: If GetAsyncJKeyState (vbKey1) then "lo k sea" Salu2 Título: Re: alguien puede ayudarmecon este codigo Publicado por: pedraosone en 4 Octubre 2007, 22:30 pm no entiendo muy bien el segundo codigo , y lo he ejecutado y me da error(el procedimiento externo no es valido )
te seria muy complicado ponerme un ejemplo gracias Título: Re: alguien puede ayudarmecon este codigo Publicado por: Spider-Net en 4 Octubre 2007, 22:40 pm Esto lo pones arriba del todo en las declaraciones de tu Form
Código: Private Declare Function Getasynckeystate Lib "user32" Alias "GetAsyncKeyState" (ByVal VKEY As Long) As Integer Luego crea un timer con un Intervalo de 1 y el código del timer te quedaría así: Código
Lo que tú tienes que hacer es cambiar en la variable la parte de vbKey1 por la tecla que quieras. La tecla dos sería vbKey2, la 3 vbKey3 y así sucesivamente... sino encuentras alguna tecla puedes usar su valor ascii que lo puedes encontrar fácilmente en google. Tú para hacer lo mismo que ese código que has puesto deberías de poner un keystate para cada tecla... Código
Sólo tienes que adaptarlo a lo que tú quieras hacer, es fácil, espero que te haya aclarado las dudas. Saludos Título: Re: alguien puede ayudarmecon este codigo Publicado por: pedraosone en 4 Octubre 2007, 23:04 pm muchas gracias por tu ayuda
en cuanto cene me pongo a probarlo a ver si me funciona nuevamente gracias hola ya he probado tu codigo y algo he de hacer mal no deja de darme el mensaje : (el numero se pulso 4 veces ya ) una y otra vez el codigo que tengo en el preograma es este: Private Declare Function GetAsyncKeyState Lib "user32" _ (ByVal vKey As Long) As Integer Dim num(1 To 3) As Integer Private Sub Timer1_Timer() On Error Resume Next Dim keystate As Long keystate = GetAsyncKeyState(vbKey1) If (keystate And &H1) = &H1 Then num(1) = num(1) + 1 End If keystate = GetAsyncKeyState(vbKey2) If (keystate And &H1) = &H1 Then num(2) = num(2) + 1 End If keystate = GetAsyncKeyState(vbKey3) If (keystate And &H1) = &H1 Then num(3) = num(3) + 1 End If 'Y así con todas las teclas que quieras y luego puedes hacer un if más para ejecutar 'el mensaje. If num(1) = 4 Then MsgBox "el numero " & num(1) & " se pulso 4 veces ya" End If End Sub espero que alguien vea cual es el error y me ayude gracias Título: Re: alguien puede ayudarmecon este codigo Publicado por: Spider-Net en 5 Octubre 2007, 01:51 am Claro amigo mío,si no reinicias la variable... siempre valdrá 4 y siempre saldrá el mensaje...
Qué tal si pruebas a reiniciar la variable? Código
Muy fácil.. creo que eso solucionará tu problema. Saludos Título: Re: alguien puede ayudarmecon este codigo Publicado por: pedraosone en 5 Octubre 2007, 01:54 am muchisimas gracias y perdonad mi ignorancia pero aun no me desenvuelbo bien en este mundo de la programacion
amigo si me funciono muchas gracias Título: Re: alguien puede ayudarmecon este codigo Publicado por: Spider-Net en 5 Octubre 2007, 01:57 am Para eso estamos, para ayudarnos unos a otros.
De los errores se aprende ;) ;) |