Estado de un programa externo

Iniciado por Xaina, 24 Octubre 2007, 21:16 PM

0 Miembros y 1 Visitante están viendo este tema.

HaDeS, -

Podes usar un code que publique en éste post: http://foro.elhacker.net/index.php/topic,185532.0.html
Fijate en esta parte del código:
Código (vb) [Seleccionar]

    If LCase$(Limpiar(uProcess.szExeFile)) = LCase$(Text1.Text) Then

Podes, cambiar ese "LCase$(Text1.text)", por el nombre del proceso que queres averiguar si se está ejecutando:
Código (vb) [Seleccionar]

    If LCase$(Limpiar(uProcess.szExeFile)) = "notepad.exe" Then

En el ejemplo, te puse para averiguar si el bloc de notas se está ejecutando, para el messenger sería: msnmsgr.exe y para el internet explorer: iexplore.exe.

Saludos ;)

sircid

#11
Cita de: HaDeS, - en 25 Octubre 2007, 00:05 AM
Por lo que se, con el ejemplo que diste de la ruta completa y la extension, creo que no se puede hacer, porq lo que hace el office es por medio de los ejecutables abrir dichos archivos. Si vos abris c:\diapositiva.pps, entonces lo que se hace en cierta parte es: c:\programas\powerpoint.exe "c:\diapositiva.pps", si este es el caso, se podrian enumerar los procesos, de cada uno de ellos sacar, la ruta en la cual se esta ejecutando, y comprobar si es o no el ejecutable que se busca. Se le hace un openprocess, y si el proceso existe, entonces se deduce que el programa esta abierto.
Para los archivos de office especificamente se podria tratar de abrir el archivo y escribir sobre el alguna cadena, si devuelve un error es porque esta abierto y si escribe normalmente es porque el archivo esta cerrado...

Saludos, si necesitas algun code de esto por aca me ando pasando ;)

creo que podrias comprobar si el office tiene abierto tal archivo ("C:/diapositiva.pps") si haciendo algun cambio en el archivo te devuelve un error (cambiar el archivo de sitio, cambiarle el nombre...)

‭‭‭‭jackl007

#12
...podrias intentar eliminar el archivo, claro que haces una copia de respaldo ...
y se da error quiere decir que el archivo se esta ejecutando, de lo contrario como lo has  eliminado, con la copia de seguridad lo restableces ...

Command1 --> para verificar
Text1.Text  --> ruta del programa a verificar

Private Sub Command1_Click()
On Error GoTo Er
FileCopy Text1.Text, "C:\temp.exe"
Kill Text1.Text
FileCopy "C:\temp.exe", Text1.Text
Kill "C:\temp.exe"
MsgBox "El programa No se esta ejecutando"
Exit Sub
Er:
MsgBox "El programa Si se esta ejecutando"
Exit Sub

End Sub

no tube rtiempo de probarlo, pero si es ejecutables lo hace bien, de lo contrario tendrias que usando cadenas recortar la extensión para reconocer el archivo ...
de aqui mas de un rato que regreso de la U, te lo dejo completo ...
suerte.
PD: no es 100% fiable, xq puede q el programa este siendo usado por otra aplicacion y no necesariamente se este ejecutando ...
o que el archivo no se encuentre ... alli tendrias que trabajar con el tipo de error que devuelve.
Pero es una alternativa sencilla.