Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Deshabilitar el teclado via Visual Basic

Estas en el tema de Deshabilitar el teclado via Visual Basic en el foro de Visual Basic clásico en Foros del Web. Hola a todos: Alguien sabe como puedo deshabilitar el teclado con codigo visual basic??? Saludos.......
  #1 (permalink)  
Antiguo 27/04/2010, 16:34
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Deshabilitar el teclado via Visual Basic

Hola a todos:

Alguien sabe como puedo deshabilitar el teclado con codigo visual basic???
Saludos....
  #2 (permalink)  
Antiguo 29/04/2010, 06:43
Avatar de A.H.H  
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Deshabilitar el teclado via Visual Basic

Hola con este ejemplo lo puedes hacer
coloca en un formulario un timer y agrega un modulo al proyecto y:

'-----Modulo-----
Public Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long

'-----Programa-----
'Durante 10 segundos el teclado y mouse quedaran bloqueados'

Private Sub Form_Load()
msgbox "'Durante 10 segundos el teclado y mouse quedaran bloqueados"
Timer1.interval = 1000
BlockInput True
End Sub

Private Sub Timer1_Timer()
Static contador As Integer
contador = contador + 1
If contador = 10 Then BlockInput False: MsgBox "TIEMPO! desbloqueado"
End Sub



CON ESTO DESHABILITAS EL TECLADO Y EL RATON TAMBIEN


SALU2
  #3 (permalink)  
Antiguo 29/04/2010, 09:49
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Deshabilitar el teclado via Visual Basic

Hola A.H.H.

¿Esto se puede implementar a nivel de Script con Visual Script?

Saludos...
  #4 (permalink)  
Antiguo 30/04/2010, 13:17
Avatar de A.H.H  
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Deshabilitar el teclado via Visual Basic

Yo creo que si se puede, lo que no se es como se declaran las apis en .vbs
o como se hace referencia a user32 y a inputblock.

lo demas seria cambiar el timer por un sleep 10000 o algo asi.

estoy buscando como se hace referencia en .vbs a las apis ya te dire algo si encuentro.

salu2
  #5 (permalink)  
Antiguo 30/04/2010, 13:40
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Deshabilitar el teclado via Visual Basic

Hola A.H.H.

Ya cheque algunas cosas por Internet en la mayoria comentan que para poder hacer el llamado de la API de Windows es necesario crear algun componente. Ahora básicamente mi problema es este: Tengo una aplicacion y no cuento con codigo fuente, esto es importante saberlo, esta misma la puedo modificar via scripts, ahora el detalle que he encontrado es que en ocasiones el buffer del teclado se queda con informacion y esto me produce que se ejecuten eventos que yo no deseo que se ejecuten. Pensé en 2 modos de evitarlo y uno de ellos es bloquear el teclado, pero aunado a ello debo limpiar el buffer del teclado. Es importante que mencione que este paso es importante (limpiar el buffer). ¿Sabes como puedo hacer?. No olvidemos que trabajo con scripts

Saludos...
  #6 (permalink)  
Antiguo 04/05/2010, 12:00
Avatar de A.H.H  
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Deshabilitar el teclado via Visual Basic

HOLA yera2002

perdona por tardar en contestar pero he estado buscando y no encuentro en vbs la forma de limpiar el bufer del teclado.
No se que tipo de programa es en el que estas.

me refiero a que si lo que quieres borrar son las pulsaciones de una caja de texto o algo asi.

Lo unico que se me ocurre es que puedes hacer pulsaciones de retroceso(como si hubieras pulsado la tecla de borrar) con sendkeys.
Osea si haces varios sendkeys con el retroceso borras lo escrito en la caja, nose....
Aunque eso en el buffer del teclado no se si sirve para algo......

ejemplo para borrar letras en el block de notas con sendkeys por si te sirve de algo:
En el ejemplo Primero escribimos frases y luego borramos tres letras de la segunda frase y despues 11 letras de golpe y despues cerramos el bloc de notas:


Set objshell = createobject("wscript.shell")
Set bloc = objshell.exec("notepad")
Wscript.sleep 2000
Objshell.appactivate bloc.processid
Wscript.sleep 200
Objshell.sendkeys "Ejemplo Escribir vbscript"
Objshell.sendkeys "{ENTER}"
Wscript.sleep 2000
Objshell.sendkeys "Probando la funcion sendkeys con Retroceso"
Wscript.sleep 2000
Objshell.sendkeys "{BACKSPACE}"
Wscript.sleep 2000
Objshell.sendkeys "{BACKSPACE}"
Wscript.sleep 2000
Objshell.sendkeys "{BACKSPACE}"
Wscript.sleep 2000
Objshell.sendkeys "{BACKSPACE 11}"
Wscript.sleep 2000
bloc.terminate



No se si te servira de algo salu2

Nota: el ejemplo lo he sacado de:

http://foro.elhacker.net/scripting/t...t229032.0.html
  #7 (permalink)  
Antiguo 06/05/2010, 11:18
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Deshabilitar el teclado via Visual Basic

Hola A.H.H.

Gracias por tu respuesta me encuentro en proceso de pruebas. Básicamente el problema que tengo es que en el buffer del teclado se quedan guardados teclazos de los usuarios (no hablo de 1 o 2 sino de varios), como yo manejo todo por Script, el tiempo de respuesta me afecta un poco. Vamos a suponer. Estoy terminando una operacion de compra y escribo el monto de pago que son 100.00. Pero el usuario como tarda un poco en responder el server, unos 5 seg. presiona varias veces la tecla ENTER. Entonces cuando yo terminó la impresion tengo guardado en el buffer esas presiones del teclado, como formadas, y por ello requiero que al momento de enviar a imprimir este buffer de teclado se borre. Para que no se ejecuten eventos. Porque en ocasiones (no siempre) se ejecutan que eventos que nodeben pasar

SAludos...

Etiquetas: basic, deshabilitar, teclado, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:18.