知识大全 基于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#实现全屏幕抓图

用C#实现全屏幕抓图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  intwidth=Scree

知识大全 基于Delphi的异常处理技术探究

基于Delphi的异常处理技术探究  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb

知识大全 为Delphi编写的屏幕保护程序增加描述

为Delphi编写的屏幕保护程序增加描述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  虽说屏幕

知识大全 巧用Delphi制作溅射屏幕

巧用Delphi制作溅射屏幕  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!cha138/

知识大全 一个实用的Delphi屏幕拷贝程序的设计

一个实用的Delphi屏幕拷贝程序的设计  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Borl

知识大全 基于Delphi的接口编程入门

基于Delphi的接口编程入门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一为什么使用接口? 

知识大全 基于Delphi的组件设计之概念[3]

基于Delphi的组件设计之概念[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Delph

知识大全 基于Delphi的组件设计之概念[1]

基于Delphi的组件设计之概念[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作为组件制

知识大全 基于Delphi的组件设计之概念[2]

基于Delphi的组件设计之概念[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  属性可以有

知识大全 基于Delphi的组件设计之简单实例

基于Delphi的组件设计之简单实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!这是一个可以计数