Visual Basic - Cerrar Archivos

Life is soft - evento anual de software empresarial
 
Vista:

Cerrar Archivos

Publicado por Janeth (13 intervenciones) el 31/10/2006 15:54:37
Hola a todos!!

Estoy trabajando en un proyecto que consiste en la creación de un explorador de archivos, perecido al explorador de windows.

En el momento que se ejecuta un archivo (cualquier extensión) , yo debo saber que se esta ejecutando, para posteriormente cerrarlo, si es que el usuario no cierra el archivo y es aqui donde entra mi duda..............

***que se necesita y que debo usar para cerrar un archivo en ejecución desde visual ****

Ya he estado buscando información acerca de esto y lo que he encontrado hasta ahorita es una api que me permite saber que archivos se estan ejecutando pero por el nombre de la ventana por eje. "Sin titulo - BLoc de notas" y por medio de este conozco su hwnd que realmente es un poco confuso.

Quisiera saber si alguien ha trabajado con algo similar que me pudiera ayudar con esto.

Desde ya gracias!

Espero su respuesta...........................
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:Cerrar Archivos

Publicado por jcz (94 intervenciones) el 03/11/2006 18:29:41
Creo que todos los caminos te llevaran al tema de las API's, a veces parecen confusas, pero dale tiempo y veras que podran ayudarte en lo que requieres, yo hice algo similar pero solo aplicaba al Explorer de Internet (para cerrarlo si es que el usuario lo abria)

Cada aplicacion tiene su "clase", estas son algunas:

'Const Word = "OpusApp"
'Const Excel = "XLMAIN"
Const IExplorer = "IEFrame"
'Const MSVBasic = "wndclass_desked_gsk"
'Const NotePad = "Notepad"
Const Explore = "ExploreWClass"
Const Mipc = "CabinetWClass"
Const Msdos = "tty"

Acorde a la clase, puedes buscar la aplicacion y cerrarla:
'este codigo detecta si el explorador de windows esta abierto:

resultado = FindWindow(IExplorer, vbNullString)
If resultado = 0 Then
Label1 = "Explorador no abierto"
Else
'cierra y destruye la ventana:
PostMessage resultado, WM_CLOSE, 0&, 0&
Endif

Suerte, saludos.

Jc
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:Cerrar Archivos

Publicado por jcz (94 intervenciones) el 03/11/2006 18:30:58
Creo que todos los caminos te llevaran al tema de las API's, a veces parecen confusas, pero dale tiempo y veras que podran ayudarte en lo que requieres, yo hice algo similar pero solo aplicaba al Explorer de Internet (para cerrarlo si es que el usuario lo abria)

Cada aplicacion tiene su "clase", estas son algunas:

'Const Word = "OpusApp"
'Const Excel = "XLMAIN"
Const IExplorer = "IEFrame"
'Const MSVBasic = "wndclass_desked_gsk"
'Const NotePad = "Notepad"
Const Explore = "ExploreWClass"
Const Mipc = "CabinetWClass"
Const Msdos = "tty"

Acorde a la clase, puedes buscar la aplicacion y cerrarla:
'este codigo detecta si el explorador de windows esta abierto:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

resultado = FindWindow(IExplorer, vbNullString)
If resultado = 0 Then
Label1 = "Explorador no abierto"
Else
'cierra y destruye la ventana:
PostMessage resultado, WM_CLOSE, 0&, 0&
Endif

Suerte, saludos.

Jc
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:Cerrar Archivos

Publicado por Janeth (3 intervenciones) el 06/11/2006 15:02:22
Hola!

Gracias por la respuesta, como que ya había pensado en algo similar a lo que me platicas, el único inconveniente es saber las clases de muchos programas que el usuario ejecute......

VOy a consultar lo de las clases y de la api ya que la api que mencione anteriormente es parecida a la que me indicas solo cambia que es por nombre de ventana que es parecido, ya que por el tipo de extensión del archivo conoces el nombre de a ventana que se abre.

Gracias y si sale otra cosa me avisas please!!!!!!!!!
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