Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 29-05-2006
zurech zurech is offline
Miembro
 
Registrado: jul 2005
Posts: 61
Poder: 21
zurech Va por buen camino
Te voy a dar otra alternativa que no tiene tantos inconvenientes para el pobre Windows.
La utilicé hace tiempo, aunque después consegui solucionar el problema y ya no la utilizo.

Lo que hace este procedimiento es directamente matar al proceso de tu programa.
Código Delphi [-]
{
Esta funcion, como su bonito nombre indica sirve para obtener solo el nombre del EXE, en lugar de la ruta completa
}
function TFrmPrincipal.soloExe(archivo : String) : String;
var
  resultado : String;
  i : integer;
begin
  for i:=1 to Length(archivo) do
    begin
      if (archivo[i] = '\') then
        resultado := ''
      else resultado := resultado + archivo[i];
    end;

  result := resultado;
end;

{
Funcion que mata el proceso de la aplicacion, y sus procesitos (hijos)
}
function TFrmPrincipal.KillTask(FileName:String):integer;
 var
     ContinueLoop:BOOL;
     FSnapshotHandle:THandle;
     FProcessEntry32:TProcessEntry32;
 const
     PROCESS_TERMINATE=$0001;
 begin
     FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
     FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
     ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
     while integer(ContinueLoop)<>0 do
     begin
         if
 ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile))=UpperCase(FileName))
             or (UpperCase(FProcessEntry32.szExeFile)=UpperCase(FileName)))
 then

 Result:=Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE,BOOL(0),

                                     FProcessEntry32.th32ProcessID),0));
           ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
     end;
     CloseHandle(FSnapshotHandle);
end;

procedure TFrmPrincipal.Terminar();
begin
  try
    KillTask (soloExe(Application.ExeName));
  except on exception do end;
end;

Tienes más información sobre un problema parecido en este hilo
__________________
noticiasfrikis, mi web de chorradas
Responder Con Cita
 



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
Terminar y liberar Thread eureka API de Windows 1 19-09-2005 14:03:39
Terminar Thread coulthard Internet 3 28-11-2004 22:05:08
Esperar a terminar algo Patxi Varios 2 10-07-2004 11:02:11
Mi aplicacion no puede terminar King Varios 0 08-06-2004 09:24:48
Forzar a terminar a una aplicacion diegofhernando Varios 1 12-08-2003 00:47:40


La franja horaria es GMT +2. Ahora son las 17:03:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi