Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-11-2009
rxaxx9 rxaxx9 is offline
Registrado
 
Registrado: jun 2008
Posts: 8
Poder: 0
rxaxx9 Va por buen camino
Cerrando un Proceso

Hola Amigos.. Udstedes me an Ayudado Mucho en Esto de Delphi...

Pero en Estos Momentos tengo una Gran Problema..


Ya Que yo Creo Un Timer..

Cuando Consiga el Proceso Lo Finalize..

OJO: cierro Procesos por Windows Name <> es el meteado que Quiereo.

Pero el Problema es Este
yo Quiero Que al Consegir Ese Proceso Cierre el Proceso y Abra una Pajina..

Pero al hacerlo me abre como 5 mil Pajinas :S

Espero Que me Ayuden:

Perdonen si ago Spam o incumplo Reglas..
Responder Con Cita
  #2  
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
Explica mejor tu duda

No te entendí muy bien, pero lo que quieres hacer es detectar el proceso y cerrarlo. ¿Al mismo tiempo que abre una página Web?

Si es así puede servirte este pequeño ejemplo:

//Este ejemplo toma como proceso el "notepad.exe" pero puedes cambiarlo por el proceso que quieras

Antes que nada en las Uses de tu formulario desbes escribir
ShellApi y TlHelp32:

Código Delphi [-]
Uses
  TlHelp32, ShellApi;

En un timer con intervalo de 1 milisegundo escribes esto:

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
var
  Abrir_Procesos : Integer;
  Leer_Procesos : TProcessEntry32;
  Seguir_Leyendo: BOOL;
  Preguntar : string;
begin
  // Abre y lee la lista de procesos en éste momento
  Abrir_Procesos := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  Leer_Procesos.dwSize := SizeOf(Leer_Procesos);

  // Acceder al primer proceso
  Seguir_Leyendo := Process32First(Abrir_Procesos, Leer_Procesos);

  // Condicion para recorer los procesos activos hasta que sea igual a 0
    while (Integer(Seguir_Leyendo) <> 0) do
    begin
      // Añadirlo a la lista
      preguntar:= ExtractFileName(Leer_Procesos.szExeFile);
      // Empezar a leer los procesos
      Seguir_Leyendo := Process32Next(Abrir_Procesos, Leer_Procesos);
      // Preguntar si encontró el proceso
        if Preguntar='notepad.exe' then
        begin
          //Elimina el proceso con tskill
          ShellExecute(Handle, nil, 'tskill', 'notepad', nil, SW_HIDE);
          //Acceder a una página Web
          ShellExecute(Handle, 'Open', 'Alguna_Página_WEB', nil, nil, S_NORMAL);
        end;
      end;
    // cerrar la lectura de procesos
    CloseHandle(Abrir_Procesos);
end;


Nota aparte: Me siento alegre de poder participar de nuevo en el foro, pues mi cuenta practicamente desapareció del servidor , pero no pasa nada... al final de cuenta soy novato y no tenía mucha participación, pero sigo siendo fiel al ClubDelphi ya que es una página de ayuda muy eficáz.
Además no quería dar problemas para reparar mi cuenta.
Responder Con Cita
  #3  
Antiguo 15-11-2009
rxaxx9 rxaxx9 is offline
Registrado
 
Registrado: jun 2008
Posts: 8
Poder: 0
rxaxx9 Va por buen camino
Cita:
Empezado por bosster_018 Ver Mensaje
No te entendí muy bien, pero lo que quieres hacer es detectar el proceso y cerrarlo. ¿Al mismo tiempo que abre una página Web?

Si es así puede servirte este pequeño ejemplo:

//Este ejemplo toma como proceso el "notepad.exe" pero puedes cambiarlo por el proceso que quieras

Antes que nada en las Uses de tu formulario desbes escribir
ShellApi y TlHelp32:

Código Delphi [-]Uses TlHelp32, ShellApi;


En un timer con intervalo de 1 milisegundo escribes esto:

Código Delphi [-]procedure TForm1.Timer1Timer(Sender: TObject); var Abrir_Procesos : Integer; Leer_Procesos : TProcessEntry32; Seguir_Leyendo: BOOL; Preguntar : string; begin // Abre y lee la lista de procesos en éste momento Abrir_Procesos := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); Leer_Procesos.dwSize := SizeOf(Leer_Procesos); // Acceder al primer proceso Seguir_Leyendo := Process32First(Abrir_Procesos, Leer_Procesos); // Condicion para recorer los procesos activos hasta que sea igual a 0 while (Integer(Seguir_Leyendo) <> 0) do begin // Añadirlo a la lista preguntar:= ExtractFileName(Leer_Procesos.szExeFile); // Empezar a leer los procesos Seguir_Leyendo := Process32Next(Abrir_Procesos, Leer_Procesos); // Preguntar si encontró el proceso if Preguntar='notepad.exe' then begin //Elimina el proceso con tskill ShellExecute(Handle, nil, 'tskill', 'notepad', nil, SW_HIDE); //Acceder a una página Web ShellExecute(Handle, 'Open', 'Alguna_Página_WEB', nil, nil, S_NORMAL); end; end; // cerrar la lectura de procesos CloseHandle(Abrir_Procesos); end;



Nota aparte: Me siento alegre de poder participar de nuevo en el foro, pues mi cuenta practicamente desapareció del servidor , pero no pasa nada... al final de cuenta soy novato y no tenía mucha participación, pero sigo siendo fiel al ClubDelphi ya que es una página de ayuda muy eficáz.
Además no quería dar problemas para reparar mi cuenta.

Gracias Amigo pero funciona Pero el Problema Que yo Quiero Cerrar los Procesos por WindowsName.. te doy un Ejemplo:
Cheat Engine.exe
el WIndows Name Quiero Cerrar Process List

De Todas Maneras 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
Interrumpir proceso Jose_Pérez Varios 3 07-01-2009 00:23:02
Sun estará cerrando secciones del código de base de MySQL. BlueSteel La Taberna 1 25-04-2008 23:20:47
Cerrando Internet Explorer johnyague API de Windows 4 04-09-2007 18:48:28
Como Detectar cuando Windows se esta Cerrando???? AGAG4 API de Windows 3 24-05-2005 16:29:18
Problema cerrando un thread tortelini Varios 0 14-03-2005 15:21:16


La franja horaria es GMT +2. Ahora son las 06:38:03.


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