API函式宣告
[ System.Runtime.InteropServices.DllImportAttribute ( "gdi32.dll" ) ]
private static extern bool BitBlt (
IntPtr hdcDest , //目標裝置的控制代碼
int nXDest , // 目標對象的左上方的X座標
int nYDest , // 目標對象的左上方的X座標
int nWidth , // 目標對象的矩形的寬度
int nHeight , // 目標對象的矩形的長度
IntPtr hdcSrc , // 源裝置的控制代碼
int nXSrc , // 來源物件的左上方的X座標
int nYSrc , // 來源物件的左上方的X座標
System.Int32 dwRop // 光柵的操作值
) ;
[ System.Runtime.InteropServices.DllImportAttribute ( "gdi32.dll" ) ]
private static extern IntPtr CreateDC (
string lpszDriver , // 驅動名稱
string lpszDevice , // 裝置名稱
string lpszOutput , // 無用,可以設定位"NULL"
IntPtr lpInitData // 任意的印表機資料
) ;
主程式:
IntPtr dc1 = CreateDC ( "DISPLAY" , null , null , ( IntPtr ) null ) ;
Graphics g=Graphics.FromHdc(dc1);
Bitmap map=new Bitmap(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width,System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height,g);
Graphics g1=Graphics.FromImage(map);
IntPtr dc3 = g.GetHdc() ;
IntPtr dc2 = g1.GetHdc() ;
BitBlt(dc2,0,0,System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width,System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height,dc3,0,0,13369376);
g.ReleaseHdc(dc3);
g1.ReleaseHdc(dc2);
string dt=DateTime.Now.ToString();
g1.DrawString(DateTime.Now.ToString(),new Font("宋體",36),new SolidBrush(Color.Red),new Point(430,330));
try
{
map.Save(@"C:/Inetpub/wwwroot/dw/aaa.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch
{
}
finally
{
map.Dispose();
GC.Collect();
}