知识大全 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/11121

相关参考

知识大全 用C#实现全屏幕抓图

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

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

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

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

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

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

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

知识大全 Java抓图程序的实现

Java抓图程序的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  主要难点:  并发线程的控

知识大全 用delphi制作抖动窗体

  以下程序将教你如何制作一个窗体窗体一旦运行将在屏幕上不断抖动cha138/Article/program/Delphi/201311/8406

知识大全 delphi 缓冲画图(内存画图)解决画图闪烁问题[1]

  很多朋友在做绘图程序的时候往往出现屏幕不停刷新产生闪烁的问题这里就告诉大家一个解决办法缓冲绘图如果有人是用取反画图解决这个问题那么在画直线的时候容易出现斑点效果不是很好如果是图片很大那么缓冲画图是

手机玻璃屏幕生产废水处理技术

手机玻璃屏幕生产废水种类、成分复杂,整个生产工艺流程产生的废水主要有油墨废水、研磨废水、清洗废水、另外还有少量生活废水,根据业主提供的监测数据,油墨废水为高浓度有机废水,COD浓度为60000~800

手机玻璃屏幕生产废水处理技术

手机玻璃屏幕生产废水种类、成分复杂,整个生产工艺流程产生的废水主要有油墨废水、研磨废水、清洗废水、另外还有少量生活废水,根据业主提供的监测数据,油墨废水为高浓度有机废水,COD浓度为60000~800

手机玻璃屏幕生产废水处理技术

手机玻璃屏幕生产废水种类、成分复杂,整个生产工艺流程产生的废水主要有油墨废水、研磨废水、清洗废水、另外还有少量生活废水,根据业主提供的监测数据,油墨废水为高浓度有机废水,COD浓度为60000~800