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

ShellExecute bloquea aplicacion ???

Estas en el tema de ShellExecute bloquea aplicacion ??? en el foro de Visual Basic clásico en Foros del Web. Buen dia a todos.... Tengo una aplicación desde la cual estoy cargando un navegador (con su respectiva pagina web), de la siguiente forma: Código: Dim ...
  #1 (permalink)  
Antiguo 31/01/2008, 09:03
Avatar de aavg  
Fecha de Ingreso: abril-2002
Ubicación: Morelia México
Mensajes: 356
Antigüedad: 22 años
Puntos: 1
ShellExecute bloquea aplicacion ???

Buen dia a todos.... Tengo una aplicación desde la cual estoy cargando un navegador (con su respectiva pagina web), de la siguiente forma:

Código:
    Dim api%
     api% = ShellExecute(frm.hwnd, "open", url$, "", App.path, WindowStyle%)
Si la funcion me regresa un error despliego un mensaje...

Código:
     If api% < 31 Then
        MsgBox "Ocurrio un problema al correr tu navegador"
     ElseIf api% = 32 Then
        MsgBox "No existe asociacion de archivos .html con ningun programa en tu equipo"
     End If
Cuando el navegador carga correctamente la página todo funciona perfecto y le regresa el control a mi aplicación despues de cargar el navegador, pero .... Cuando alguno de los dos mensajes anteriores es presentado, mi aplicación se bloquea y no regresa, hay que terminarla con el administrador de tareas. El primer mensaje de error he conseguido obtenerlo al cerrar el navegador rapidamente antes de que termine de cargar.

Alguna idea de porque el control nunca regresa a la aplicación cuando ocurre un error?

Gracias
__________________
Abraham Velasco
Usuario # 516 en los Foros del Web.
El hombre no vale por lo que sabe, sino por lo que transmite
C'est parce qu'il y a un Dieu que nous sommes libres
  #2 (permalink)  
Antiguo 31/01/2008, 10:38
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: ShellExecute bloquea aplicacion ???

Buen dia, pudiera ser porque estás declarando la variable api como integer y la función ShellExecute retorna un Long.

Prueba declarando la variable así:

Dim api As Long

y refiérete a ella sólo como "api" (sin %)
  #3 (permalink)  
Antiguo 07/02/2008, 15:23
Avatar de aavg  
Fecha de Ingreso: abril-2002
Ubicación: Morelia México
Mensajes: 356
Antigüedad: 22 años
Puntos: 1
Re: ShellExecute bloquea aplicacion ???

Respecto a tu respuesta... quitarle los % es inclusive... funciona de la misma manera.

El recibir el valor tambien da igual si mno le pones un tipo lo toma como VARIANT y recibe e interpreta de la misma forma el valor.

Solo dejandoles saber a los compañeros que el error no es de la aplicación, de alguna manera al cerrar el navegador antes de que termine de cargar genera una caida en algun dll de Windows y el control nunca regresa a la aplicación. Tengo un log e incluí en mi funcion un error handler pero nunca dispara el error el llamado. Asi que ahi se los dejo
__________________
Abraham Velasco
Usuario # 516 en los Foros del Web.
El hombre no vale por lo que sabe, sino por lo que transmite
C'est parce qu'il y a un Dieu que nous sommes libres
  #4 (permalink)  
Antiguo 07/02/2008, 16:09
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: ShellExecute bloquea aplicacion ???

Se pueden decir mas tonterías?

quitarle los % es inclusive... funciona de la misma manera.
¿ y para qué los pones?

El recibir el valor tambien da igual si mno le pones un tipo lo toma como VARIANT y recibe e interpreta de la misma forma el valor
Pues NO)!

Solo dejandoles saber a los compañeros que el error no es de la aplicación
Por supuesto que el error no es de la aplicación sino tuyo.

, de alguna manera al cerrar el navegador antes de que termine de cargar genera una caida en algun dll de Windows y el control nunca regresa a la aplicación.
???? seguro de lo que dices ????

Tengo un log e incluí en mi funcion un error handler pero nunca dispara el error el llamado.

Tienes un log en tu funcion y nunca dispara el error? cual es tu funcion?

Yo no entendí nada, asi que me lo pudieras (o pudieses) explicar te quedaría muy agradecido.
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 16:56.