程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 運用C#制作屏幕捕捉程序(3)

運用C#制作屏幕捕捉程序(3)

編輯:C#入門知識

運用C#制作屏幕捕捉程序(3)

3. 代碼編寫:

先在代碼文件中添加上面介紹的BitBlt函數的外部聲明。

再添加按鈕的onClick事件處理函數,該函數就是實現屏幕捕捉的主要部分了。函數如下:

private void button1_Click(object sender, System.EventArgs e)

{

Graphics g1 = this.CreateGraphics();//獲得窗體圖形對象

Image MyImage = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height, g1);

Graphics g2 = Graphics.FromImage(MyImage);//創建位圖圖形對象

IntPtr dc1 = g1.GetHdc();//獲得窗體的上下文設備

IntPtr dc2 = g2.GetHdc();//獲得位圖文件的上下文設備

BitBlt(dc2, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height, dc1, 0, 0, 13369376);//寫入到位圖

g1.ReleaseHdc(dc1);//釋放窗體的上下文設備

g2.ReleaseHdc(dc2);//釋放位圖文件的上下文設備

MyImage.Save(@"c:Captured.jpg", ImageFormat.Jpeg);//保存為jpeg文件

MessageBox.Show("保存圖片結束!");

}

4.到此為止,程序已經做完了。按Ctrl+F5可以試試效果如下圖:

圖片已經保存好了,看看屏幕捕捉的結果吧(如下圖)!

  不過,這個程序只是捕捉到了程序自身的客戶區,所以功能有限。當然,你也可以試著做個捕捉屏幕任何位置的程序!你只要改變源圖像的寬度和高度即可,而這個寬度和高度當然可以由用戶來選定。這樣,一個自制的屏幕捕捉程序就出爐了。

  從上面的實例中,我們不難發現用C#編程實現一些基本功能還是非常容易的,真可謂是高效開發的好工具。所以,筆者希望有更多的人加入C#的行列,開發出更實用、更完善的軟件。

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