Visual Basic - API's

Life is soft - evento anual de software empresarial
 
Vista:

API's

Publicado por Amalia (38 intervenciones) el 29/08/2001 23:24:57
Hola amigos: mi problema es el siguiente, hasta ahora me venía arreglando bien con la API Findwindow para determinar cuándo se cerraba una aplicación ajena a mi proyecto, pero invocada desde éste. Como ser la calculadora. Ahora bien, al arrancar mi Sistema invoco al PpView de Power Point, el que ejecuta la pantalla de presentación de mi Sistema. Pero como es en pantalla completa sin título de ventana el FindWindow no me sirve. ¿Con qué otra API puedo determinar cuando se cierra la presentación de ppview para proseguir con el inicio de mi SIstema? Espero haberme explicado. Desde ya, gracias por su ayuda. Amalia.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:API's

Publicado por edu (423 intervenciones) el 30/08/2001 04:07:46
Corri una presentacion de PoWER POINT y vi que el titulo de la ventana es "Presentación de Porqer Point - [Nombredelarchivo.pps]" usa esta cadena en FINDWINDOW haber si te funciona, se varias de archivo te recomiendo que obtengas la clase de esa aplicacion y en ves de cerrarla por el nombre lo cierras por su Clase.

Atte.
Eduardo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:API's

Publicado por Javier Pérez (170 intervenciones) el 30/08/2001 12:17:56
Te puede servir la función XXX. A continuación te detallo el código de una función que utilizo yo para obtener un handle de ventana asociado a un proceso. Como el handle lo obtienes como resultado de Shell, puedes averiguar cuando la función ObtenerVentanaProceso devuelve cero, lo que querrá decir que ya no existen ventanas asociadas al proceso (por lo general porque el proceso ya ha finalizado).

Public Function ObtenerVentanaProceso(hproceso As Long) As Long

Dim hwnd As Long
Dim hProcessId As Long
Dim hThreadId As Long

' Obtenemos el identificador de la ventana de nivel superior
hwnd = GetTopWindow(0)
Do
' Obtenemos el identificador del proceso creador de la ventana
hThreadId = GetWindowThreadProcessId(hwnd, hProcessId)

If hProcessId = hproceso Then
' Es una ventana del proceso buscado; comprobamos si es una ventana padre
If GetWindow(hwnd, GW_CHILD) <> 0 Then
' Encontrada la ventana buscada
Exit Do
End If
End If

hwnd = GetWindow(hwnd, GW_HWNDNEXT)
Loop Until hwnd = 0

ObtenerVentanaProceso = hwnd

End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar