Abrir y cerrar un programa en C++

dmirandaf

Hola!

Antes que todo, les comento que posteo esto porque me parece justo aportar con la solucion de un problema que tenía, a la que llegué utilizando las ideas que obtuve de aqui.

Mi idea era crear un programa que abra una determinada dirección web, y luego cierre el navegador, ya que mas adelante lo haré recurrente para que se abra cada X minutos y no quiero que queden 654616546515 instancias (o pestañas) del navegador abiertas, y que se caiga el servidor donde pienso ejecutarlo.

Abrir el navegador no me costó nada (sí, hay muchas formas de hacerlo, pero ésta es la que más me acomoda porque le paso por una variable el sitio web que quiero abrir), el problema que tenía era cerrarlo. Me topé con una forma que requería mucho código, obtener el PID del proceso, almacenarlo en un archivo, buscarlo, cerrarlo... es válido y funciona pero hay una forma mejor según pienso yo.

Aquí el código:

 
#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
    string link;
    printf("Ingrese pagina a abrir:\n");
    cin >> link;

ShellExecute(NULL,"open","iexplore.exe",link.c_str(),NULL,SW_SHOWNORMAL);
Sleep(5000);
system("taskkill /IM iexplore.exe /T /F");
system("pause");

   return 0;
} 

Como se ve, capturo la pagina web a abrir en la variable link, luego se la paso al sistema para que la abra con internet explorer. Luego, espero 5 segundos y cierro iexplore.exe Más detalles del ShellExecute por aquí: http://winapi.conclase.net/curso/?winfun=ShellExecute

Mencion especial a @modena , ya que al inicio de su hilo que consulté (ESTE) puso el famoso taskkill, lo que le faltaba era matar el proceso (o navegador) por su nombre, ya que se fue buscando el PID y éste siempre varía. El nombre del proceso siempre es el mismo, y así se puede utilizar el taskkill para matarlo (y a toda su descendencia, con /T)

Gracias por la ayuda!

JuAn4k4

Por qué no usas chrome headless ? https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md

#3 ¿ Por qué no te haces foie ?

HeXaN

Es más, por qué no usas Python xD

1

Usuarios habituales

  • HeXaN
  • JuAn4k4
  • dmirandaf