大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> 如何用Delphi6实现对计算机的远程控制

如何用Delphi6实现对计算机的远程控制

时间: 2021-07-31 作者:daque

winsock是一组api,用来在搜集上传输数据和调换消息。固然此刻有很多东西如ftp步调不妨在搜集上传输数据和文献,然而经过winsock编制程序有更大的精巧性,它不须要关怀搜集贯穿的详细,但是用winsock编制程序却很搀杂,然而在delphi中咱们并不须要径直与winsock的api打交道,由于tclientsocket元件和tserversocket元件(internet页)封装了winsock的大局部api,使得对winsock的考察大大简化。底下这个长途遏制的例子就很领会地说领会这个题目,它不妨发送一个动静给对方,并不妨使对方的电脑封闭、从新启用或从新登录。一、实行道理   举行长途遏制,本质上即是一个效劳器步调(以次简称被控步调)和一个存户步调(以次简称主要控制步调):被控方即为效劳器步调,它监听存户的乞求,并作根源理;主要控制方即为存户步调,它贯穿上效劳器后,发出本人的乞求,效劳器便按照自已的乞求举行各别的相应。二、编写主要控制步调   兴建一个名目client.dpr,并把一个tclientsocket元件放到form上,它的属性树立如次:port设为100(端标语可大肆树立,只诉求两边一致),其它属性按默许值。在窗体上增添两个tedit:edit1用来输出发送的字符,edit2用来输出ip地方;增添两个tbutton:button1点击后用来贯穿被控机,button2点击后用来发送字符,而后证明一个独占变量connectflag,表白两边能否贯穿好:privateconnectflag:boolean;---- 2、clientsocket1的onconnect事变代码如次:procedure tform1.clientsocket1connect(sender: tobject;socket: tcustomwinsocket);begin connectflag:=true; //表白贯穿胜利end;---- 3、clientsocket1的onerror事变代码如次:procedure tform1.clientsocket1error(sender: tobject;socket: tcustomwinsocket; errorevent: terrorevent;var errorcode: integer);beginapplication.messagebox(pchar(' 不许贯穿到ip地方: ' + edit2.text+'。'+#13+'大概是监听步调没有运转或搜集妨碍!'),'贯穿缺点',mb_ok+mb_iconstop);errorcode := 0; end;---- 4、button1的onclick事变代码如次:procedure tform1.button1click(sender: tobject);beginwith clientsocket1 do beginif active then beginactive := false;//在贯穿之前开始封闭connectflag:=false; //置贯穿标记为假end;if length(edit2.text) > 0 then beginhost := edit2.text; //指定ip地方或长机名active := true; end; end;end;---- 5、button2的onclick事变代码如次:procedure tform1.button2click(sender: tobject);beginif connectflag thenclientsocket1.socket.sendtext(edit1.text)//即使贯穿胜利则发送字符串elseapplication.messagebox(pchar(' 没有贯穿到地方 :' + edit2.text+'。'+#13+'查看ip地方能否生存或能否仍旧贯穿!'),'提醒消息',mb_ok+mb_iconstop);end;三、编写被控步调 ---- 1、兴建一个名目server.dpr,并把一个tserversocket元件放到form上,它的属性树立如次:active设为true;port设为100,其它属性按默许值。---- 2、serversocket1的onclientread事变代码如次:procedure tform1.serversocket1clientread(sender: tobject;socket: tcustomwinsocket);varstr:pchar;code,v:integer;beginstr:=pchar(socket.receivetext); //接受字符串val(str,v,code); //处置接受的字符串,开始变换字符串为平头 if code< >0 then application.messagebox(str,'提醒消息',mb_ok+mb_iconinformation) //即使变换后的数据不是一个整型数就经过动静框来表露字符串elseif (v=0)or(v=1)or(v=2) then exitwindowsex(v,0) //挪用windows的api因变量(v=0表白从新登录、v=1表白关灯、v=2表白重启用)elseapplication.messagebox(str,'提醒消息',mb_ok+mb_iconinformation); //变换后数据不为0、1、2时在动静框内表露字符串end;---- 3、窜改名目文献,不让窗口表露而且提防它运转两次,窜改begin和end之间的代码如次:beginapplication.initialize;if findwindow('tform1','form1')=0 then begin //当没有找到form1时实行底下代码application.showmainform:=false; //不表露主窗口application.createform(tform1, form1);application.run;end;end.四、提防事变 ---- 1、搜集要安装精确并安置tcp/ip和议,且要平常运转。---- 2、开始要运转被控步调。---- 3、必应知道对方的ip地方或长机名。然而要提防的是,此步调不妨长途遏制对方的计划机,请慎用.即使展示题目,笔者概不控制. 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.