程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#應用Windows自帶gdi32.dll完成抓取屏幕功效實例

C#應用Windows自帶gdi32.dll完成抓取屏幕功效實例

編輯:C#入門知識

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved