Página 1 de 1

[C] Matar proceso

Publicado: 19 Jun 2011, 17:13
por m3m0_11
Chavales aqui voy perfeccionando un poco el lenguaje estaba aburrido y me puse a programar esto, muy simple pero bueno, cabe darle las gracias a linkgl que me resolvio unas dudillas por msn

Código: Seleccionar todo

#include <stdio.h>
#include <windows.h>


int main(int argc, char *argv[])
{
  HANDLE proc;
  int x;
  printf("Elija el PID del proceso que desea eliminar\n");
  scanf("%i", &x);
  if (KillProcbyPID(x) == TRUE) 
  {
        printf("Proceso eliminado con exito\n");
  }
  else
  {
        printf("No se pudo eliminar el proceso\n");
  }
  system("pause");
  return 0;
}

BOOL KillProcbyPID(int id)
{
    HANDLE proc;
    proc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, id);
    if (proc != NULL)
    {
       TerminateProcess(proc,0);
       CloseHandle(proc);
       return TRUE;
    }

}


salu2

Re: [C] Matar proceso

Publicado: 19 Jun 2011, 17:21
por ØnLy
est muy bien no hay mucho que corregir solo te recomiendo que si usas una linea de codigo puedes hacerlo asi!

Código: Seleccionar todo

#include <stdio.h>
#include <windows.h>

int main(int argc, char *argv[])
{
  HANDLE proc;
  int x;
  printf("Elija el PID del proceso que desea eliminar\n");
  scanf("%i", &x);

  if (KillProcbyPID(x) == TRUE)
        printf("Proceso eliminado con exito\n");
  else
       printf("No se pudo eliminar el proceso\n");
  
  system("pause");
  return 0;
}

BOOL KillProcbyPID(int id)
{
    HANDLE proc;
    proc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, id);
    if (proc != NULL)
    {
       TerminateProcess(proc,0);
       CloseHandle(proc);
       return TRUE;
    }

}
Es solo una recomendacion pero el coded en si esta perfecto!

PD : Felicidades por interesarte en C hermnao!

Re: [C] Matar proceso

Publicado: 19 Jun 2011, 17:50
por m4rtyr

Código: Seleccionar todo

BOOL KillProcbyPID(int id)
{
    HANDLE proc;
    proc = OpenProcess(PROCESS_TERMINATE, FALSE, id);
    if (proc != NULL)
    {
       TerminateProcess(proc,0);
       CloseHandle(proc);
       return true;
    }
    return false;
}
no necesitas PROCESS_ALL_ACCESS solo PROCESS_TERMINATE es suficiente
tambien tienes que poner un return false en el ultimo

si no nos criticamos no vamos a delante ;)
saludos