C#利用Windows自帶gdi32.dll實現抓取屏幕功能實例
阿新 • • 發佈:2017-11-13
like lba work 函數 dll img 模板 seh release
C#利用Windows自帶gdi32.dll實現抓取屏幕功能實例
本文地址: http://www.paobuke.com/develop/c-develop/pbk23610.html
ó?C#??í???±£′??áOracle BLOB×????Dμ?·?·¨C#操作windows註冊表的方法C#實現用於操作wav聲音文件的類實例 C#實現的優酷真實視頻地址解析功能(2014新算法)
本文實例講述了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#程序設計有所幫助。
除聲明外,跑步客文章均為原創,轉載請以鏈接形式標明本文地址C#利用Windows自帶gdi32.dll實現抓取屏幕功能實例
本文地址: http://www.paobuke.com/develop/c-develop/pbk23610.html
相關內容
淺談C# 類的繼承C#中數組、ArrayList和List三者的區別詳解C#設置軟件開機自動運行的方法(修改註冊表)winform簡單緩存類實例ó?C#??í???±£′??áOracle BLOB×????Dμ?·?·¨C#操作windows註冊表的方法C#實現用於操作wav聲音文件的類實例
C#利用Windows自帶gdi32.dll實現抓取屏幕功能實例