我的目的如下:
 1)几台机子开启应用程序
 2)设置一台为服务器,其他的为客户机。通过程序,服务器可以将自己当前的界面在客户机上显示。并能看到他的一举一动! 有的提议此程序用屏幕广播来实现!由于以前没有做过!所以我不清楚!请问各位:这种方式好实现吗?如何实现!!

解决方案 »

  1.   

    好实现,
    用SOCKET就行了.
    每隔一段时间发送当前屏幕内容就行了
      

  2.   

    服务端:ServerSocket
    OnRead事件中:
    var
      s : String;
      s := socket.ReceiveText
      if s = 'getScreenSize' then
        begin
           截获屏幕,并将其保存到TMemroyStream可以用bmp.loadtostream(TMemoryStream);
           Socket.sendText(inttostr(TMemoryStream.size));
        end
      else if s = 'sendIt' then
        begin
           可以先将TMemoryStream压缩然后再发送,这样速度会快很多.
           Socket.sendStream(TMemoryStream);
        end;客户端:ClientSocket
    var
      mySize : Integer;//全局变量OnConnect事件中:
    socket.sendText('getScreenSize');OnRead事件中:
    begin
      if mySize = 0 then
       begin
         mySize := strtoint(Socket.ReceiveText);
         socket.sendText('sendIt');
       end
      else
       begin
         接收数据
         如果接收到的数据总数>=mySize then 
            解压缩数据
            显示图像
            mySize := 0;
            socket.sendText('getScreenSize');
       end;
    end;
      

  3.   

    我看到一个例子,但是。它上面没有实时动态显示!客户机切换到服务器端后,可以实时动态的显示服务器的一举一动,但是socket好象不行!有没有原例
      

  4.   

    lovehacker() 的方法是可行的,但是无法时时动态显示。虽然可以用时钟来调用。但是占用资源太多。时间一长就会死机。方法可行。当不是最佳方法可否提供最佳方法
      

  5.   

    是这样的,服务器发送一条命令,客户机上的界面切换到服务器上,服务器上的一举一动都可以在客户机上显示,包括鼠标的移动,界面的变化(这些在教学中经常看到的)。我没有此项的设计思路,请各位给些提示!lovehacker() 的方法可以实现,但是无法实现同步(原因:1)只可以看到屏幕,无法看到具体实现;2)如果用时钟的话,当触发时候,屏幕会闪,时间一长,打开太多,机子会死机)