HTML-dokumenttien muuttaminen kuviksi... koodi (Suomi (Finnish))

HTML-dokumenttien muuttaminen kuviksi... koodi

Wednesday, 30 June 2004

//

3 minute read

Vähän pelaamisen jälkeen jokin toimii nyt, en ole Win32-kooderi, mutta tämä näyttää toimivan:

Järjestelmän käyttö;

Käyttämällä System.Drawing;

Käyttämällä System.Drawing.Kuvaus;

Käyttämällä System.Collections;

System.ComponentModelin käyttö;

Käyttämällä System.Windows.Forms;

Käyttämällä System.Dataa;

käyttämällä mshtml:ää;

Käyttämällä System.Runtime.InteropServices;

Microsoft.Win32:n käyttö;

namespace ThumbMaker

{

/// <yhteenveto>

/// Lomakkeen 1 tiivistelmän kuvaus.

/// </tiivistelmä>

Julkinen luokka Form1 : System.Windows.Forms.Form

{

yksityinen AxSHDocVw.AxWebBrowser axWebBrowser1

/// <yhteenveto>

// Vaadittu suunnittelijamuuttuja.

/// </tiivistelmä>

Private System.ComponentModel.Container components = null ;

Private const string urlStr = "http://news.bbc.co.uk/"

Julkinen muoto1()

{

//

// Vaadittu Windows Form Designer -tuelle

//

Alusta Componet();

kohde o = nolla ;

Tämä .Näkyvä = väärä ;

axWebBrowser1.Navigate(urlStr, ref o, ref o, ref o;

}

const int WM_PAINT = 0x000F;

const int WM_PRINTCLIENT = 0x0318;

const int WM_ERASEBKGND = 0x0014;

const int WM_PRINT = 0x0317;

const int PRF_CHILDREN = 0x00000010;

const int PRF_LUETTELO = 0x00000004;

julkinen tyhjiö GrabWindow()

{

IntPtr hWnd = tämä .Handle;

IntPtr hBmp;

Bitmap MyBitmap = nolla;

IntPtr hDCMem = GDI32.CreateCompatibleDC ((IntPtr) null );

IntPtr hDC = User32.GetWindowDC(hWnd);

hBmp = GDI32.CreateCompatibleBitmap(hDC,(IntPtr)axWebBrowser1.Width, (IntPtr)axWebBrowser1.Hight;

Käyttäjä32.ReleaseDC(hWnd, hDC);

IntPtr hOld = GDI32.SelectObject(hDCMem, hBmp);

Käyttäjä32.Lähetä viesti(hWnd, WM_PRINT, hDCMem, uusi IntPtr(PRF)_Lisätietoja PRF:stä_CHILDREN)

GDI32.SelectObject(hDCMem, hOld);

GDI32.DeleteObject(hDCMem);

MyBitmap = Bitmap.Hbitmap(hBmp);

MyBitmap.Save( "test.png" ,ImageFormat.Png);

Tämä .Close();

}

/// <yhteenveto>

// Puhdista kaikki käytetyt resurssit.

/// </tiivistelmä>

Suojattu ohitustyhjiö Hävitä( boolin hävittäminen )

{

jos ( hävittäminen )

{

jos (komponentteja ! = nolla )

{

komponentteja. Hävitä();

}

}

pohja . Hävitä( hävittäminen );

}

#region Windows Form Designer loi koodin

/// <yhteenveto>

// Vaadittu menetelmä Designer-tuelle - älä muuta

/// tämän menetelmän sisältö koodieditorilla.

/// </tiivistelmä>

Private tyhjyys AlumnizeComponent ()

{

System.Resources.ResourceManager resources = uusi System.Resources.ResourceManager ( type of (Form1));

tämä.axWebBrowser1 = uusi AxSHDocVw.AxWebBrowser();

((System.ComponentModel.ISupportInitialize) (tämä .axWebBrowser1)).

Tämä .SuspendLayout();

//

/ / axWebBrowser1

//

Tämä .axWebBrowser1.Dock = System.Windows.Forms.DockStyle.Fill;

Tämä .axWebBrowser1.Enabled = true ;

Tämä .axWebBrowser1.Sijainti = uusi System.Drawing.Point(0, 0);

Tämä .axWebBrowser1.OcxState = ((System.Windows.Forms.AxHost.State) (resurssit.GetObject( "AxWebBrowser1.OcxState"))

Tämä .axWebBrowser1.Koko = uusi System.Drawing.Koko (1024, 768);

Tämä .axWebBrowser1.TabIndex = 0;

this.axWebBrowser1.Document Complete + = uusi AxSHDocVw.DWebBrowserTapahtumat2_Document CompleteEventHandler( this .axWebBrowser1_AsiakirjaTäydellinen;

//

// Lomake1

//

Tämä .AutoScale = väärä ;

Tämä .AutoScaleBaseSize = uusi System.Drawing.Size(5, 13);

Tämä .ClientSize = uusi System.Drawing.Size(1024, 768);

Tämä .Ohjausobjektit.Lisää (tämä .axWebBrowser1);

Tämä .FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

Tämä .Nimi = "Form1" ;

Tämä .ShowInTaskbar = väärä ;

Tämä .Teksti = "Form1" ;

((System.ComponentModel.ISupportInitialize) (tämä .axWebBrowser1)).EndInit();

tämä .ResumeLayout ( false );

}

#endregion

/// <yhteenveto>

/// Hakemuksen pääsyöttöpiste.

/// </tiivistelmä>

[STATread]

staattinen tyhjiö Main()

{

Hakemus.Run (uusi lomake 1())

}

yksityinen axWebBrowser1_AsiakirjaTäydellinen( objektin lähettäjä, AxSHDocVw.DWebBrowserTapahtumat2_AsiakirjaTäydellinen tapahtuma e)

{

GrabWindow();

}

}

luokka GDI32

{

[DllImport( "GDI32.dll" )]

julkinen staattinen ulosajo BitBlt(IntPtr hdcDest,IntPtr nXDest,IntPtr nYDest,

IntPtr nWidth,IntPtr nHight,IntPtr hdcSrc,

IntPtr nXSrc,intPtr nYSrc,intPtr dwRop;

[DllImport( "GDI32.dll" )]

julkinen staattinen ulostulo IntPtr CreateCompatibleBitmap (IntPtr hdc,IntPtr nWidth,

IntPtr nHight;

[DllImport( "GDI32.dll" )]

Julkinen staattinen ulostulo IntPtr CreateCompatibleDC (IntPtr hdc);

[DllImport( "GDI32.dll" )]

staattinen ulkobooli DeleteDC(IntPtr hdc);

[DllImport( "GDI32.dll" )]

julkinen staattinen outtern bool DeleteObject (IntPtr hObject);

[DllImport( "GDI32.dll" )]

Julkinen staattinen uloskäynti IntPtr GetDeviceCaps (IntPtr hdc,IntPtr nIndex);

[DllImport( "GDI32.dll" )]

julkinen staattinen uloskäynti IntPtr SelectObject (IntPtr hdc,IntPtr hgdiobj);

}

Luokkakäyttäjä32

{

[DllImport( "User32.dll" )]

Julkinen staattinen uloskäynti IntPtr GetDesktopWindow();

[DllImport( "User32.dll" )]

Julkinen staattinen uloskäynti IntPtr GetWindowDC (IntPtr hWnd);

[DllImport( "User32.dll" )]

Julkinen staattinen uloskäynti IntPtr ReleaseDC (IntPtr hWnd,IntPtr hDC);

[DllImport( "User32.dll" )]

static extern int SendMessage (IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);

}

}

Finding related posts...
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.