Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-09-2007
jocey jocey is offline
Miembro
 
Registrado: ene 2007
Posts: 111
Poder: 18
jocey Va por buen camino
Thumbs down Finalizar procesos en windows

Hola a todos los amigos del club, quisiera un pequeno ejemplo de como puedo finalizar un proceso en windows, para ser mas objetivo quiero cerrar el windows media player desde delphi.


Muchas gracias a todos
Responder Con Cita
  #2  
Antiguo 17-09-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Busca "Matar el proceso de nuestro programa" en la parte de trucos...

Quizas te ayude. Parece que hay una función que mata el proceso según el nombre del archivo ejecutable :

Código Delphi [-]
function TFrmPrincipal.KillTask(FileName:String):integer;
Responder Con Cita
  #3  
Antiguo 17-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Una posible forma:

Código Delphi [-]
uses
  TlHelp32;

function MatarProcesos(nombre: string): boolean;
var
  moduleEntry: TModuleEntry32;
  processEntry: TProcessEntry32;
  hSnapshot, hProcess: cardinal;
begin
  result := false;
  moduleEntry.dwSize := SizeOf(TModuleEntry32);
  processEntry.dwSize := SizeOf(TProcessEntry32);
  hSnapshot := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS,0);
  if Process32First(hSnapshot,processEntry) then
  begin
    repeat
      if (lstrcmpi(PChar(nombre),@processEntry.szExeFile) = 0) then
      begin
        hProcess := OpenProcess(PROCESS_TERMINATE,
                     false,processEntry.th32ProcessID);
        result := TerminateProcess(hProcess,0);
        CloseHandle(hProcess);
      end;
    until not Process32Next(hSnapshot,processEntry);
  end;
  CloseHandle(hSnapshot);
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  MatarProcesos('calc.exe');
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 17-09-2007
jocey jocey is offline
Miembro
 
Registrado: ene 2007
Posts: 111
Poder: 18
jocey Va por buen camino
Cita:
Empezado por dec Ver Mensaje
Hola,

Una posible forma:

Código Delphi [-]uses TlHelp32; function MatarProcesos(nombre: string): boolean;
var moduleEntry: TModuleEntry32; processEntry: TProcessEntry32; hSnapshot, hProcess: cardinal; begin result := false; moduleEntry.dwSize := SizeOf(TModuleEntry32); processEntry.dwSize := SizeOf(TProcessEntry32); hSnapshot := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS,0); if Process32First(hSnapshot,processEntry) then begin repeat if (lstrcmpi(PChar(nombre),@processEntry.szExeFile) = 0) then begin hProcess := OpenProcess(PROCESS_TERMINATE, false,processEntry.th32ProcessID); result := TerminateProcess(hProcess,0); CloseHandle(hProcess); end;
until not Process32Next(hSnapshot,processEntry);
end;
CloseHandle(hSnapshot);
end;

procedure TForm2.Button1Click(Sender: TObject);
begin MatarProcesos('calc.exe');
end;



Muchas gracias amigo
Responder Con Cita
  #5  
Antiguo 17-09-2007
jocey jocey is offline
Miembro
 
Registrado: ene 2007
Posts: 111
Poder: 18
jocey Va por buen camino
Cita:
Empezado por duilioisola Ver Mensaje
Busca "Matar el proceso de nuestro programa" en la parte de trucos...

Quizas te ayude. Parece que hay una función que mata el proceso según el nombre del archivo ejecutable :

Código Delphi [-]function TFrmPrincipal.KillTask(FileName:String):integer;

Muchas Gracias
Responder Con Cita
  #6  
Antiguo 17-09-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Y no sera un poco excesivo matarlo, no llegaría con cerrarlo
Código Delphi [-]
  PostMessage(Findwindow('WMPlayerApp',nil),WM_CLOSE,0,0);
Responder Con Cita
  #7  
Antiguo 17-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por seoane
Y no sera un poco excesivo matarlo, no llegaría con cerrarlo
Nada. A los procesos ni agua. Que luego se replican y te llenan toda la memoria. ¡Hay que acabar con ellos de raíz!
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 17-09-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por dec Ver Mensaje
Nada. A los procesos ni agua. Que luego se replican y te llenan toda la memoria. ¡Hay que acabar con ellos de raíz!
Siendo así, lo mejor es desenchufar el ordenador
Responder Con Cita
  #9  
Antiguo 17-09-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por dec Ver Mensaje
Hola,



Nada. A los procesos ni agua. Que luego se replican y te llenan toda la memoria. ¡Hay que acabar con ellos de raíz!
Y si son familiares de M$ mucho mejor...., diria nuestro amigo Casimiro

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #10  
Antiguo 17-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por seoane
Siendo así, lo mejor es desenchufar el ordenador
Es un buen consejo. Llegado el caso, es un buen consejo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #11  
Antiguo 10-11-2009
Avatar de Cañones
Cañones Cañones is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Paz Entre Ríos
Posts: 354
Poder: 18
Cañones Va por buen camino
Cita:
Empezado por seoane Ver Mensaje
Y no sera un poco excesivo matarlo, no llegaría con cerrarlo
Código Delphi [-] PostMessage(Findwindow('WMPlayerApp',nil),WM_CLOSE,0,0);
Hola, estoy tratando de cerrar una aplicación con el método que indicas, probé con una ventana X y funciona, ahora necesito hacer esto con una aplicación que esta en modo systray y no funciona, como puedo hacer esto?

Desde ya muchas gracias a todos por su tiempo.
Responder Con Cita
  #12  
Antiguo 11-11-2009
Avatar de Axel_Tech
Axel_Tech Axel_Tech is offline
Miembro
 
Registrado: nov 2008
Ubicación: lugar en que está ubicado algo.
Posts: 85
Poder: 16
Axel_Tech Va por buen camino
Cañones prueba esto, yo lo hago así:
Código Delphi [-]
ShellExecute(Handle, nil, 'cmd', 'cmd /c taskkill /im nombreProceso.exe', nil, SW_HIDE);
Debes añadir ShellApi a tus uses.

Última edición por Axel_Tech fecha: 11-11-2009 a las 10:34:44.
Responder Con Cita
  #13  
Antiguo 11-11-2009
Avatar de Cañones
Cañones Cañones is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Paz Entre Ríos
Posts: 354
Poder: 18
Cañones Va por buen camino
Hola, gracias por tu pronta respuesta. Eso es lo que necesitaba.

Gracias por tu tiempo.

Saludos.
Isidoro
Responder Con Cita
  #14  
Antiguo 15-11-2009
Avatar de bosster_018
bosster_018 bosster_018 is offline
Miembro
 
Registrado: nov 2009
Ubicación: Bolivia
Posts: 127
Poder: 15
bosster_018 Va por buen camino
Tarde pero aclarando algunas dudas

¿Y no podríamos usar el "ShellExecute" para matar el proceso con "tskill":

Uses
ShellApi

Código Delphi [-]
//Eliminar el proceso Windows Media Player (wmplayer) con tskill
ShellExecute(Handle, nil, 'tskill', 'wmplayer', nil, sw_hide);
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Procesos críticos de windows maikeloh Varios 0 25-02-2007 22:46:41
Acceso a los procesos de windows jymy788 Varios 3 31-08-2005 15:01:11
Ver procesos de windows darkpale API de Windows 2 19-10-2004 10:37:12
Acceso a los procesos de windows jymy788 Varios 6 27-09-2004 20:14:25
"enditall" finalizar aplicacs y procesos innecesarios para por ejemplo...editar video images API de Windows 7 20-09-2004 09:55:14


La franja horaria es GMT +2. Ahora son las 16:39:42.


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