变态重口极致另类在线-波多久久夜色精品国产-波多野结衣在线观看一区-波多野结衣在线观看一区二区-污污的网站免费阅读-污污视频网址

東坡下載:內容最豐富最安全的下載站!

首頁編程開發Delphi → 基于Delphi的屏幕抓圖技術的實現

基于Delphi的屏幕抓圖技術的實現

相關文章發表評論 來源:本站時間:2010/10/14 10:19:59字體大。A-A+

更多

作者:東坡下載點擊:1330次評論:0次標簽:

      隨著網絡技術的飛速發展,計算機網絡在各高等院校教學中的使用已非常普遍,但是,我們發現一個問題,在教學的過程中,由于老師是面對著學生,而背對著學生計算機的顯示器,不能隨時查看學生計算機顯示器上的內容,所以,有的學生在教學中偷玩游戲,影響了教學的質量和效果,因此,設計一款網絡監控軟件,監控學生計算機,十分必要。為了實現這一目的,此系統應具有以下功能:
  (1)教師用機可以循環顯示學生計算機的顯示器上的畫面。
 。2)教師用機可以動態顯示某一學生計算機的顯示器上的畫面。
 。3)教師用機可以對學生用計算機發出警告信息和控制信息。
 。4)學生用計算機開機自動運行服務端監控程序。
 。5)為了防止學生用計算機的服務端監控程序,被學生發現用Ctrl+Alt+Del關閉,在Ctrl+Alt+Del對話框中必須隱藏程序。同時,應該隱藏程序在任務欄的按鈕。
  本文結合應用實踐,重點向大家介紹在Delphi7.0中可以采用的兩種實現屏幕抓圖技術的操作方法。
  程序實現
  (1)抓取屏幕圖像的難點有兩個:一是如何奪取屏幕的句柄,二是知道屏幕句柄后如何獲取屏幕的圖像。Borland公司的設計人員用畫布(Tcanvas)對象封裝了Windows的大部分圖形輸出功能,可以通過它以更直觀的方式和Windows的屏幕打交道,而不必關心令人頭疼的Windows API函數。具體程序如下:

procedure TForm1.Timer1Timer(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(0); //取得屏幕的DC,參數0指的是屏幕
 FullscreenCanvas:=TCanvas.Create;
 //創建一個CANVAS對象
 FullscreenCanvas.Handle:=DC;
 Fullscreen.Canvas.CopyRect(Rect(0,0,screen.Width,screen.Height),
 fullscreenCanvas,Rect(0,0,Screen.Width,Screen.Height));
 //把整個屏幕復制到BITMAP中
 FullscreenCanvas.Free;
 //釋放CANVAS對象
 ReleaseDC(0,DC); //釋放DC
 //*******************************
 image1.picture.Bitmap:=fullscreen; //拷貝下的圖象賦給IMAGE對象
 image1.Width:=fullscreen.Width;
 image1.Height:=fullscreen.Height;
 fullscreen.free; //釋放bitmap
 form1.WindowState:=wsNormal; //復原窗口狀態
 form1.show; //顯示窗口
 messagebeep(1); //BEEP叫一聲,報告圖象已經截取好了。
end;

 。2)Delphi的第三方控件ScreenCapture,它是一個很好的免費的截圖控件,可以輕松抓取任意大。ㄈ廉斎恍校⑵聊坏娜魏挝恢,還可以設置所截圖像的形狀、以及用何種模式截圖。下面介紹的是用TcmWindow模式截圖,使用非常簡單,使用效果可以與著名的抓圖軟件SnagIt32媲美。

procedure TForm1.BtnStartClick(Sender:TObject);
begin
 ScreenCapture1.start; //開始截圖
end;

 //當截取屏幕成功時,此事件發生
 procedure TForm1.ScreenCapture1Capture(Sender:TObject;Bitmap:TBitmap);
begin
 //調整滾動窗口的大小以適應截獲圖像的大小
 Scrollbox1.HorzScrollBar.Range:= Image1.width;
 Scrollbox1.VertScrollBar.Range:= Image1.height;
end;

procedure TForm1.FormCreate(Sender:TObject);
begin
 //載入entntacp.dll文件
 BtnStart.enabled:= ScreenCapture1.dllavailable;
 //顯示版本信息
 caption:= '屏幕抓圖軟件' + ScreenCapture1.version;
end;

//當沒有足夠的內存支持截取屏幕時,此事件發生
procedure TForm1.ScreenCapture1Error(Sender:TObject);
begin
 MessageDlg('屏幕截取時發生一個錯誤!請關閉其他應用程序以獲得更多內存資源.', mtError,[mbOK],0);
end;

 //當用戶按“Esc”鍵,即取消屏幕截取時,此事件發生
procedure TForm1.ScreenCapture1UserCancelled(Sender:TObject);
begin
 MessageDlg('用戶取消屏幕截取。',mtInformation,[mbOK],0);
end;

  運行程序,效果如圖1和圖2所示。

delphi屏幕抓圖效果
圖1 運行效果圖
實現抓圖后的效果圖
圖2 抓取圖像后的效果圖

  結論
  通過對以上兩種程序代碼的調試運行,使用第三方控件的方法更易于設計實現,文中的程序代碼全部在Win2000和Delphi7.0環境下調試通過。

相關評論

閱讀本文后您有什么感想? 已有 人給出評價!

  • 2791 喜歡喜歡
  • 2101 頂
  • 800 難過難過
  • 1219 囧
  • 4049 圍觀圍觀
  • 5602 無聊無聊
熱門評論
最新評論
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數: 0/500 (您的評論需要經過審核才能顯示)

本類常用軟件

主站蜘蛛池模板: 高h辣h双处全是肉一对一 | 国产精品一区二区不卡的视频 | 最近中文免费字幕8 | 香蕉视频在线免费 | 中文字幕在线看视频一区二区三区 | 天堂网视频在线 | 日批免费视频不要会员 | 在线视频一区二区三区四区 | 97国产免费全部免费观看 | 国产欧美日韩精品a在线观看 | 国产午夜精品理论片久久影视 | 黑人极品videos精品欧美裸 | 福利网在线 | 欧美五月 | 日本福利在线 | 美国性xxx| 韩国伦理免费 | 九九久久国产 | 老司机午夜精品视频在线观看免费 | 在线精品视频成人网 | 特级毛片ww特级毛片w免费版 | 国产91免费 | 印度一级毛片免费的 | 在线色 | 久久中文字幕免费视频 | 手机在线精品视频每日更新 | 亚洲一区视频在线播放 | 国产精品麻豆综合在线 | 国产成人一区二区在线不卡 | 永久免费看黄在线播放 | 一个人看的www高清在线观看 | 成人免费黄网站 | 一级毛片一级毛片免费毛片 | 亚洲高清日韩精品第一区 | 动漫美女无遮挡 | www.久久.com| 欧美精品一线二线大片 | 意大利极品xxxxhd | 涩涩成人网 | 九九热播视频 | 国产视频一区二区三区四区 |