** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Cerrar ventana de Internet
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Cerrar ventana de Internet

 Responder Responder
Autor
Mensaje
Jose35 Ver desplegable
Nuevo
Nuevo


Unido: 05/Noviembre/2017
Localización: Aljaraque
Estado: Sin conexión
Puntos: 41
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Jose35 Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Cerrar ventana de Internet
    Enviado: 06/Junio/2018 a las 23:29
Buenas nuevamente, os pido ayuda, resulta que desde mi formulario accedo constantemente a la intranet de mi trabajo y abro muchas sesiones de IE con el shell.


Por ejemplo para abrir algunas aplicaciones hasta llegar a la ventana que me interesa, lo mismo he tenido que lanzar 5 URLs algunas con claves de usuario y password y cuando se abre la última que es la que me interesa voy cerrando manualmente las ventanas con cada URl que se me ha quedado abierta.

Hay alguna forma de que esas ventanas que alguna veces abro se cierren solas, mediante alguna línea de comando?

Saludos al foro
Arriba
MexMan70 Ver desplegable
Colaborador
Colaborador


Unido: 17/Julio/2007
Localización: DarkSide
Estado: Sin conexión
Puntos: 9220
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita MexMan70 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 06/Junio/2018 a las 23:36
Hola Jose35, que tal andas en código VBA y API's ?

Saludos !!
OneDrive: http://sdrv.ms/Vk6eJd
Arriba
Jose35 Ver desplegable
Nuevo
Nuevo


Unido: 05/Noviembre/2017
Localización: Aljaraque
Estado: Sin conexión
Puntos: 41
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Jose35 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 07/Junio/2018 a las 00:09
Hago mis pinitos, para no tener ni idea de access, cogiendo de aquí y de allá, adaptando esto y aquello, tengo escritas bastantes líneas de código vba para access, que me facilitan mucho mi día a día en mi trabajo, pero en esto estoy estancado.

Saludos
Arriba
MexMan70 Ver desplegable
Colaborador
Colaborador


Unido: 17/Julio/2007
Localización: DarkSide
Estado: Sin conexión
Puntos: 9220
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita MexMan70 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 07/Junio/2018 a las 16:52
Bien, la API para buscar procesos (ventanas) se llama FindWindow y para cerrar el proceso se llama PostMessage.

Las declaras (de preferencia en un modulo estándar) y creas una función para invocarla en cualquier parte de tu código. Ejemplo:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_CLOSE = &H10
Const gcClassnameMSIExplorer = "IEFrame"

Public Function IE_Buscar()
'KPD-Team 1998
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'Fecha: 23/02/2004
'Autor: MexMan70
'Descripción: Código modificado para cerrar unicamente ventanas de IE
Dim WinWnd As Long
    
    'Search the window
    WinWnd = FindWindow(gcClassnameMSIExplorer, vbNullString)
    If WinWnd = 0 Then MsgBox "No se encontró la Ventana...": Exit Function
    If MsgBox("Desea cerrar la(s) ventana(s) ?", vbQuestion + vbYesNo, "Atención") = vbYes Then
       'Post a message to the window to close itself
       PostMessage WinWnd, WM_CLOSE, 0&, 0&
    End If
End Function

El autor de la Función original esta en los créditos y yo la modifique para cerrar solo las ventanas de Internet Explorer.

En la página del autor hay un programa muy bueno para ver ejemplos de API's y sus declaraciones, trae incluso ejemplos en VB clásico pero es fácil adaptarlos. 

Hace tiempo di una charla acerca de dicho programa para usar las API's, lo puedes encontrar en https://accessusergroups.org en el capítulo de Latino América.

Este grupo cada mes tiene interesantes charlas de Access.

Saludos !!

OneDrive: http://sdrv.ms/Vk6eJd
Arriba
Jose35 Ver desplegable
Nuevo
Nuevo


Unido: 05/Noviembre/2017
Localización: Aljaraque
Estado: Sin conexión
Puntos: 41
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Jose35 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 09/Junio/2018 a las 12:15
Muchas Gracias, lo probare y ya os cuento, de todas formas me da que este código va a cerrar todas las ventanas de IE y eso tampoco me interesa, solo las que abro cuando voy a iniciar sesión.

Pero lo dicho ya os contare.
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Prisión Brieva
Estado: Sin conexión
Puntos: 3117
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lbauluz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 14/Junio/2018 a las 15:54
Igual esto te ayuda

Los comentarios estan escritos en algo parecido a ingles, pero se entienden, creo :)

Sub fForo()
    Dim site As String
    Dim ie As Object
    
    site = "http://www.mvp-access.com/foro/"

    Set ie = CreateObject("internetexplorer.application")
    ie.Visible = True
    ie.navigate site

    ' Idle while ie is busy
    Do While ie.Busy
        'Application.Wait DateAdd("s", 1, Now)
        DoEvents
    Loop
    ie.document.Focus

    ' AQUI SU CODIGO

     ' Wait 10 seconds before closing
    Application.Wait Now + TimeValue("00:00:10")

    ' Close IE
    ie.Quit
    Set ie = Nothing

    DoEvents
    ' Wait 4 seconds
    Application.Wait Now + TimeValue("00:00:04")
    Exit Sub
error:
    MsgBox "Unknown Error!"
End Sub


Luis
Those are my principles, and if you don't like them... well, I have others. Groucho Marx
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable