知识大全 基于Delphi的屏幕抓图技术的实现
Posted 学生
篇首语:天下难事、必作于易;天下大事、必作于细。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 基于Delphi的屏幕抓图技术的实现相关的知识,希望对你有一定的参考价值。
基于Delphi的屏幕抓图技术的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
摘 要 本文以Delphi 作为开发平台 给出了网络监控软件中的两种 屏幕抓图技术的设计方法和步骤 介绍了教师在计算机机房内教学时 如何监控学生计算机显示器上的画面 以保证教学的质量和效果 引言 随着网络技术的飞速发展 计算机网络在各高等院校教学中的使用已非常普遍 但是 我们发现一个问题 在教学的过程中 由于老师是面对着学生 而背对着学生计算机的显示器 不能随时查看学生计算机显示器上的内容 所以 有的学生在教学中偷玩游戏 影响了教学的质量和效果 因此 设计一款网络监控软件 监控学生计算机 十分必要 为了实现这一目的 此系统应具有以下功能 ( )教师用机可以循环显示学生计算机的显示器上的画面 ( )教师用机可以动态显示某一学生计算机的显示器上的画面 ( )教师用机可以对学生用计算机发出警告信息和控制信息 ( )学生用计算机开机自动运行服务端监控程序 ( )为了防止学生用计算机的服务端监控程序 被学生发现用Ctrl+Alt+Del关闭 在Ctrl+Alt+Del对话框中必须隐藏程序 同时 应该隐藏程序在任务栏的按钮 本文结合应用实践 重点向大家介绍在Delphi 中可以采用的两种实现屏幕抓图技术的操作方法 程序实现 ( )抓取屏幕图像的难点有两个 一是如何夺取屏幕的句柄 二是知道屏幕句柄后如何获取屏幕的图像 Borland公司的设计人员用画布(Tcanvas)对象封装了Windows的大部分图形输出功能 可以通过它以更直观的方式和Windows的屏幕打交道 而不必关心令人头疼的Windows API函数 具体程序如下 procedure TForm Timer Timer(Sender TObject) //抓取屏幕 并保存到Image控件中var Fullscreen Tbitmap FullscreenCanvas TCanvas dc HDC begin Fullscreen =TBitmap Create //创建一个BITMAP来存放图象 Fullscreen Width =screen width Fullscreen Height =screen Height DC =GetDC( ) //取得屏幕的DC 参数 指的是屏幕 FullscreenCanvas =TCanvas Create //创建一个CANVAS对象 FullscreenCanvas Handle =DC Fullscreen Canvas CopyRect(Rect( screen Width screen Height) fullscreenCanvas Rect( Screen Width Screen Height)) //把整个屏幕复制到BITMAP中 FullscreenCanvas Free //释放CANVAS对象 ReleaseDC( DC) //释放DC //******************************* image picture Bitmap =fullscreen //拷贝下的图象赋给IMAGE对象 image Width =fullscreen Width image Height =fullscreen Height fullscreen free //释放bitmap form WindowState =wsNormal //复原窗口状态 form show //显示窗口 messagebeep( ) //BEEP叫一声 报告图象已经截取好了 end ( )Delphi的第三方控件ScreenCapture 它是一个很好的免费的截图控件 可以轻松抓取任意大小(全屏当然行) 屏幕的任何位置 还可以设置所截图像的形状 以及用何种模式截图 下面介绍的是用TcmWindow模式截图 使用非常简单 使用效果可以与著名的抓图软件SnagIt 媲美 procedure TForm BtnStartClick(Sender TObject) begin ScreenCapture start //开始截图end //当截取屏幕成功时 此事件发生 procedure TForm ScreenCapture Capture(Sender TObject Bitmap TBitmap) begin //调整滚动窗口的大小以适应截获图像的大小 Scrollbox HorzScrollBar Range = Image width Scrollbox VertScrollBar Range = Image height end procedure TForm FormCreate(Sender TObject) begin //载入entntacp dll文件 BtnStart enabled = ScreenCapture dllavailable //显示版本信息 caption = 屏幕抓图软件 + ScreenCapture version end //当没有足够的内存支持截取屏幕时 此事件发生procedure TForm ScreenCapture Error(Sender TObject) begin MessageDlg( 屏幕截取时发生一个错误!请关闭其他应用程序以获得更多内存资源 mtError [mbOK] ) end //当用户按 Esc 键 即取消屏幕截取时 此事件发生procedure TForm ScreenCapture UserCancelled(Sender TObject) begin MessageDlg( 用户取消屏幕截取 mtInformation [mbOK] ) end 运行程序 效果如图 和图 所示 图 运行效果图图 抓取图像后的效果图 结论 通过对以上两种程序代码的调试运行 使用第三方控件的方法更易于设计实现 文中的程序代码全部在Win 和Delphi 环境下调试通过 cha138/Article/program/Delphi/201311/24754相关参考
用C#实现全屏幕抓图 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! intwidth=Scree
基于Delphi的异常处理技术探究 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
为Delphi编写的屏幕保护程序增加描述 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 虽说屏幕
巧用Delphi制作溅射屏幕 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!cha138/
一个实用的Delphi屏幕拷贝程序的设计 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Borl
基于Delphi的接口编程入门 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一为什么使用接口?
基于Delphi的组件设计之概念[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Delph
基于Delphi的组件设计之概念[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 作为组件制
基于Delphi的组件设计之概念[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 属性可以有
基于Delphi的组件设计之简单实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!这是一个可以计数