Una funcion que me diga si un programa esta abierto
Saludos, me gustaría una función para saber si un programa está siendo ejecutado o no (en este caso el microsoft office word 2007), he buscado por el foro y no lo encuentro.
Muchas gracias. |
No Conozco Una Funcion Como La Que Necesitas, Sin Embargo, Cuando Tuve Que Hacer Ese Trabajo La Solucion Que Encontre Fue:
* Establecer Mi Lista De Programas Que Necesita Cononcer Si Estaban Corriendo. * Crear Una Matriz Que Contenia Los Programas Y Sus Correspondientes Identificadores De Proceso * Cuando Necesita Saber Si Un Programa Estaba Corriendo Solamente Accedia Al Sistema Operativo Y Checaba Si Estaba Corriendo El Proceso Que Se Habia Especificado. ( Si Tienes Un Poco De Miedito De Involucrarte Con El S.o., Entonces Puedes Intentarlo Con El Administrador De Tareas, Claro Si Usas Windows) |
Miedo no... pero la cosa es que no se hacer nada de eso en delphi :-(
|
He encontrado esta función:
Código Delphi [-]FindWindow(Nil, Pchar('nombre de ventana')) que me devuelve un boolean si la ventana con título: 'nombre de ventana' se esta ejecutando, lo malo es que quiero saber si hay algun documento del word que esté activo, y los documentos words al abrirse ponen su ventana como: Código Delphi [-] ('nombre de archivo guardado' + ' - Microsoft Word') ¿Cómo podría poner la condición para que me detectase si ' - Microsoft Word' está en la barra del título? es decir: Código Delphi [-]FindWindow(Nil, Pchar( '*' + ' - Microsoft Word')) Siendo * cualquier cosa. ¿Me he explicado? gracias. |
Hola,
http://www.clubdelphi.com/trucos/index.php?id=388 http://www.clubdelphi.com/foros/showthread.php?t=40902 Cambia ParamStr(0) por la ruta completa del programa que buscas. Y si solo quieres usar el nombre del ejecutable cambia la función GetModuleFileNameEx por GetModuleBaseName. |
gracias ahora mismo lo pruebo
|
¿Quieres decir esto? Estoy bastante perdido...
Me da error: tipos incompatibles cardinal-string. |
:confused: ¿Leíste el código que te pase? ¿En que parte parte aparece esa linea?
|
El código esta en el segundo enlace que me has puesto:
http://www.clubdelphi.com/foros/showthread.php?t=40902 y he hecho lo que he entendido (que seguro que esta mal) sustituir el parametro 0 por el nombre del programa y cambiar GetModuleFileNameEx por GetModuleBaseName. Te importa ponerme como quedaría? gracias por tu paciencia. |
Perdona, el corrector ortografico hizo de las suyas en mi mensaje.
Cambio PamaStr(0) por Parametro 0 :D El codigo quedaria asi:
|
MUUUUUUUUUUUUUUUUUUUUUUUCHAS GRACIAS jeje ahora ya me va de lujo :-)
|
Pos no, no me va :-( llamo a la función y no me muestra nada :-(
|
sobre form
Hola, he leido alguno de tus respuestas y creo que me podrias ayudar.
Como puedo saber en tiempo de ejecucion si un form esta activo o abierto? Y otra pregunta, estoy desarrollando una aplicación de gestion empresarial. Que es mejor trabajar con ShowModal o no? Un saludo Fran |
Cita:
A mi me preguntas? no tengo ni idea, lo siento macho :-( |
Si te refieres a un form de los que creas con Delphi, me parece que lo puedes hacer checando la propiedad 'Showing' que te devuelve true si esta activo o false si no lo esta.
por ejemplo: if tuFormulario.Showing then begin //lo que vas hacer si el formulario esta activo end else begin //lo que vas hacer si el formulario NO esta activo end; Con respecto a tu 2a. pregunta, usarlo o no depende de la disponibilidad de funciones, procesos, etc., que quieras que tu aplicación proporcione. |
La franja horaria es GMT +2. Ahora son las 22:58:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi