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

Error 70 en tiempo de ejecución: Se ha denegado el permiso

Estas en el tema de Error 70 en tiempo de ejecución: Se ha denegado el permiso en el foro de Visual Basic clásico en Foros del Web. Hola Foristas!!! Les cuento el problema... Como indica el título de tema.... Tengo ese error en tiempo de ejecución... que ocurre cuando presiono la tecla ...
  #1 (permalink)  
Antiguo 24/06/2010, 05:56
 
Fecha de Ingreso: febrero-2009
Mensajes: 101
Antigüedad: 15 años, 9 meses
Puntos: 0
Error 70 en tiempo de ejecución: Se ha denegado el permiso

Hola Foristas!!!

Les cuento el problema...

Como indica el título de tema.... Tengo ese error en tiempo de ejecución... que ocurre cuando presiono la tecla "Enter". Teniendo en el evento key_press del Form lo siguiente:

Código vb:
Ver original
  1. Private Sub Form_KeyPress(KeyAscii As Integer)
  2.     If KeyAscii = 13 Then
  3.         SendKeys "{tab}"
  4.         KeyAscii = 0
  5.     End If
  6.    
  7.     If KeyAscii = 27 Then
  8.         Unload Me
  9.     End If
  10. End Sub

El error lo indica justamente en SendKeys "{tab}" . Este código lo que me permite es pasar de control a control cuando el usuario presione enter... No se si sea un dato que infiera... pero cuando tenia instalado XP me funcionaba bien... Ahora que tengo instalado Windows 7 32 Bit es que me presenta el error.

Gracias ...
Saludos y Éxito
__________________
Fiorellita
  #2 (permalink)  
Antiguo 24/06/2010, 08:15
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 3 meses
Puntos: 29
Respuesta: Error 70 en tiempo de ejecución: Se ha denegado el permiso

Puede que el Win7 no te admita el sendkeys por temas de seguridad.
Quizá puedas usando keybd_event.


Código vb:
Ver original
  1. Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
  2.  
  3. Private Sub Form_KeyPress(KeyAscii As Integer)
  4.   If KeyAscii = 13 Then
  5.      keybd_event vbKeyTab, 1, 0, 0
  6.      keybd_event vbKeyTab, 1, 6, 0
  7.      KeyAscii = 0
  8.    End If
  9.    If KeyAscii = 27 Then
  10.       Unload Me
  11.    End If
  12. End Sub

En caso de persistir el problema yo veo 2 opciones:
1º si cada elemento por el que tienes que pasar tiene un nombre diferente tendrás que poner el código en todos los eventos keypress:

Código vb:
Ver original
  1. Private Sub Text1_KeyPress(KeyAscii As Integer)
  2.     If KeyAscii = 13 Then
  3.         Text2.SetFocus
  4.         KeyAscii = 0
  5.     End If
  6.     If KeyAscii = 27 Then
  7.         Unload Me
  8.     End If
  9. End Sub
  10.    
  11. Private Sub Text2_KeyPress(KeyAscii As Integer)
  12.     If KeyAscii = 13 Then
  13.         Text3.SetFocus
  14.         KeyAscii = 0
  15.     End If
  16.     If KeyAscii = 27 Then
  17.         Unload Me
  18.     End If
  19. End Sub
  20.  
  21. 'etc...
  22. 'y en el ultimo textbox dentras que ir al boton aceptar supongo
  23.  
  24. Private Sub Text15_KeyPress(KeyAscii As Integer)
  25.     If KeyAscii = 13 Then
  26.         btnAceptar.SetFocus
  27.         KeyAscii = 0
  28.     End If
  29.     If KeyAscii = 27 Then
  30.         Unload Me
  31.     End If
  32. End Sub

2º Sin embargo si tienes una matriz de textbox lo tienes mas facil:

Código vb:
Ver original
  1. Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
  2.     If KeyAscii = 13 Then
  3.         If Index = Ubound(Text1) Then
  4.               btnAceptar.SetFocus
  5.         Else
  6.               Text1(Index + 1).SetFocus
  7.         End If
  8.         KeyAscii = 0
  9.     End If
  10.     If KeyAscii = 27 Then
  11.         Unload Me
  12.     End If
  13. End Sub

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Etiquetas: permiso
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 21:05.