Ну, після трохиї гри я маю щось, що працює зараз, я не програміст Win32, але це, здається, працює:
використання системи;
за допомогою System. Drawing;
за допомогою System. Drawing.Imming;
використання System.Collections;
за допомогою System.ComponentModel;
за допомогою System.Windows.Forms;
за допомогою System.Data;
за допомогою mshtml;
використання System.Runtime. InteropServices;
за допомогою Microsoft. Win32;
FalletpaceMaker
{
/// <резюме>
Опис // Резюме для Form1.
/// </ summary>
Public class Form1: System.Windows.Forms.Form
{
приватний AxSHDocVw.AxWebBrowser alxWebBrowser1;
/// <резюме>
Змінна " // " потрібного дизайнера ."
/// </ summary>
private System. ComponentModel. Container компоненти = null ;
privaal const string urlStr = "http: // news. bbc.co.uk /" ;
публічна форма1})
{
//
// Потрібна для підтримки Windows Designer формName
//
ІніціалізуватиComponent});
об' єкт o = нуль;
this. Visible= false;
axWebBrowser1. Navigate} $UR, return o, refirl o, return o, return o);
}
const int WM_ PATINT = 0x000F;
const int WM_ PRINTCLIENT = 0x0318;
const int WM_ERASEBKGND = 0x0014;
const int WM_ PRINT = 0x0317;
const int PRF_CHILDREN = 0x00000010;
const int PRF_ CLIENT = 0x0000004;
публічна порожнеча floatWindow)
{
IntPtr hWnd = це. Handle;
IntPtr hBmp;
Bitmap MyBitmap=nol;
IntPtr hDCMem = GDI32.CreateComatibleDC}Інструментальний) null);
IntPtr hDC = User32. GetWindowDChWnd);
hBmp = GDI32.CreateComatibleBitmapDC,}IntPtr)axWebBrowser1.Width,, intPtr)axWebBrowser1. Height);
User32. ReleaseDC} hWnd, hDC);
IntPtr h Old = GDI32. SelectObect} hDCMem, hBmp);
User32. SendMessage} hWnd, WM_PRINT, hDCMem, новий IntPtr}PRF_CLIENT ♪_ CHILDREN);
GDI32. SelectObect} hDCMEm, hEld);
GDI32. DeleteObect}hDCMEm);
MyBitmap = Bitmap. fromHbitmap}hBmp);
MyBitmap.Save( "test.png" ,ImageFormat.Png);
це. Підсумок);
}
/// <резюме>
/// Очищення всіх використаних ресурсів.
/// </ summary>
захищене перевизначення void Dispose} bool викидання)
{
if (вимикання)
{
if (компаненти! = null)
{
components. Dispose);
}
}
. disspote} dispose );
}
/// <резюме>
// Потрібний спосіб підтримки Designer - не змінювати
/// Вміст цього методу у редакторі коду.
/// </ summary>
конфіденційний void ІніціалізуватиComponent})
{
System. Resources.Resource Resources Manager = new System.Resources.ResourceManager} type of (Form1));
цей.axWebBrowser1 = новий AxSHDocVw. AxWebBrowser);
(♪System.ComponentModel.ISupportInitialize) ⇩ this.axWebBrowser1). BeginInit}
цей. SuspendLayout);
//
// axWebBrowser1
//
this.axWebBrowser1. Dock = System.Windows. Forms. DockStyle. Fill;
цей.axWebBrowser1.Enabled = true;
this.axWebBrowser1.Location = new System. Drawing.ps0, 0);
цей.axWebBrowser1. OcxState = (} System. Windows. Forms.AxHost.State)}resources.GetObect} "axWebBrowser1. OcxState"));
this.axWebBrowser1.Size = new System. Drawing.Size}1024, 768);
цей.axWebBrowser1. TabIndex = 0;
цей.axWebBrowser1. DocumentComple += new AxSHDocVw.DWebBrowserEvents2_DocumentCompleeEventHandler} Це.axWebBrowser1_ DocumentComplee);
//
/// Форма1
//
цей. AutoScale = false;
this. AutoScaleBaseSize = new System. Drawing.Size} 5, 13);
this. ClientSize = new System. Drawing.Size} 1024, 768);
цей. Controls. Додайте цей .axWebBrowser1;
this. FormbordStyle = System.Windows. Forms. FormbordStyle. None;
цей. Name = "Form1" ;
цей. ПоказатиInTaskbar = false;
цей.Text = "Form1" ;
(♪System.ComponentModel.ISupportInitialize) ⇩ this.axWebBrowser1).EndIint}
цей . ResumeLayout}
}
/// <резюме>
// Головна точка запису програми.
/// </ summary>
[STAThread]
Статична порожнеча Main})
{
application.Run} нова форма1});
}
private void axWebBrowser1_DocumentComple} Відсилання об' єктів, AxSHDocVw.DWebBrowserEvents2_ConcumentCompleeEvent e)
{
GweepWindow);
}
}
Клас GDI32
{
[DllImport} "GDI32.dell")
публічний статичний extern bool BitBlt}IntPtr hdcDest, IntPtr nXDest, IntPtr nYDest,
IntPtr nWidth, IntPtr n Height, IntPtr hdcSrc,
IntPtr nXSrc, IntPtr nYSrc, IntPtr dwRop);
[DllImport} "GDI32.dell")
публічний статичний додаток extern IntPtr СтворитиComparibleBitmap}IntPtr hdc, IntPtr nWidth,
IntPtr nHight);
[DllImport} "GDI32.dell")
публічний статичний додаток ExtPtr СтворитиCAntPtr hdc);
[DllImport} "GDI32.dell")
публічний статичний extern bool DeleteDC}IntPtr hdc);
[DllImport} "GDI32.dell")
публічний статичний extern bool DeleteObect}IntPtr hObjt);
[DllImport} "GDI32.dell")
публічний статичний extern IntPtr GetDeviceCaps}IntPtr hdc, IntPtr nIndex);
[DllImport} "GDI32.dell")
публічний статичний екстерн IntPtr SelectObect}IntPtr hdc, IntPtr hgdiobj);
}
class User32
{
[DllImport} "User32. dell"]
публічний статичний екстерн IntPtr GetDesktopWindow);
[DllImport} "User32. dell"]
публічний статичний екстерн IntPtr GetWindowDC}IntPtr hWnd);
[DllImport} "User32. dell"]
публічна статична випускна програма IntPtr (IntPtr) hWnd, IntPtr hDC);
[DllImport} "User32. dell"]
публічний статичний extern int SendMessage}IntPtr hWnd, int Missg, IntPtr wPram, IntPtr lPram);
}
}
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.