Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: franfis en 8 Abril 2013, 05:40 am



Título: abrir y cerrar pestaña de navegador
Publicado por: franfis en 8 Abril 2013, 05:40 am
Hola, estoy intentando abrir una url especifica en una pestaña del navegador y después de unos 10 segundos cerrar esa pestaña.

Tiene que ver con un retardo, hasta ahora conseguí esto codigo;

Citar
#include <stdio.h>
#include <time.h>
#include <iostream.h>
#include <stdlib.h>
#include <windows.h>
void retardo(void);


int main(void)
{
cout<<"hola...."<<endl;

ShellExecute(NULL, "open", "http://nombredeweb.com", NULL, NULL, SW_SHOWNORMAL);

delayerloop();//retardar


//aqui debe ir el codigo para cerrar la pestaña que se abrió    
cout<<"hola nuevo"<<endl;

  return 0;
}


void retardo(void)
{

  register long x=0xFFFFFFF0;

 //Efectuar la temporización:
  while(x--);
}

Este codigo abre la pestaña con la url indicada pero ¿como la cierro?. Creo que es basica mi pregunta, es que no veo C++ mucho tiempo.

ayuda por favor, uso google chrome.


Título: Re: abrir y cerrar pestaña de navegador
Publicado por: BlackM4ster en 8 Abril 2013, 14:46 pm
Puedes mirar en el registro para ver que programa es el predeterminado para internet y hacer una lista. Luego cierras ese proceso.


Título: Re: abrir y cerrar pestaña de navegador
Publicado por: Eleкtro en 8 Abril 2013, 16:16 pm
@franfis
Me parece de mal gusto que pidas lo mismo en otro post (usando Batch) xD, ya te comenté que era imposible, en C u otro lenguaje si que es posible.

Yo no se C/C++, pero lo que tienes que hacer es buscar el handle de la ventana que te interesa (la pestaña), y cerrar el handle con la función "DestroyWindow" (NO CloseWindow) de la User32.dll API.

http://www.pinvoke.net/default.aspx/user32.destroywindow
http://www.pinvoke.net/default.aspx/user32.closewindow

PD: Si quieres la vía fácil, puedes usar una herramienta CommandLine que se llama CMDOW para obtener el handle (en HEX) y cerrarlo.
Código:
cmdow | find /I "Nombre parcial/completo del tab"
cmdow "0xHANDLE" /CLS

Saludos!


Título: Re: abrir y cerrar pestaña de navegador
Publicado por: Puntoinfinito en 8 Abril 2013, 17:22 pm
@franfis
Me parece de mal gusto que pidas lo mismo en otro post (usando Batch) xD, ya te dije que era imposible, en C u otro lenguaje si que es posible.

Recurdo que con Nircmd si se podía xD


Título: Re: abrir y cerrar pestaña de navegador
Publicado por: Eleкtro en 8 Abril 2013, 17:24 pm
claro y con cmdow, pero eso ya deja de ser "batch" xD

saludos


Título: Re: abrir y cerrar pestaña de navegador
Publicado por: franfis en 8 Abril 2013, 22:05 pm
Con respecto a obtener el handle de una pestaña del navegador. Hasta donde recuerdo.. primero tengo que tener el nombre de la ventana padre para luego obtener los handle's de las ventanas hijos.

 Por ejemplo de la caluladora
Citar
HWND hwnd1 = FindWindow(0, "Calculadora");

Ahora el problema es que el navegador Chrome no tiene un nombre especifico, son puras pestañas.  :huh: