iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >怎么用C#做Screen Capture程序
  • 339
分享到

怎么用C#做Screen Capture程序

2023-06-17 23:06:10 339人浏览 安东尼
摘要

这篇文章主要讲解了“怎么用C#做Screen Capture程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C#做Screen Capture程序”吧!在掌握了一些C#源代码后,可以

这篇文章主要讲解了“怎么用C#做Screen Capture程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用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#做Screen Capture程序这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么用C#做Screen Capture程序

本文链接: https://www.lsjlt.com/news/294469.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用C#做Screen Capture程序
    这篇文章主要讲解了“怎么用C#做Screen Capture程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C#做Screen Capture程序”吧!在掌握了一些C#源代码后,可以...
    99+
    2023-06-17
  • Movavi Screen Capture Studio Mac软件有什么用
    这篇文章主要为大家展示了“Movavi Screen Capture Studio Mac软件有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Movavi Screen Capture S...
    99+
    2023-06-05
  • screen命令怎么用
    小编给大家分享一下screen命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通...
    99+
    2023-06-27
  • Linux的Screen怎么用
    这篇文章主要介绍了Linux的Screen怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux的Screen怎么用文章都会有所收获,下面我们一起来看看吧。Screen是一个全屏窗口管理器,它可以在多个...
    99+
    2023-06-27
  • 如何用C#做浏览器源程序
    这篇文章主要讲解了“如何用C#做浏览器源程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用C#做浏览器源程序”吧!C#做浏览器源程序了解C#源程序代码,就可以比较容易编写一个属于自己的...
    99+
    2023-06-17
  • Linux常用命令screen怎么用
    这篇文章将为大家详细讲解有关Linux常用命令screen怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux常用命令screen命令用于多重视窗管理程序,screen为多重视窗管理程序。此处所...
    99+
    2023-06-28
  • Linux中screen命令怎么用
    小编给大家分享一下Linux中screen命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!当你需要确保长时间运行的任务不会在 SSH 会话中断时被杀死时,...
    99+
    2023-06-16
  • 怎么做好小程序直播
    本文小编为大家详细介绍“怎么做好小程序直播”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么做好小程序直播”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。为什么小程序直播会受到那么多商家的欢迎呢?主要是他们看中了...
    99+
    2023-06-27
  • Linux系统screen命令怎么用
    这篇文章主要为大家展示了“Linux系统screen命令怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统screen命令怎么用”这篇文章吧。Linux系统中 screen命令主...
    99+
    2023-06-28
  • c语言主程序怎么调用子程序
    在C语言中,主程序可以通过函数调用的方式来调用子程序。以下是一个简单的示例:```c#include // 声明子程序void su...
    99+
    2023-10-12
    c语言
  • Linux窗口管理器Screen怎么用
    这篇文章主要介绍Linux窗口管理器Screen怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Screen是一个全屏窗口管理器,它可以在多个进程之间多路复用一个物理终端。Screen中有会话的概念,用户可以在一...
    99+
    2023-06-27
  • 微信小程序怎么做优化
    微信小程序可以从这几方面优化:1.样式优化,小程序整体风格统一;2.布局优化,小程序各版块要有逻辑;3.搜索优化,标题使用行业关键词;4.使用优化,针对页面反应速度及导航设置进行优化;微信小程序可以从以下几方面来优化样式优化小程序整体风格样...
    99+
    2024-04-02
  • 微信小程序怎么做字幕
    微信小程序做字幕的案例:在wxml文件中添加以下代码。<view style="height: 30px;overflow: hidden;">  <v...
    99+
    2024-04-02
  • 微信小程序怎么做店铺
    微信小程序做店铺的方法:通过微信公众平台,注册微信小程序帐号。借助第三方工具来搭建小程序。进入管理后台,创建商品分类,接着开始上架商品,点击“发布商品”,填写商品信息。商品上架完成之后,在“风格装修”页面中,点击“新建页面”,选用合适的模板...
    99+
    2024-04-02
  • 自己怎么做微信小程序
    本文小编为大家详细介绍“自己怎么做微信小程序”,内容详细,步骤清晰,细节处理妥当,希望这篇“自己怎么做微信小程序”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。  自己如何做微信小程序  1、注册小程序  在注册小...
    99+
    2023-06-26
  • 小程序商城怎么做推广
    这篇文章给大家分享的是有关小程序商城怎么做推广的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.微信生态内宣传 小程序跳转:也就是说从一个小程序跳转到另一个小程序上面,目前这换种方法主要集中在小游戏类小程序相互引...
    99+
    2023-06-27
  • ​C#怎么使用WinExec调用exe程序
    在C#中,可以使用Process.Start方法来调用外部的可执行程序。例如,要调用一个名为test.exe的可执行文件,可以使用以...
    99+
    2023-10-23
    ​C#
  • 怎么使用C#/.net程序调用Python
    这篇文章主要介绍了怎么使用C#/.net程序调用Python的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用C#/.net程序调用Python文章都会有所收获,下面我们一起来看看吧。C#/.net程序调用...
    99+
    2023-07-05
  • C#程序怎么执行
    这篇文章主要介绍“C#程序怎么执行”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#程序怎么执行”文章能帮助大家解决问题。编译 & 执行 C# 程序如果您使用 Visual Studio.N...
    99+
    2023-06-17
  • c++程序怎么导出
    c++kquote>c++ 中通过 extern "c" 关键字导出符号,包括函数、变量和类。导出符号用于在编译单元之间或与其他语言交互时,按 c 语言规则提取和使用。 C++ ...
    99+
    2024-04-22
    c++ 封装性
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作