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#法式設計有所贊助。