C#做ScreenCapture程序

用C#做Screen Capture程序的代码和运行节目:

成都创新互联公司专注于新洲网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供新洲营销型网站建设,新洲网站制作、新洲网页设计、新洲网站官网定制、小程序设计服务,打造新洲网络公司原创品牌,更为您提供新洲网站排名全网营销落地服务。

在掌握了一些C#源代码后,可以得到用C#做Screen Capture程序的源代码(Capture.cs),具体如下:

 
 
 
  1. using System ;  
  2. using System.Drawing ;  
  3. using System.Collections ;  
  4. using System.ComponentModel ;  
  5. using System.Windows.Forms ;  
  6. using System.Data ;  
  7. using System.Drawing.Imaging ;  
  8. using System.IO ;  
  9. //导入在程序中使用到的名称空间  
  10. public class Capture : Form  
  11. {  
  12. private System.ComponentModel.Container components = null ;  
  13. private Icon mNetTrayIcon = new Icon ( "Tray.ico" ) ;  
  14. private Bitmap MyImage = null ;  
  15. private NotifyIcon TrayIcon ;  
  16. private ContextMenu notifyiconMnu ;  
  17. public Capture ( )  
  18. {  
  19. //初始化窗体中使用到的组件  
  20. InitializeComponent ( ) ;  
  21. }  
  22. protected override void OnActivated ( EventArgs e )  
  23. {  
  24. this.Hide ( ) ;  
  25. }  
  26. [ System.Runtime.InteropServices.DllImportAttribute ( "gdi32.dll" ) ]  
  27. private static extern bool BitBlt (  
  28. IntPtr hdcDest , //目标设备的句柄  
  29. int nXDest , // 目标对象的左上角的X坐标  
  30. int nYDest , // 目标对象的左上角的X坐标  
  31. int nWidth , // 目标对象的矩形的宽度  
  32. int nHeight , // 目标对象的矩形的长度  
  33. IntPtr hdcSrc , // 源设备的句柄  
  34. int nXSrc , // 源对象的左上角的X坐标  
  35. int nYSrc , // 源对象的左上角的X坐标  
  36. System.Int32 dwRop // 光栅的操作值  
  37. ) ;  
  38. [ System.Runtime.InteropServices.DllImportAttribute ( "gdi32.dll" ) ]  
  39. private static extern IntPtr CreateDC (  
  40. string lpszDriver , // 驱动名称  
  41. string lpszDevice , // 设备名称  
  42. string lpszOutput , // 无用,可以设定位"NULL"  
  43. IntPtr lpInitData // 任意的打印机数据  
  44. ) ;  
  45. public void capture ( object sender , System.EventArgs e )  
  46. {  
  47. this.Visible = false ;  
  48. IntPtr dc1 = CreateDC ( "DISPLAY" , null , null , ( IntPtr ) null ) ;  
  49. //创建显示器的DC  
  50. Graphics g1 = Graphics.FromHdc ( dc1 ) ;  
  51. //由一个指定设备的句柄创建一个新的Graphics对象  
  52. MyImage = new Bitmap ( Screen.PrimaryScreen.Bounds.Width , 
    Screen.PrimaryScreen.Bounds.Height , g1 ) ;  
  53. //根据屏幕大小创建一个与之相同大小的Bitmap对象  
  54. Graphics g2 = Graphics.FromImage ( MyImage ) ;  
  55. //获得屏幕的句柄  
  56. IntPtr dc3 = g1.GetHdc ( ) ;  
  57. //获得位图的句柄  
  58. IntPtr dc2 = g2.GetHdc ( ) ;  
  59. //把当前屏幕捕获到位图对象中  
  60. BitBlt ( dc2 , 0 , 0 , Screen.PrimaryScreen.Bounds.Width , 
    Screen.PrimaryScreen.Bounds.Height , dc3 , 0 , 0 , 13369376 ) ;  
  61. //把当前屏幕拷贝到位图中  
  62. g1.ReleaseHdc ( dc3 ) ;  
  63. //释放屏幕句柄  
  64. g2.ReleaseHdc ( dc2 ) ;  
  65. //释放位图句柄  
  66. MyImage.Save ( "c:\\MyJpeg.jpg" , ImageFormat.Jpeg ) ;  
  67. MessageBox.Show ( "已经把当前屏幕保存到C:\\MyJpeg.jpg文件中!" ) ;  
  68. this.Visible = true ;  
  69. }  
  70. public void ExitSelect ( object sender , System.EventArgs e )  
  71. {  
  72. //隐藏托盘程序中的图标  
  73. TrayIcon.Visible = false ;  
  74. //关闭系统  
  75. this.Close ( ) ;  
  76. }  
  77. //清除程序中使用过的资源  
  78. public override void Dispose ( )  
  79. {  
  80. base.Dispose ( ) ;  
  81. if ( components != null )  
  82. components.Dispose ( ) ;  
  83. }  
  84. private void InitializeComponent ( )  
  85. {  
  86. //设定托盘程序的各个属性  
  87. TrayIcon = new NotifyIcon ( ) ;  
  88. TrayIcon.Icon = mNetTrayIcon ;  
  89. TrayIcon.Text = "用C#做Screen Capture程序" ;  
  90. TrayIcon.Visible = true ;  
  91. //定义一个MenuItem数组,并把此数组同时赋值给ContextMenu对象  
  92. MenuItem [ ] mnuItms = new MenuItem [ 3 ] ;  
  93. mnuItms [ 0 ] = new MenuItem ( ) ;  
  94. mnuItms [ 0 ] .Text = "捕获当前屏幕!" ;  
  95. mnuItms [ 0 ] .Click += new System.EventHandler ( this.capture ) ;  
  96. mnuItms [ 1 ] = new MenuItem ( "-" ) ;  
  97. mnuItms [ 2 ] = new MenuItem ( ) ;  
  98. mnuItms [ 2 ] .Text = "退出系统" ;  
  99. mnuItms [ 2 ] .Click += new System.EventHandler ( this.ExitSelect ) ;  
  100. mnuItms [ 2 ] .DefaultItem = true ;  
  101. notifyiconMnu = new ContextMenu ( mnuItms ) ;  
  102. TrayIcon.ContextMenu = notifyiconMnu ;  
  103. //为托盘程序加入设定好的ContextMenu对象  
  104. this.SuspendLayout ( ) ;  
  105. this.AutoScaleBaseSize = new System.Drawing.Size ( 5 , 13 ) ;  
  106. this.ClientSize = new System.Drawing.Size ( 320 , 56 ) ;  
  107. this.ControlBox = false ;  
  108. this.MaximizeBox = false ;  
  109. this.MinimizeBox = false ;  
  110. this.WindowState = System.Windows.Forms.FormWindowState.Minimized ;  
  111. this.Name = "capture" ;  
  112. this.ShowInTaskbar = false ;  
  113. this.Text = "用C#做Screen Capture程序!" ;  
  114. this.ResumeLayout ( false ) ;  
  115. }  
  116. static void Main ( )  
  117. {  
  118. Application.Run ( new Capture ( ) ) ;  
  119. }  
  120. }  

以上介绍C#做Screen Capture程序

网站题目:C#做ScreenCapture程序
网页URL:http://www.36103.cn/qtweb/news14/7164.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联