abrir y cerrar pestaña de navegador

Iniciado por franfis, 8 Abril 2013, 05:40 AM

0 Miembros y 1 Visitante están viendo este tema.

franfis

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.

BlackM4ster

Puedes mirar en el registro para ver que programa es el predeterminado para internet y hacer una lista. Luego cierras ese proceso.
- Pásate por mi web -
https://codeisc.com

Eleкtro

#2
@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.
cmdow | find /I "Nombre parcial/completo del tab"
cmdow "0xHANDLE" /CLS


Saludos!








Puntoinfinito

Cita de: EleKtro H@cker 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 dije que era imposible, en C u otro lenguaje si que es posible.

Recurdo que con Nircmd si se podía xD
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

Eleкtro

claro y con cmdow, pero eso ya deja de ser "batch" xD

saludos








franfis

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
CitarHWND hwnd1 = FindWindow(0, "Calculadora");

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