O Connect Desk é um software de suporte e controle remoto de alto desempenho baseado em tecnologias modernas de web e APIs nativas do Windows. Ele permite que você visualize e controle computadores remotamente em tempo real diretamente pelo seu navegador, sem a necessidade de instalar clientes pesados no lado do visualizador.
Com um design premium de última geração — utilizando dark mode, glassmorphism e efeitos fluidos —, o Connect Desk combina facilidade de uso com excelente performance.
- Captura Ultra-Rápida de Tela: Motor de captura nativo escrito em C# e executado dinamicamente via PowerShell em segundo plano (GDI+), garantindo alta taxa de quadros e excelente nitidez para leitura de textos.
- Controle Interativo Completo:
- Mouse: Movimentação, cliques (esquerdo e direito) e rolagem (scroll).
- Teclado com Atalhos Completos do Windows: Envio de texto, teclas especiais e todos os atalhos de sistema (Ctrl+C, Ctrl+V, Ctrl+Z, Ctrl+A, Alt+Tab, Alt+F4, Win, F1–F12, PageUp/Down, Insert, etc.) via mapeamento nativo de Virtual Key Codes (VK) do Windows.
- Transferência de Arquivos: Envie arquivos do seu computador local diretamente para o Desktop da máquina remota de duas formas:
- Drag & Drop: Arraste o arquivo sobre a tela remota — uma borda vermelha indicará a zona de soltura.
- Botão de Upload: Clique no botão "Enviar Arquivo" no painel HUD da sessão para selecionar o arquivo via diálogo do sistema.
- Sincronização de Área de Transferência (Clipboard Bidirecional): O conteúdo copiado na máquina remota é automaticamente sincronizado com o clipboard do seu navegador local, e vice-versa.
- Painel de Controle Web Responsivo: Interface web incrível baseada em fontes modernas (Outfit e Inter) com controle dinâmico de zoom/escala ("Ajustar à tela" ou "1:1 Real").
- Conectividade Segura por Sessão: Cada máquina de destino recebe um endereço exclusivo de 9 dígitos formatado e uma senha temporária aleatória de 4 dígitos gerada a cada inicialização do cliente.
- Servidor Web Coordenador Embutido: O próprio cliente consegue inicializar um painel web local na porta
4500caso esteja em rede local, permitindo controle direto. - Empacotamento Standalone: O cliente pode ser compilado em um único arquivo executável
.exede clique único usando a ferramentapkg. - Solução Inteligente para VPS Windows: Integração nativa de instruções e alertas para evitar o travamento de tela/tela preta comum ao minimizar ou desconectar sessões RDP em servidores virtuais.
O projeto é dividido em duas partes principais:
-
server/(Servidor Coordenador):- Baseado em Node.js, Express e Socket.io.
- Atua como um intermediário leve e de baixa latência que apenas redireciona os comandos de mouse/teclado dos visualizadores para a máquina alvo, e redistribui os frames de vídeo da máquina alvo para os visualizadores.
-
client/(Cliente Host / Máquina Alvo):- Um aplicativo Node.js que inicia um processo persistente e otimizado do PowerShell.
- O script do PowerShell carrega dinamicamente código C# nativo para interagir diretamente com as APIs do Windows (GDI+,
user32.dllpara movimentos de mouse e teclado). - Envia os frames de tela como JPEG comprimido em qualidade de alta fidelidade via conexões de WebSocket (Socket.io).
- Servidor Coordenador: Qualquer sistema operacional (Windows, Linux, macOS) com Node.js v16+ instalado.
- Cliente (Máquina a ser controlada): Sistema Operacional Windows (devido ao uso de APIs nativas Win32 e GDI+) com Node.js v16+ instalado.
- Visualizador (Viewer): Qualquer dispositivo moderno com um navegador web atualizado (Chrome, Edge, Firefox, Safari).
Primeiramente, baixe ou extraia o projeto. No terminal do diretório raiz, instale as dependências gerais do projeto e do servidor:
npm installEm seguida, navegue até a pasta client/ e instale as dependências específicas do cliente remoto:
cd client
npm install
cd ..Inicie o servidor de conexão para que as máquinas possam se registrar e se comunicar. Por padrão, ele escutará na porta 4500:
node server/server.jsVocê verá a seguinte saída no terminal:
Server (Controller) running at http://localhost:4500
Nota: Se você for implantar o servidor em uma VPS ou nuvem, certifique-se de expor a porta 4500 (ou a porta configurada na variável de ambiente PORT) em seu firewall.
No computador que você deseja controlar:
-
Verifique as configurações no arquivo
client/config.json:{ "id": "411988342", "serverUrl": "http://localhost:4500" }Substitua
http://localhost:4500pelo IP público ou domínio do seu servidor coordenador, se ele não estiver rodando localmente. -
Inicialize o cliente:
node client/client.js
-
O console do cliente limpará a tela e exibirá as credenciais de conexão seguras formatadas:
================================================== CONNECT DESK REMOTE CONTROL CLIENT (PoC) ================================================== Endereço Remoto: 123 456 789 Senha Temporária: 4321 ================================================== Conectando ao Coordenador: http://localhost:4500 ================================================== ► SE DETECTAR TELA PRETA EM VPS WINDOWS: Caso sua sessão RDP caia ou seja fechada, a GUI trava. Para desconectar mantendo a tela ativa, rode no cmd: tscon 1 /dest:console (troque 1 pelo ID da query session) ================================================== ► PARA CONTROLAR OUTRO COMPUTADOR: Pressione [Enter] para abrir o Painel de Controle ==================================================
- No computador do suporte (Visualizador), abra o navegador e acesse o endereço do servidor coordenador (ex:
http://localhost:4500ou o endereço IP público/domínio da sua VPS). - Na belíssima tela inicial do Connect Desk, insira o Endereço Remoto de 9 dígitos exibido no console do cliente.
- Clique em Iniciar Conexão.
- Uma janela pop-up estilizada solicitará a senha. Digite a Senha Temporária de 4 dígitos gerada no console da máquina alvo e clique em Confirmar.
- Pronto! A tela da máquina remota será renderizada de forma ultra fluida. Use o mouse e o teclado para operá-la como se estivesse na frente dela.
O Connect Desk transmite todos os atalhos nativos do Windows para a máquina remota usando Virtual Key Codes (VK), mapeados diretamente para as APIs keybd_event do user32.dll. Basta pressionar as teclas normalmente na janela do visualizador:
| Atalho | Ação na máquina remota |
|---|---|
Ctrl + C |
Copiar |
Ctrl + V |
Colar |
Ctrl + X |
Recortar |
Ctrl + Z |
Desfazer |
Ctrl + A |
Selecionar tudo |
Ctrl + S |
Salvar |
Alt + Tab |
Alternar janelas |
Alt + F4 |
Fechar janela ativa |
Win (Meta) |
Abrir menu Iniciar |
F1 – F12 |
Teclas de função |
PageUp / PageDown |
Rolar página |
Home / End |
Início / Fim de linha |
Insert / Delete |
Inserir / Excluir |
Setas direcionais |
Navegar |
Como funciona: Cada tecla é transmitida como um evento
keydown+keyupcom o código VK correto. Modificadores (Ctrl,Alt,Shift) são mantidos pressionados enquanto você segura a tecla, permitindo combinações exatas comoCtrl+Shift+N,Alt+Tab, etc.
O Connect Desk permite enviar arquivos do seu computador local diretamente para o Desktop (Área de Trabalho) da máquina remota.
- Com uma sessão remota ativa, arraste um arquivo do seu computador para qualquer área da tela remota exibida no navegador.
- Uma borda vermelha animada aparecerá, indicando a zona de soltura.
- Solte o arquivo — ele será transferido e salvo automaticamente no Desktop da máquina remota.
- Um toast de confirmação será exibido com o status da transferência.
- Durante uma sessão ativa, clique no botão "Enviar Arquivo" (ícone de upload) no painel HUD superior.
- Selecione o arquivo desejado no diálogo do sistema operacional.
- O arquivo será transmitido e salvo no Desktop da máquina remota.
Nota: Arquivos de qualquer tipo e tamanho podem ser enviados. O arquivo é convertido para Base64 no navegador, transmitido via WebSocket (Socket.io) e gravado diretamente no disco da máquina alvo pelo cliente Node.js.
Para facilitar o uso por parte de clientes ou usuários de suporte final, você pode compilar o módulo client em um único arquivo executável para Windows. Isso elimina a necessidade de instalar o Node.js na máquina que será controlada!
Para fazer isso:
- Abra um terminal na pasta
client/:cd client - Execute o comando de compilação:
npm run build
- A ferramenta
pkgirá empacotar todos os scripts, dependências do node_modules e arquivos estáticos da pastapublicno executável. - O arquivo gerado estará disponível em
client/dist/connectdesk.exe.
Agora você pode enviar este arquivo diretamente para o usuário. Ele só precisa dar um duplo clique no executável para gerar as credenciais de suporte instantâneo!
Ao utilizar o controle remoto em VPSs Windows (como as contratadas na AWS, Azure, Google Cloud ou provedores locais), é comum se deparar com uma tela preta se você fechar ou minimizar a janela de Conexão de Área de Trabalho Remota (RDP) padrão do Windows. Isso ocorre porque o Windows desativa o renderizador GUI de tela ativa para economizar recursos quando não há nenhum usuário RDP ativo.
Para solucionar isso e manter a tela ativa para o Connect Desk continuar funcionando perfeitamente, siga estas etapas antes de fechar o seu RDP:
- Abra o Prompt de Comando (CMD) como Administrador na sua VPS.
- Execute o seguinte comando para obter o ID da sua sessão RDP ativa:
query session - Você verá uma lista. Procure pela linha com o nome do seu usuário (normalmente
AdministratorouAdministrador) sob a sessão com nome ativordp-tcp#...e anote o número exibido na coluna ID (geralmente é1ou2). - Execute o comando a seguir substituindo o
ID_DA_SESSAOpelo número anotado:Exemplo:tscon ID_DA_SESSAO /dest:consoletscon 1 /dest:console - A sua janela do RDP padrão será fechada imediatamente. Porém, o Windows irá transferir a interface gráfica ativa diretamente para o console local, mantendo a GUI em execução ativa.
- Agora, o Connect Desk poderá transmitir a tela e aceitar comandos de mouse e teclado sem nenhum travamento ou tela preta!
O Connect Desk foi desenvolvido sob os mais rígidos padrões de design moderno para proporcionar a melhor experiência do usuário:
- Tipografia Fluida: Utilização das fontes Outfit e Inter via Google Fonts.
- Aparência Premium Glass: Efeitos de desfoque de fundo (backdrop-filter) e gradientes elegantes que acompanham as interações.
- Responsividade Dinâmica: O visualizador é compatível tanto com monitores ultrawide quanto com notebooks e telas menores, graças à capacidade inteligente de ajuste e redimensionamento automático do canvas.
Se este projeto foi útil para você ou se você deseja apoiar o desenvolvimento contínuo do Connect Desk, sinta-se à vontade para fazer uma doação de qualquer valor!
Toda contribuição é extremamente bem-vinda e nos ajuda a manter o projeto ativo, aprimorando funcionalidades e trazendo novas atualizações.
Escaneie o QR Code acima para doar qualquer valor via Pix 🚀
Para esclarecer dúvidas, reportar problemas ou interagir com outros desenvolvedores e usuários do Connect Desk, participe do nosso grupo oficial no WhatsApp:
👉 Acessar Grupo de Suporte no WhatsApp
Este projeto é desenvolvido para fins educacionais e de demonstração de conceito (PoC). Sinta-se livre para customizar, expandir e integrar em suas próprias soluções de suporte de TI!