欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#利用Windows自帶gdi32.dll實(shí)現(xiàn)抓取屏幕功能實(shí)例

 更新時(shí)間:2014年08月25日 15:55:26   投稿:shichen2014  
這篇文章主要介紹了C#利用Windows自帶gdi32.dll實(shí)現(xiàn)抓取屏幕功能,是C#程序設(shè)計(jì)中常見(jiàn)的一個(gè)重要技巧,需要的朋友可以參考下

本文實(shí)例講述了C#利用Windows自帶gdi32.dll實(shí)現(xiàn)抓取屏幕功能,是C#應(yīng)用程序設(shè)計(jì)中一個(gè)非常實(shí)用的功能,現(xiàn)分享給大家供大家參考借鑒。

具體功能代碼如下:

internal static void GetScreenShot( )
{
  //獲得當(dāng)前屏幕的大小 
  Rectangle rect = new Rectangle();
  rect = Screen.AllScreens[0].WorkingArea;
   
  //計(jì)算圖片的大小,因?yàn)閳D片的長(zhǎng)和寬有可能超過(guò)目前屏幕的大小 
  //創(chuàng)建一個(gè)以當(dāng)前屏幕為模板的圖象 
  Control ctl = new Control();
  Graphics g1 = ctl.CreateGraphics();
  //創(chuàng)建以屏幕大小為標(biāo)準(zhǔn)的位圖 
  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ù),實(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文件格式來(lái)保存 
  //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,  //目標(biāo)設(shè)備的句柄
 int nXDest,    //目標(biāo)對(duì)象的左上角的X坐標(biāo)
 int nYDest,    //目標(biāo)對(duì)象的左上角的X坐標(biāo)
 int nWidth,    //目標(biāo)對(duì)象的矩形的寬度
 int nHeight,    //目標(biāo)對(duì)象的矩形的長(zhǎng)度
 IntPtr hdcSrc,   //源設(shè)備的句柄
 int nXSrc,     //源對(duì)象的左上角的X坐標(biāo)
 int nYSrc,     //源對(duì)象的左上角的X坐標(biāo)
 System.Int32 dwRop //光柵的操作值
);

希望本文C#抓取屏幕實(shí)例對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C#實(shí)現(xiàn)鼠標(biāo)裁剪圖像功能

    C#實(shí)現(xiàn)鼠標(biāo)裁剪圖像功能

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)鼠標(biāo)裁剪圖像功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 重寫(xiě)、隱藏基類(lèi)(new, override)的方法

    重寫(xiě)、隱藏基類(lèi)(new, override)的方法

    重寫(xiě)、隱藏基類(lèi)(new, override)的方法,需要的朋友可以參考一下
    2013-03-03
  • C#?迭代器分部類(lèi)與索引器詳情

    C#?迭代器分部類(lèi)與索引器詳情

    這篇文章主要介紹了C#迭代器分部類(lèi)與索引器詳情,迭代器?迭代器解決的是集合訪問(wèn)的問(wèn)題,提供一種方法順序訪問(wèn)一個(gè)集合對(duì)象中的各個(gè)元素,而不暴露對(duì)象內(nèi)部標(biāo)
    2022-07-07
  • C#中的lock、Monitor、Mutex學(xué)習(xí)筆記

    C#中的lock、Monitor、Mutex學(xué)習(xí)筆記

    這篇文章主要介紹了C#中的lock、Monitor、Mutex學(xué)習(xí)筆記,本文講解的都是線程同步的一些知識(shí),需要的朋友可以參考下
    2015-01-01
  • C#定時(shí)器和隨機(jī)數(shù)

    C#定時(shí)器和隨機(jī)數(shù)

    在前一篇中我們介紹了鍵盤(pán)和鼠標(biāo)事件,其實(shí)還有一個(gè)非常常用的事件,就是定時(shí)器事件,如果要對(duì)程序?qū)崿F(xiàn)時(shí)間上的控制,那么就要使用到定時(shí)器。而隨機(jī)數(shù)也是很常用的一個(gè)功能,在我們要想產(chǎn)生一個(gè)隨機(jī)的結(jié)果時(shí)就要使用到隨機(jī)數(shù)。本文我們就來(lái)簡(jiǎn)單介紹一下定時(shí)器和隨機(jī)數(shù)。
    2015-06-06
  • 簡(jiǎn)單掌握Windows中C#啟動(dòng)外部程序進(jìn)程的方法

    簡(jiǎn)單掌握Windows中C#啟動(dòng)外部程序進(jìn)程的方法

    這篇文章主要介紹了Windows中C#啟動(dòng)外部程序進(jìn)程的方法,例子中同時(shí)包括了進(jìn)程關(guān)閉的方法,需要的朋友可以參考下
    2016-03-03
  • C#泛型和反射實(shí)例解析

    C#泛型和反射實(shí)例解析

    這篇文章主要介紹了C#泛型和反射實(shí)例解析,對(duì)于C#初學(xué)者理解泛型和反射有很好的幫助借鑒作用,需要的朋友可以參考下
    2014-08-08
  • c# Thread類(lèi)的用法詳解

    c# Thread類(lèi)的用法詳解

    這篇文章主要介紹了c# Thread類(lèi)的用法的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c#的相關(guān)知識(shí),感興趣的朋友可以了解下
    2020-11-11
  • C#實(shí)現(xiàn)中英文混合字符串截取的方法

    C#實(shí)現(xiàn)中英文混合字符串截取的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)中英文混合字符串截取的方法,是C#字符串操作的常用方法,需要的朋友可以參考下
    2014-08-08
  • 解析如何使用反射調(diào)用類(lèi)型成員 方法,字段,屬性

    解析如何使用反射調(diào)用類(lèi)型成員 方法,字段,屬性

    本篇文章是對(duì)使用反射調(diào)用類(lèi)型成員 方法,字段,屬性進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評(píng)論