C/Visual C - abrir ventana IE des de C++

 
Vista:

abrir ventana IE des de C++

Publicado por Ximo (4 intervenciones) el 12/03/2003 17:47:54
hola a todos:

mi pregunta es: como puedo abrir una ventana del internet explorer y descargar una página web como si fuera una imagen JPG des de un programa en C++.

muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cómo abrir Internet Explorer y descargar una página web como imagen JPG

Publicado por Alejandro (1153 intervenciones) el 09/05/2025 20:03:56
Para abrir Internet Explorer y descargar una página web como imagen JPG desde un programa en C++, puedes seguir estos pasos:

1. Usar la API de Windows para abrir Internet Explorer: Puedes utilizar la función `ShellExecute` para abrir Internet Explorer con la URL deseada.

2. Capturar la pantalla: Una vez que la página esté cargada, puedes usar la API de Windows para capturar la pantalla y guardar la imagen en formato JPG.

3. Convertir la imagen a JPG: Para guardar la imagen capturada en formato JPG, puedes utilizar una biblioteca como GDI+.

Aquí tienes un ejemplo básico de cómo podrías implementar esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <windows.h>
#include <gdiplus.h>
#include <iostream>
 
#pragma comment(lib, "gdiplus.lib")
 
void SaveScreenshotAsJPG(const std::wstring& filename) {
    // Captura la pantalla
    HDC hScreenDC = GetDC(NULL);
    HDC hMemoryDC = CreateCompatibleDC(hScreenDC);
 
    int width = GetSystemMetrics(SM_CXSCREEN);
    int height = GetSystemMetrics(SM_CYSCREEN);
 
    HBITMAP hBitmap = CreateCompatibleBitmap(hScreenDC, width, height);
    SelectObject(hMemoryDC, hBitmap);
    BitBlt(hMemoryDC, 0, 0, width, height, hScreenDC, 0, 0, SRCCOPY);
 
    // Guarda la imagen como JPG
    Gdiplus::GdiplusStartupInput gdiplusStartupInput;
    ULONG_PTR gdiplusToken;
    Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
 
    Gdiplus::Bitmap bitmap(hBitmap, NULL);
    CLSID clsid;
    CLSIDFromString(L"{557CF400-1A04-11D3-9A26-00C04F79DBC0}", &clsid); // CLSID para JPG
    bitmap.Save(filename.c_str(), &clsid, NULL);
 
    // Limpieza
    DeleteObject(hBitmap);
    DeleteDC(hMemoryDC);
    ReleaseDC(NULL, hScreenDC);
    Gdiplus::GdiplusShutdown(gdiplusToken);
}
 
int main() {
    // Abre Internet Explorer
    ShellExecute(NULL, L"open", L"iexplore.exe", L"https://www.ejemplo.com", NULL, SW_SHOWNORMAL);
 
    // Espera un tiempo para que la página cargue (ajusta según sea necesario)
    Sleep(5000);
 
    // Guarda la captura de pantalla como JPG
    SaveScreenshotAsJPG(L"screenshot.jpg");
 
    return 0;
}

Notas:
- Asegúrate de tener GDI+ instalado y configurado en tu proyecto.
- Este código abre Internet Explorer y espera 5 segundos antes de capturar la pantalla. Ajusta el tiempo según la velocidad de carga de la página.
- La conversión de la imagen a JPG se realiza utilizando GDI+.

Espero que esto te ayude a resolver tu problema. ¡Buena suerte, Ximo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar