最近在整理以前的的開發資料,發現了過去開發過程中寫的不少程式還比較有意思,特此一一整理,以備後用
命名空間
using System.Drawing.Imaging;
using DCOMExtLib;
using System.Runtime.InteropServices;
方法
[DllImport("gdi32.dll")]
private static extern IntPtr CreateDC(
string lpszDriver, // 驅動名稱
string lpszDevice, // 裝置名稱
string lpszOutput, IntPtr lpInitData);
[DllImport("gdi32.dll")]
private static extern bool BitBlt(
IntPtr hdcDest , //目標裝置的控制代碼
int nXDest , int nYDest , int nWidth , int nHeight , IntPtr hdcSrc , int nXSrc , int nYSrc ,
System.Int32 dwRop );
畫圖部分
IntPtr pt=CreateDC("DISPLAY",null,null,(IntPtr) null);
Graphics g1 = Graphics.FromHdc(pt);
Bitmap b2 = new Bitmap (Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height,g1);
Graphics g2 = Graphics.FromImage(b2);
IntPtr dc1 = g1.GetHdc();
IntPtr dc2 = g2.GetHdc();
BitBlt(dc2,0,0,Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height,
dc1,0,0,13369376);
g1.ReleaseHdc(dc1);
g2.ReleaseHdc(dc2);
b2.Save("c://test.bmp",ImageFormat.Bmp);