C#應用Windows自帶gdi32.dll完成抓取屏幕功效實例。本站提示廣大學習愛好者:(C#應用Windows自帶gdi32.dll完成抓取屏幕功效實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C#應用Windows自帶gdi32.dll完成抓取屏幕功效實例正文
本文實例講述了C#應用Windows自帶gdi32.dll完成抓取屏幕功效,是C#運用法式設計中一個異常適用的功效,現分享給年夜家供年夜家參考自創。
詳細功效代碼以下:
internal static void GetScreenShot( )
{
//取得以後屏幕的年夜小
Rectangle rect = new Rectangle();
rect = Screen.AllScreens[0].WorkingArea;
//盤算圖片的年夜小,由於圖片的長和寬有能夠跨越今朝屏幕的年夜小
//創立一個以以後屏幕為模板的圖像
Control ctl = new Control();
Graphics g1 = ctl.CreateGraphics();
//創立以屏幕年夜小為尺度的位圖
Image MyImage = new Bitmap(rect.Width ,rect .Height, g1);
Graphics g2 = Graphics.FromImage(MyImage);
//獲得屏幕的DC
IntPtr dc1 = g1.GetHdc();
//獲得Bitmap的DC
IntPtr dc2 = g2.GetHdc();
//挪用此API函數,完成屏幕捕捉
BitBlt(dc2, 0, 0, rect.Width, rect.Height, dc1, 0, 0, 13369376);
//釋放失落屏幕的DC
g1.ReleaseHdc(dc1);
//釋放失落Bitmap的DC
g2.ReleaseHdc(dc2);
//以JPG文件格局來保留
//Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
//return MyImage.GetThumbnailImage(control.Width, control.Height, myCallback, IntPtr.Zero);
MyImage.Save("D:\\aa.jpg");
}
[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 //光柵的操作值
);
願望本文C#抓取屏幕實例對年夜家的C#法式設計有所贊助。