Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Terminate process (https://www.clubdelphi.com/foros/showthread.php?t=83259)

shoulder 27-05-2013 19:28:22

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.

look 27-05-2013 19:38:04

¿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

shoulder 27-05-2013 20:47:09

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.

nlsgarcia 27-05-2013 23:35:03

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.

PepeLolo 29-05-2013 00:10:30

Cita:

Empezado por shoulder (Mensaje 461336)
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.

shoulder 29-05-2013 15:20:56

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.


La franja horaria es GMT +2. Ahora son las 05:46:45.

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