Cerrar ventanas

Nuker-1
24 de Enero del 2006
Hola, queria saber si alguno sabe como cerrar un programa osea la ventana, la cuestion es que yo con el programa tengo que lograr cerrar todos los programas abiertos. Tengo el codigo para matar procesos, pero no me sirve ya que son muchos y cerraria procesos que pueden hacer caer el sistema (XP) Entonces busque un codigo para poder ver ventanas ejecutadas en la pc (muestra ventanas de programas y carpetas) Tengo la forma de cerrar las carpetas abiertas, pero no las ventanas, solo las puedo cerrar si la persona les da un click en el list, y luego en cerrar, y yo quiero que esto sea automatico que cierre todo.. a continuacion pego el codigo que tengo para cerrar las ventanas... ("SELECCIONADAS EN EL LIST")

Private Sub cmdCerrarVentanas_Click()

Dim sTitulo As String
Dim i As Long

With List1
For i = 0 To .ListCount - 1
sTitulo = .List(i)
Call m_UtilVentanas.CloseApp(sTitulo)
DoEvents
Next
End With

'No se refresca bien, así que seguramente tendrás que pulsar en el botón...
cmdRefrescar_Click
End Sub



Este otro es para cerrar las carpetas, del cual no puedo decir nada, esta bien...
Private Sub cmdCerrarCarpetas_Click()
'Cierra las carpetas abiertas, el ClassName es: CabinetWClass
'Nota: el IE4 también tiene ese ClassName
Dim sTitulo As String
Dim i As Long

With List1
For i = 0 To .ListCount - 1
sTitulo = .List(i)
Call m_UtilVentanas.CloseApp(List1.Index)
DoEvents
cmdRefrescar_Click
Next
End With

'No se refresca bien, así que seguramente tendrás que pulsar en el botón...
cmdRefrescar_Click

End Sub


a continuacion pego todo el codigo para el que lo quiera probar completo
________________________________________________
bajarlo de aqui... ^^

http://downloads.elguille.info/BajarZip.aspx?seccion=/vb/&zip=cerrarApp.zip


bueno desde ya muchas Gracias ^^

mvallejos
24 de Enero del 2006
Fijate en tu codigo de ejemplo, si existe la llamada a la API IsWindowsVisible, que te le pasas como parámetro el puntero al proceso y te retorna si el proceso corresponde a una ventana visible o no.
Puedes ayudarte con la API FindWindows.
Con eso podrás cerrar procesos de programas y no los del Sistema Operativo

Saludos

Nuker-1
24 de Enero del 2006
Muchas Gracias, al final para cerrar todas las ventanas puse asi..
(Al codigo que ya di de donde bajarlo le agrege en el form_load
cargando
y luego puse esto otro

Private Sub cargando()
Dim sTitulo As String
Dim i As Long

With List1
For i = 0 To .ListCount - 1
sTitulo = .List(i)
If sTitulo = "Finalizar App" Then
Else
Call m_UtilVentanas.CloseApp(sTitulo)
End If
DoEvents
Next
End With

'No se refresca bien, así que seguramente tendrás que pulsar en el botón...
cmdRefrescar_Click

End Sub

_______________________


Esto que agrege que dice If sTitulo = "Finalizar App" Then es para que no me cierre mi propio programa.
Muchas Gracias por la colaboración ^^