Skip to content

De operações RDP às cegas até a publicação na MS Store: a história do RDP Heartbeat

2026-03-29

Tags: [Diário de desenvolvimento](/pt/blog/tags/#Diário de desenvolvimento) · Produtos · RDP · Windows

Prólogo: O convidado indesejado durante o vibe coding

Frequentemente me conecto a uma máquina RDP (Área de Trabalho Remota) via UDP para escrever código, entrando naquele estado de concentração relaxada do «vibe coding».

No processo, inevitavelmente encontro operações demoradas: esperar por uma API lenta, ou um script processando silenciosamente em segundo plano. Quando a tela congela em uma janela por muito tempo, é perfeitamente normal. Normalmente ignoro, navego na web ou me reclino na cadeira esperando.

Mas então descobri um fenômeno exasperante: às vezes a tarefa já havia terminado — era minha tela RDP que tinha congelado completamente.

Não tenho certeza se conexões TCP puras sofrem do mesmo problema (a latência TCP é relativamente alta, e eu prefiro a suavidade do UDP), mas no modo UDP, este «congelamento de Schrödinger» definitivamente existe.

O pior cenário: Não se desconectou — apenas ficou cego

Se a rede falha e o RDP exibe «Conexão perdida», isso é bom — pelo menos sei que preciso reconectar.

O mais torturante é que embora a tela não se atualize mais, os eventos de teclado e mouse ainda estão sendo enviados!

Imagine a cena: encaro uma tela congelada, pensando que o script ainda não terminou. Impaciente, movo o mouse — nenhuma reação. Clico às cegas, pressiono Enter várias vezes tentando «acordá-lo»... apenas silêncio.

Finalmente, fecho a janela RDP e me reconecto. Só então descubro com horror: todos aqueles cliques e digitações às cegas foram executados na máquina remota. Operar sem feedback visual é o pesadelo de qualquer desenvolvedor.

Não preciso de painéis complexos — apenas um olhar de tranquilidade

Meu requisito era extremamente simples e puro: uma coisinha pequena, flutuando silenciosamente em um canto da tela, para sempre.

Se piscar, sei que a tela está atualizando em tempo real e posso esperar tranquilamente a resposta da API. Se parar, percebo imediatamente: «Ah, congelou de novo, hora de reconectar» — evitando perfeitamente um desastre de operações às cegas.

Uma feliz coincidência: O efeito «Keep-Alive» quase mágico

E assim nasceu o RDP Heartbeat. Projetado para ser o mais discreto possível — click-through, sem nunca interferir com as operações normais. Sua única missão: proporcionar aquele pouco de «confirmação visual» que você mais precisa ao trabalhar remotamente.

Mas algo interessante aconteceu: depois de começar a usá-lo, os congelamentos de tela RDP tornaram-se incrivelmente raros.

Isso foi uma surpresa total. Minha hipótese: como esta luz pulsante realiza atualizações em nível de pixel constantemente no canto da tela, essa atualização contínua atua como um mecanismo de «keep-alive» na camada de aplicação, mantendo um fluxo de dados ativo para a sessão RDP. Honestamente, não investiguei profundamente os mecanismos do protocolo de rede subjacente, então não posso afirmar com certeza. Resumindo: funciona como por mágica.

Já que fiz, por que não publicar (e os obstáculos encontrados)

Olhando para esta pequena coisa piscando silenciosamente no canto, pensei que outros desenvolvedores com o mesmo problema poderiam se beneficiar. Então decidi publicá-la na Microsoft Store.

Acontece que esta foi uma decisão incrivelmente torturante.

Como a escrevi em Python, todo o processo de empacotamento e publicação foi uma odisseia de sangue e lágrimas: Código-fonte Python → exe via PyInstaller → instalador Inno Setup → finalmente pacote MSIX. Comparado com a experiência fluida de empacotamento do WinUI 3 nativo, este fluxo de trabalho era um caminho de montanha cheio de curvas.

Também devo admitir que um aplicativo desktop em Python fica um pouco aquém no refinamento visual.

Planos futuros

Quando tiver tempo, planejo escrever um artigo detalhado sobre todo o processo de empacotamento do Python ao MSIX. Certamente não é a solução ótima, mas é um caminho viável — espero que ajude quem quer publicar suas ferramentas Python na Store.

Quanto ao RDP Heartbeat em si, espero encontrar tempo para reescrevê-lo completamente em WinUI 3 nativo, tornando esta pequena luz pulsante ainda mais suave e elegante.

Se você também fica olhando para telas remotas congeladas ou sofre com os congelamentos repentinos do RDP, experimente esta pequena ferramenta. Espero que preserve o bom humor em cada uma das suas sessões de vibe coding.

Obter no Microsoft Store

Saiba mais sobre o RDP Heartbeat