delphi利用流实现网络传输屏幕图像

delphi利用流实现网络传输屏幕图像

ID:39550421

大小:45.50 KB

页数:7页

时间:2019-07-06

delphi利用流实现网络传输屏幕图像_第1页
delphi利用流实现网络传输屏幕图像_第2页
delphi利用流实现网络传输屏幕图像_第3页
delphi利用流实现网络传输屏幕图像_第4页
delphi利用流实现网络传输屏幕图像_第5页
资源描述:

《delphi利用流实现网络传输屏幕图像》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、大家应该见过很多网管程序,这类程序其中有一个功能就是监控远程电脑的屏幕。实际上,这也是利用流操作来实现的。下面我们给出一个例子,这个例子分两个程序,一个服务端,一个是客户端。程序编译后可以直接在单机、局部网或者互联网上使用。程序中已经给出相应注释。后面我们再来作具体分析。新建一个工程,在Internet 面版上拖一个ServerSocket 控件到窗口,该控件主要用于监听客户端,用来与客户端建立连接和通讯。设置好监听端口后调用方法Open 或者Active:=True 即开始工作。注意:跟前面的NMUDP 不同,当Socket 开始监

2、听后就不能再改变它的端口,要改变的话必须先调用Close 或设置Active 为False,否则将会产生异常。另外,如果该端口已经打开的话,就不能再用这个端口了。所以程序运行尚未退出就不能再运行这个程序,否则也会产生异常,即弹出出错窗口。实际应用中可以通过判断程序是否已经运行,如果已经运行就退出的方法来避免出错。当客户端有数据传入,将触发ServerSocket1ClientRead 事件,我们可以在这里对接收的数据进行处理。在本程序中,主要是接收客户端发送过来的字符信息并根据事先的约定来进行相应操作。unit Unit1;inter

3、faceuses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,  ScktComp ,jpeg;type  TForm1 = class(TForm)    ServerSocket1: TServerSocket;    procedure FormCreate(Sender: TObject);    procedure FormClose(Sender: TObject; var Action: TCloseAction); 

4、   procedure ServerSocket1ClientRead(Sender: TObject;      Socket: TCustomWinSocket);  private    procedure Cjt_GetScreen(var Mybmp: Tbitmap; DrawCur: Boolean); {自定义抓屏函数,DrawCur表示抓鼠标图像与否}    { Private declarations }  public    { Public declarations }  end;var  Form1: TF

5、orm1;  MyStream: Tmemorystream;{内存流对象} implementation{$R *.DFM}{ TForm1 }procedure TForm1.Cjt_GetScreen(var Mybmp: Tbitmap; DrawCur: Boolean);var  Cursorx, Cursory: integer;  dc: hdc;  Mycan: Tcanvas;  R: Trect;  DrawPos: Tpoint;  MyCursor: Ticon;  hld: hwnd;  Threadld:

6、 dword;  mp: tpoint;  pIconInfo: TIconInfo;begin  Mybmp := Tbitmap.Create; {建立BMPMAP }  Mycan := Tcanvas.Create; {屏幕截取}  dc := GetWindowDC(0);  try    Mycan.Handle := dc;    R := Rect(0, 0, screen.Width, screen.Height);    Mybmp.Width := R.Right;    Mybmp.Height := R.Bo

7、ttom;    Mybmp.Canvas.CopyRect(R, Mycan, R);  finally    releaseDC(0, DC);  end;  Mycan.Handle := 0;  Mycan.Free;  if DrawCur then {画上鼠标图象}  begin    GetCursorPos(DrawPos);    MyCursor := Ticon.Create;    getcursorpos(mp);    hld := WindowFromPoint(mp);    Threadld := G

8、etWindowThreadProcessId(hld, nil);    AttachThreadInput(GetCurrentThreadId, Threadld, True);    MyCursor.Handl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。