易截截图软件、单文件、免安装、纯绿色、仅160KB

delphi怎样实现远程控制(转)

将远程控制应用于教学中,已成为目前计算机化教学的重要手段。一定有很多的网虫想了解这种网络教学方式的编程原理吧。在此我们就以一个简单的远程控制程序作为示例,说明这种网络编程的基本原理。本程序以Delphi编程为例。
  其实该程序的工作机制很简单,受控方运行一个程序,用于侦听端口并接收数据包,而主控方通过端口给受控方的端口发送数据包。根据这个原理,我们编写两个程序,一个是控制方的,而另一个是受控方的,把这两个程序运行在两台不同的机器上,受控机等待控制机发送过来的数据然后执行相应的操作(如本例中的重启)。
  Delphi中有两类控件可以实现上面的目的。一类是控制方使用ClientSocket,受控方使用ServerSocket(均在Internet页),另一类是双方都使用NMUDP(在FastNet页)。我们知道网络传输都是不可靠的,也就是说传输的数据有可能丢失,而这两类控件的区别是前者使用TCP(Transfer Control Protocol,传输控制协议)。TCP协议是面向连接,每次双方建立连接(或断开)时需经过三次握手,较为耗时,但数据传输可靠;而后者使用UDP(User Datagram Protocol,用户报文协议),它是面向无连接的,发出数据不需对方确认,这样速度比TCP快,但数据有可能丢失,因此它不可靠。由于控制所需传送的数据量不大,而且需要较高的可靠性,因此一般使用前者,程序说明如下:
  第一步,开始控制方程序,在其中加入clientsocket控件,取名control,设置host属性为受控机ip地址,port属性为1234(端口可以随便设置,但不要与一些默认端口重复,如80等)。
  第二步,在FormCreate事件中加入代码control.open; //打开与受控机的通信
  第三步,加入个Button,设置caption为“重新启动”,并在ButtonClick事件中加入代码control.Socket.SendText('reboot');//通知受控机重新启动。这样就完成了控制方的工作了。
  第四步,开始受控方的程序,在其中加入serversocket控件,取名undercontrol,设置port属性为1234(与控制方的端口一致),active属性为true;
  第五步,在undercontrol的OnclientRead事件中加入代码if Socket.ReceiveText='reboot' then
  ExitWindowsEx(EWX_REBOOT,2); //重启的API函数
  这样就完成了代码的工作,然后编译这两个程序生成两个.exe文件分别放在两台机器上运行(记得先运行Win98下的受控机程序),在控制机按下“重新启动”的Button(按钮),受控机就重新启动了。远程控制机�


相关文档:

delphi资料

1.防止刷新时闪烁的终极解决办法
{ 防止刷新时闪烁的终极解决办法(对付双缓冲无效时) }
  Perform($000B, 0, 0); //锁屏幕  防止闪烁
  // 做一些会发生严重闪烁的事情..
  //解锁屏幕并重画
  Perform($000B, 1, 0);
  RedrawWindow(Handle, nil, 0, RDW_FRAME + RDW_INVALIDATE + R ......

delphi code

http://hi.baidu.com/rainbow_chaser/blog/item/7eb5f001c0d864e508fa93ac.html
1.防止刷新时闪烁的终极解决办法
{ 防止刷新时闪烁的终极解决办法(对付双缓冲无效时) }
Perform($000B, 0, 0); //锁屏幕 防止闪烁
// 做一些会发生严重闪烁的事情..
//解锁屏幕并重画
Perform($000B, 1, 0);
RedrawWindow(Handle, nil, ......

delphi开发ocx控件开发笔记(一)

      由于项目的需要,近期开始学习用delphi开发一个软电话控件。
      以前接触过一些delphi开发方面的东西(当然都是些皮毛啦),但没接触过ocx控件的开发,在此把一些简单的东西记下来,一方面以后自己可以再学习,另一方面希望对刚刚学习delphi开发ocx控件的初学 ......

Delphi字符串函数大全

Delphi字符串函数大全
uses StrUtils;
【字符串函数大全】
      首部 function AnsiResemblesText(const AText, AOther: string): Boolean;
      $[StrUtils.pas
      功能 返回两个字符串是否相似
      ......

Delphi递归加载树形(TreeView)列表

//采用递归方法,D7编译调试通过。
//数据采用ADOQuery读取,并将数据暂存在一个动态数组中,树形列表控件为TreeView。
procedure TForm1.LoadTreeInfo;
type
  TInfo = record
    ID,      //代码      
    Name,    //名称
  &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号