告诉你吧, 你上www.playicq.com下载一个远程控制的源代码。功能多多。

解决方案 »

  1.   

    将被控制计算机的IP地址写入LIST中,用LIST作参数!试试!
      

  2.   

    你是指的远程控制??我前几天写了一个远程查看别的机器文件的东东
    可以去ithinking.onchina.net 下载原码。
      

  3.   

    客户端程序: unit cmain;   interface   uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, StdCtrls, ExtCtrls,jpeg;   type TForm1 = class(TForm) Panel1: TPanel; ScrollBox1: TScrollBox; Image1: TImage; Button1: TButton; Edit1: TEdit; Button2: TButton; ClientSocket1: TClientSocket; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end;   var Form1: TForm1; c:longint; m:tmemorystream;   implementation   {$R *.DFM}   procedure TForm1.Button1Click(Sender: TObject); begin try clientsocket1.Close; clientsocket1.Host:=edit1.text; clientsocket1.Open; //连接服务端 except showmessage(edit1.text+#13#10+‘未开机或未安装服务程序‘); end; end; procedure TForm1.Button2Click(Sender: TObject); begin clientsocket1.Socket.SendText(‘gets‘); //发送申请,通知服务端需要屏幕图象 end;   procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin caption:=‘连接到‘+edit1.text; end;   procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin caption:=‘连接‘+edit1.text+‘失败‘; showmessage(edit1.text+#13#10+‘未开机或未安装服务程序‘); errorcode:=0;   end;   procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var buffer:array [0..10000] of byte; //设置接收缓冲区 len:integer; ll:string; b:tbitmap; j:tjpegimage; begin if c=0 then //C为服务端发送的字节数,如果为0表示为尚未开始图象接收 begin ll:=socket.ReceiveText; c:=strtoint(ll); //设置需接收的字节数 clientsocket1.Socket.SendText(‘okok‘); //通知服务端开始发送图象 end else begin //以下为图象数据接收部分 len:=socket.ReceiveLength; //读出包长度 socket.ReceiveBuf(buffer,len); //接收数据包并读入缓冲区内 m.Write(buffer,len); //追加入流M中 if m.Size>=c then //如果流长度大于需接收的字节数,则接收完毕 begin m.Position:=0; b:=tbitmap.Create; j:=tjpegimage.Create; try j.LoadFromStream(m); //将流M中的数据读至JPG图像对象J中 b.Assign(j); //将JPG转为BMP Image1.Picture.Bitmap.Assign(b); //分配给image1元件 finally //以下为清除工作 b.free; j.free; clientsocket1.Active:=false; clientsocket1.Active:=true; m.Clear; c:=0; end; end; end;     end;   procedure TForm1.FormCreate(Sender: TObject); begin m:=tmemorystream.Create;   end;   procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin m.free; ClientSocket1.Close; end;   end. 
      

  4.   

    服务端程序: unit smain;   interface   uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ScktComp,jpeg;   type TForm1 = class(TForm) ServerSocket1: TServerSocket; procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;   var Form1: TForm1; m1:tmemorystream;   implementation   {$R *.DFM}   procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var s,s1:string; desk:tcanvas; bitmap:tbitmap; jpg:tjpegimage; begin s:=socket.ReceiveText; if s=‘gets‘ then //客户端发出申请 begin bitmap:=tbitmap.Create; jpg:=tjpegimage.Create; desk:=tcanvas.Create; //以下代码为取得当前屏幕图象 desk.Handle:=getdc(hwnd_desktop); m1:=tmemorystream.Create; //初始化流m1,在用sendstream(m1)发送流后, //它将保留到socket对话结束, //不能用手工free掉,否则会触发异常 with bitmap do begin width:=screen.Width; height:=screen.Height; canvas.CopyRect(canvas.cliprect,desk,desk.cliprect); end; jpg.Assign(bitmap); //将图象转成JPG格式 jpg.SaveToStream(m1); //将JPG图象写入流中 jpg.free; m1.Position:=0; s1:=inttostr(m1.size); Socket.sendtext(s1); //发送图象大小 end; if s=‘okok‘ then //客户端已准备好接收图象 begin m1.Position:=0; Socket.SendStream(m1); //发送JPG图象 end;   end;   procedure TForm1.FormCreate(Sender: TObject); begin ServerSocket1.open; end;   end.     -- 
      

  5.   

    参照木马程序和远程控制的程序!const
       serverport=6666;
       servercomputer='ljw';
       clientport=7777;
       MaxuserNum=101;
    type
      Tservercommand=(ackconnect,acksendmsg,ackdisconnect,ackonlineuser,ackrefresh);
      Tclientcommand=(connect,sendmsg,disconnect);
      Tuser=record
        no:integer;
        servercommand:Tservercommand;
        clientcommand:Tclientcommand;
        Ip:string[15];
        nick:shortstring;
        sex:string[4];
        tonick:shortstring;
        msg:shortstring;
        face:shortstring;
        color:tcolor;
        time:shortstring;
        Exonline:array[1..MaxuserNum]of string[4];
        ExAck:boolean;
      end;procedure TForm1.udp1DataReceived(Sender: TComponent; NumberBytes: Integer;
      FromIP: String; Port: Integer);
    var
      MyStream: TMemoryStream;
      usermsg:tuser;
      i,j:integer;
    begin
      MyStream := TMemoryStream.Create;
      try
        UDP1.ReadStream(MyStream);
        MyStream.Read(usermsg,sizeof(usermsg));
        case usermsg.clientcommand of
        connect:
          begin
            j:=1;
            for i:=1 to high(userarr) do
              if  userarr[i].no<>0 then
              begin
                onlinemsg[j].sex:=userarr[i].sex;
                onlinemsg[j].nick:=userarr[i].nick;
                j:=j+1;
              end;
            if onlinemsg[1].no<>0 then
            begin
              udp1.RemoteHost:=FromIp;
              MyStream.Clear;
              usermsg.servercommand:=ackonlineuser;
              MyStream.Write(onlinemsg,sizeof(onlinemsg));
              UDP1.SendStream(MyStream);
            end;        for i:=1 to high(userarr) do
              if userarr[i].no=0 then
              begin
                userarr[i].no:=i;
                userarr[i].ip:=fromIp;
                userarr[i].nick:=usermsg.nick;
                break;
              end;
            udp1.RemoteHost:=FromIp;
            MyStream.Clear;
            usermsg.no:=userarr[i].no;
            usermsg.servercommand:=ackconnect;
            MyStream.Write(usermsg,sizeof(usermsg));
            UDP1.SendStream(MyStream);      end;
         disconnect:
           begin
             for i:=1 to high(userarr)  do
               if userarr[i].no=usermsg.no  then
               begin
                 userarr[i].no:=0;
                 break;
               end;
            MyStream.Clear;
            udp1.RemoteHost:=fromip; 
            usermsg.servercommand:=ackdisconnect;
            MyStream.Write(usermsg,sizeof(usermsg));
            UDP1.SendStream(MyStream);
           end;
         sendmsg:
           begin
             usermsg.msg:='['+usermsg.nick+']'+usermsg.face+'对'+'['+usermsg.tonick+']'+'说>>'+string(usermsg.msg)+'('+usermsg.time+')';
             usermsg.servercommand:=acksendmsg;
             if usermsg.tonick='全部' then
             begin
               for i:=1 to high(userarr)  do
               begin
                 if trim(userarr[i].Ip)<>'' then
                 begin
                   udp1.RemoteHost:=trim(userarr[i].Ip);
                   mystream.Clear;
                   MyStream.Write(usermsg,sizeof(usermsg));
                   UDP1.SendStream(MyStream);
                 end;
               end
             end
             else
             begin
             udp1.remotehost:=fromip;
             mystream.Clear;
             MyStream.Write(usermsg,sizeof(usermsg));
             UDP1.SendStream(MyStream);
               for i:=1 to high(userarr) do
                if userarr[i].nick=usermsg.tonick then
                begin
                  udp1.RemoteHost:=trim(userarr[i].Ip);
                  mystream.Clear;
                  MyStream.Write(usermsg,sizeof(usermsg));
                  UDP1.SendStream(MyStream);
                  break;
                end;
             end;
           end;
        end;
      finally
        freeandnil(MyStream);
      end;
    end;
      

  6.   

    其实c/s方式可以用ISAPI、CGI等方式实现。
    用Socket来做需要一个服务器,一个客户端,每台机器都需要安装(C/S也如此)。
    有一本《Delphi5.0程序设计》丛书(中国铁道出版社),其中Internet应用实务篇不错,强烈建议买一本看看,也许正是您所需要的。
      

  7.   

    http://lovejingtao.jnbiz.com/S_Client.exe
    INTENET上面一幅图像1~4秒钟
      

  8.   

    感谢新新虫前面所说的都是截取远程计算机的屏幕,
    而我想要的是完全遥控远程计算机,就像TOP2000和WIN XP的远程辅助功能一样
      

  9.   

    使用以下API函数:
    keybd_event  模拟一个键盘事件
    mouse_event  模拟一个鼠标事件
    将本地的键盘、鼠标事件打包发送到远程机,远程机调用这两个API函数。再返回屏幕即可
      

  10.   

    能把例子发到我的信箱里吗?我的信箱是:[email protected]
      

  11.   

    >前面所说的都是截取远程计算机的屏幕,而我想要的是完全遥控远程计算机道理上都是客户端发送命令/请求, 服务端根据接收到的命令执行相应的操作, 有何不对的? 服务端只要有足够特权要干什么不可以? 要控制多个机器, 使用 UDP 组播就行.