Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-08-2004
agustincs agustincs is offline
Miembro
 
Registrado: ago 2004
Posts: 32
Poder: 0
agustincs Va por buen camino
lanzar proceso lanzado desde aplicacion delphi

tengo una aplicacion hecha en delphi desde la que lanza un programa y luego dejo a la aplicacion delphi esperando a que termine de la siguietne forma:
Código:
  Process := ExecuteProcess('programab.exe');
   if Process <> 0 then
 	WaitForSingleObject(Process, INFINITE);
  Application.Restore;
Asi pues, es fundamental que mientras esta esa aplicacion en ejucion, mi programa "lanzador" siga en memoria. Por tanto, si el usuario cierra el programa que lanzador desde el gestor de procesos, quiero que mi lanzador, antes de morir, fuerce el cierre del ejecutable que habia lanzado. Supongo que eso lo tendre que hacer desde el evento onclose del form, pero no se exactamente como hacerlo, se que es mas facil al lanzar la otra aplicacion desde mi aplicacion ya que lo puedo cerrar por el puntero, pero tampoco se como ni donde guardar ese puntero a la aplicacion lanzada,
Responder Con Cita
  #2  
Antiguo 28-08-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Por Zeus! ¡Qué paranoia! ¿Acaso tus usuarios son hackers?

Mira, la verdad la tienes difícil. Cuando se mata un proceso mediante el gestor de procesos no se ejecutará ninguna rutina de salida de tu aplicación.

Puedes verlo tu mismo haciendo algo en el OnClose y matando el proceso.

// Saludos
Responder Con Cita
  #3  
Antiguo 28-08-2004
agustincs agustincs is offline
Miembro
 
Registrado: ago 2004
Posts: 32
Poder: 0
agustincs Va por buen camino
jeje. pues no es que sean hackers, pero poco les falta, creeme

no hay ninguna forma.. vaya.. eso si que me fastidia bien.. era imprescindible para el buen funcionamiento, xd
Responder Con Cita
  #4  
Antiguo 28-08-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por agustincs
no hay ninguna forma.. vaya.. eso si que me fastidia bien
¡Hombre! No tomes mis palabras tan literal. Que yo piense que no se puede no significa necesariamente que así sea.

De cualquier forma, hay formas de deshabilitar el usos del gestor de procesos mediante políticas de grupo de Windows.

// Saludos
Responder Con Cita
  #5  
Antiguo 28-08-2004
agustincs agustincs is offline
Miembro
 
Registrado: ago 2004
Posts: 32
Poder: 0
agustincs Va por buen camino
si, eso lo se... pero la aplicacion esta es para que la isntales varias personas que estan en diversos puntos de españa, por tanto no puedo ir pc por pc cambiando eso... y desconozco totlamente como lo puedo cambiar atraves de mi aplicacion
Responder Con Cita
  #6  
Antiguo 28-08-2004
Avatar de moesis
moesis moesis is offline
Miembro
 
Registrado: jun 2004
Ubicación: Islas Canarias
Posts: 46
Poder: 0
moesis Va por buen camino
Saludos,

Quizás lo que vaya a decir es una estupidez, pero ... siempre hay que ver el otro lado de la moneda .

Cita:
Por tanto, si el usuario cierra el programa que lanzador desde el gestor de procesos, quiero que mi lanzador, antes de morir, fuerce el cierre del ejecutable que habia lanzado
Claro que si el programa no aparece en el 'Process Manager' ¿Como lo mataría el usuario? Bueno se puede, pero no creo que tus 'hackers' lleguen tan lejos, pues habría que identificar el process_id mediante el nombre de la ventana, y después enviarle un KILL_PROCESS desde un programa que se encuentre en el anillo 0 del sistema operativo... cosa poco probable (fijate que digo probable)


Espero que te ayude la idea.
Un saludo,
__________________
ø¤º° Moesis °º¤ø
Dios nos ha dado dos orejas y una boca para escuchar el doble de lo que hablamos.
Consulta la Guía de Estilo.
Responder Con Cita
  #7  
Antiguo 28-08-2004
agustincs agustincs is offline
Miembro
 
Registrado: ago 2004
Posts: 32
Poder: 0
agustincs Va por buen camino
vaya, esa solucion ya me gusta muchsismo mas

como tendria que hacer para que cada vez que el lanzador lanza la aplicacion, que el lanzador desaparezca de la barra de aplicaciones y tampoco se vea en el gestor de procesos? si me dices como hacer eso me salvas la vida
Responder Con Cita
  #8  
Antiguo 29-08-2004
Avatar de moesis
moesis moesis is offline
Miembro
 
Registrado: jun 2004
Ubicación: Islas Canarias
Posts: 46
Poder: 0
moesis Va por buen camino
Saludos agustincs

Este código lo he sacado de http://www.q3.nu/trucomania/ una página interesante que no convendría olvidar para determinadas cosas.

Código Delphi [-]
  procedure TfrmMain.btnHideFromTaskBarClick (Sender:TObject);
  begin
    ShowWindow (Application.Handle, SW_HIDE);
    SetWindowLong (Application.Handle, GWL_EXSTYLE,
                           GetWindowLong (Application.Handle, GWL_EXSTYLE) or
                           WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
    ShowWindowLong (Application.Handle, SW_SHOW);

No obstante puedes mirar también en este otro enlace aunque este está en inglés, puede servirte pues incluso muestra una clase para realizar tal tarea.

Espero haberte ayudado.
Saludos.
__________________
ø¤º° Moesis °º¤ø
Dios nos ha dado dos orejas y una boca para escuchar el doble de lo que hablamos.
Consulta la Guía de Estilo.
Responder Con Cita
  #9  
Antiguo 29-08-2004
agustincs agustincs is offline
Miembro
 
Registrado: ago 2004
Posts: 32
Poder: 0
agustincs Va por buen camino
acabo de probar eso en XP pero no funciona :-S
me tira error en concreto la ultima linea, ShowWindowLong
Me podrias decir de que truco lo quitaste? es que estube buscando en la web y no encontre ese truco
Responder Con Cita
  #10  
Antiguo 01-09-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Buscad en clubdelphi que está...
__________________
:)
Responder Con Cita
  #11  
Antiguo 01-09-2004
agustincs agustincs is offline
Miembro
 
Registrado: ago 2004
Posts: 32
Poder: 0
agustincs Va por buen camino
pos yo no lo vi, lo veo mucho para windows 98/me, pero para windows xp/2000 nunca lo vi
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:03:20.


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
Copyright 1996-2007 Club Delphi