Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-05-2013
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 16
shoulder Va por buen camino
Terminate process

Hola, tengo un problema, para hacer un backup necesito cerrar (o Matar proceso) desde el servidor a todos los usuarios que esten usando el programa empresa.exe.

Me revise el foro, use las funciones matarprocesos, killprocess, Killtask....

Cuando lo ejecuto el programa de matarproceso1.exe desde mi pc me cierra el programa empresa.exe (pero cierra solo el de mi pc), si lo ejecuto desde el servidor el archivo sigue tomado y falla el backup.


Probe poniendo el path, sin path, el servidor tiene windows server 2008.

Gracias.
Responder Con Cita
  #2  
Antiguo 27-05-2013
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
¿No te saldria mejor mandar la orden por un socket?, asi desde el servidor le mandas la orden a los clientes de cerrarse desde el servidor

mira esto:

http://www.hackerdude.com/courses/delphi/Cap010.2.html
__________________
all your base are belong to us
Responder Con Cita
  #3  
Antiguo 27-05-2013
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 16
shoulder Va por buen camino
Hola, pero como puedo saber porque socket esta corriendo el programa empresa.exe para cerrar los usuarios, porque en realidad no quiero crear un socket para enviar informacion, quiero cerrar uno especico donde este el programa.

Gracias.
Responder Con Cita
  #4  
Antiguo 28-05-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
shoulder,

Cita:
Empezado por shoulder
...necesito cerrar (o Matar proceso) desde el servidor a todos los usuarios que esten usando el programa empresa.exe...
Revisa este código:
Código Delphi [-]
implementation

Uses ShellAPI;

procedure TForm1.Button1Click(Sender: TObject);
var
   Command : String;
   Parameters : String;

begin

   Command := 'C:\Windows\System32\TaskKill.exe';
   Parameters := '/S 127.0.0.1 /IM Calc.exe /T';
   ShellExecute(Handle, nil, PChar(Command) , PChar(Parameters), nil, SW_HIDE);

end;
El código anterior finaliza todos los procesos y subprocesos en la IP 127.0.0.1 con el nombre Calc.exe (Calculadora de Windows) por medio de ShellExecute y el comando de Windows TaskKill.

Revisa estos links:
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 28-05-2013 a las 00:48:17.
Responder Con Cita
  #5  
Antiguo 29-05-2013
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 21
PepeLolo Va por buen camino
Cita:
Empezado por shoulder Ver Mensaje
Hola, tengo un problema, para hacer un backup necesito cerrar (o Matar proceso) desde el servidor a todos los usuarios que esten usando el programa empresa.exe.

Me revise el foro, use las funciones matarprocesos, killprocess, Killtask....

Cuando lo ejecuto el programa de matarproceso1.exe desde mi pc me cierra el programa empresa.exe (pero cierra solo el de mi pc), si lo ejecuto desde el servidor el archivo sigue tomado y falla el backup.


Probe poniendo el path, sin path, el servidor tiene windows server 2008.

Gracias.
¿Qué BBDD usas?, porque sí se trata de Interbase o Firebird, puedes enviar un evento desde la BBDD y capturarlo en la aplicación para que estas se cierren por sí mismas.
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
  #6  
Antiguo 29-05-2013
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 16
shoulder Va por buen camino
Muchas gracias por responder, al final lo solucione con un bat que corro desde delphi primero, antes de copiar para cerrar el archivo, el bat que hice es este :
psfile "C:\compania\empresa.exe" -c
y asi anduvo perfecto, cierra y copia bien.

Probe lo que me sugirieron pero no se porque aunque yo cerraba el programa por tiempo sin usar, usaba el Taskill, cerraba procesos..etc, siempre en el servidor quedaba tomado el archivo por el administrador (server 2003), yo uso delphi 7 - mysql.

Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
not enough storage is available to process this command look Varios 1 10-06-2011 22:18:04
Process no Accesible MaxiDucoli Varios 2 09-09-2008 23:46:40
Error Transaction (Process ID 587) was deadlocked on thread mayte mtz SQL 0 05-05-2006 20:22:27
Application.Terminate Esau Varios 7 06-05-2005 15:12:36
Application.Terminate Vs Close neon Varios 2 30-07-2004 01:11:55


La franja horaria es GMT +2. Ahora son las 11:36:01.


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