C#利用Windows自帶gdi32.dll實現(xiàn)抓取屏幕功能實例
更新時間:2014年08月25日 15:55:26 投稿:shichen2014
這篇文章主要介紹了C#利用Windows自帶gdi32.dll實現(xiàn)抓取屏幕功能,是C#程序設(shè)計中常見的一個重要技巧,需要的朋友可以參考下
本文實例講述了C#利用Windows自帶gdi32.dll實現(xiàn)抓取屏幕功能,是C#應用程序設(shè)計中一個非常實用的功能,現(xiàn)分享給大家供大家參考借鑒。
具體功能代碼如下:
internal static void GetScreenShot( )
{
//獲得當前屏幕的大小
Rectangle rect = new Rectangle();
rect = Screen.AllScreens[0].WorkingArea;
//計算圖片的大小,因為圖片的長和寬有可能超過目前屏幕的大小
//創(chuàng)建一個以當前屏幕為模板的圖象
Control ctl = new Control();
Graphics g1 = ctl.CreateGraphics();
//創(chuàng)建以屏幕大小為標準的位圖
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();
//調(diào)用此API函數(shù),實現(xiàn)屏幕捕獲
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, //目標設(shè)備的句柄
int nXDest, //目標對象的左上角的X坐標
int nYDest, //目標對象的左上角的X坐標
int nWidth, //目標對象的矩形的寬度
int nHeight, //目標對象的矩形的長度
IntPtr hdcSrc, //源設(shè)備的句柄
int nXSrc, //源對象的左上角的X坐標
int nYSrc, //源對象的左上角的X坐標
System.Int32 dwRop //光柵的操作值
);
希望本文C#抓取屏幕實例對大家的C#程序設(shè)計有所幫助。
相關(guān)文章
C#實現(xiàn)百度網(wǎng)站收錄和排名查詢功能思路及實例
這篇文章主要介紹了C#實現(xiàn)百度網(wǎng)站收錄和排名查詢功能思路及實例,本文思路同樣適用必應、搜狗、搜搜、360等搜索引擎,需要的朋友可以參考下2015-01-01
關(guān)于C# 5.0 CallerMemberName CallerFilePath CallerLineNumber 在.
本篇文章,小編為大家介紹關(guān)于C# 5.0 CallerMemberName CallerFilePath CallerLineNumber 在.NET4中的使用介紹方法,有需要的朋友可以參考一下2013-04-04
總結(jié)C#刪除字符串數(shù)組中空字符串的幾種方法
C#中要如何才能刪除一個字符串數(shù)組中的空字符串呢?下面的文章會介紹多種方式來實現(xiàn)清除數(shù)組中的空字符串,以及在.net中將字符串數(shù)組中字符串為空的元素去除。2016-08-08
基于C# wpf 實現(xiàn)Grid內(nèi)控件拖動詳情
這篇文章主要介紹了基于C# wpf 實現(xiàn)Grid內(nèi)控件拖動,有一些業(yè)務(wù)場景中我們需要拖動控件,在Grid中就可以實現(xiàn)控件拖動,通過設(shè)置Margin屬性即可,下面文章我們來看看具體的實現(xiàn)內(nèi)容2021-11-11

