KeyUp fired many times when RDP session get focus

Emanuele Schirato 0 Punti di reputazione
2025-10-20T10:10:45.85+00:00

Hi,

When the old app remote desktop(blue icon) is activated or move the window, it fires many times the KeyUp event on Windows. This happens on .NET core and also on .NET framework I tried also these apps but they are not affected :

  • teamviewer
  • anydesk
  • new remote desktop app(red icon)
  • nutanix remote console(html console)

In according with this github post https://github.com/dotnet/winforms/issues/11581, the issue is still present.

I think it's a issue with RDP. I did some other tests:

  1. VM with Windows 7 connect to windows server 2022 and I can replicate the issue KeyupWin7
  2. VM with Windows 8.1 connect to windows server 2022 and I can replicate the issue KeyupWin8
  3. Windows 10 connect to VM Windows 8.1 and I can replicate the issue
  4. Windows 10 connect to Windows server 2022 and I can replicate the issue with javascript KeyupWin10javascript
Windows per le aziende | Client Windows per professionisti IT | Esperienza utente | Client desktop remoto
0 commenti Nessun commento

3 risposte

Ordina per: Più utili
  1. VPHAN 42,480 Punti di reputazione Consulente indipendente
    2025-10-22T06:56:58.1666667+00:00

    Hi Emanuele Schirato,

    Se possibile, puoi provare a utilizzare mstsc o il moderno client Red Remote Desktop. Sul server disabilitare la grafica hardware per le sessioni RDS: Configurazione computer → Modelli amministrativi → Componenti di Windows → Servizi Desktop remoto → Host sessione Desktop remoto → Ambiente sessione remota → Usa schede grafiche hardware per tutte le sessioni di Servizi Desktop remoto = Disabilitato. Nel client legacy, impostare Risorse locali → Tastiera → Applica combinazioni di tasti Windows = Sul computer locale. Disabilita temporaneamente gli IME, gli hook di input per l'accessibilità, i filtri della tastiera KVM/agente e i driver di input di terze parti durante la riproduzione. Aggiungi un breve antirimbalzo nell'app o nel browser JS: ignora KeyUp ripetuto per lo stesso tasto entro 10-50 ms.

    In attesa del tuo risultato.

    Vivian

    La risposta è stata utile?

    0 commenti Nessun commento

  2. Emanuele Schirato 0 Punti di reputazione
    2025-10-20T14:43:44.3633333+00:00

    Thank you for your kindly answer.

    Microsoft Remote Desktop is deprecated and i can't install it.

    It's possible to reproduce the issue also inside Firefox/Edge with javascript code.

    La risposta è stata utile?

    0 commenti Nessun commento

  3. VPHAN 42,480 Punti di reputazione Consulente indipendente
    2025-10-20T10:45:29.1066667+00:00

    Ciao @Anonymous ,

    In base ai test, si tratta di un'interazione client/host RDP che genera eventi KeyUp duplicati per il client Blue Remote Desktop legacy quando si utilizza RDP per Server 2022 o guest precedenti. Innanzitutto, usa il client Desktop remoto moderno (icona rossa) (o mstsc da Windows 10/11) come base perché usa una pipeline di input aggiornata e non riproduce il problema nei test. Passare temporaneamente gli host interessati al nuovo client e verificare se il comportamento dell'applicazione si normalizza; In caso affermativo, pianificare una migrazione in più fasi al nuovo client come soluzione alternativa più affidabile. Negli host in cui è necessario mantenere il client legacy, testare queste mitigazioni: disabilitare l'acquisizione della tastiera lato client nel client RDP (Local Resources → Keyboard) e disabilitare l'opzione "Usa schede grafiche hardware per tutte le sessioni di Servizi Desktop remoto" nel server per eliminare potenziali differenze di gestione dell'input driver/hardware. Controllare le impostazioni di Criteri di gruppo in Configurazione computer → Modelli amministrativi → Componenti di Windows → Servizi Desktop remoto per verificare la presenza di criteri di input, tastiera o reindirizzamento che differiscono tra configurazioni funzionanti e non funzionanti. Verificare che il server e il client dispongano degli aggiornamenti cumulativi RDP più recenti e dei driver di grafica/tastiera installati; Le regressioni di input note sono state risolte negli aggiornamenti di manutenzione tardivi.

    Come passaggio diagnostico, acquisisci la sequenza con le tracce ETW per l'input RDP (Microsoft-Windows-TerminalServices-Client e Microsoft-Windows-TerminalServices-LocalSessionManager) e includi le tracce degli eventi WinForms o WPF dell'app per correlare i timestamp KeyUp duplicati. Se la duplicazione degli eventi si verifica solo nelle app Win32, testare un test harness nativo isolato che registra gli eventi WM_KEYUP/KeyUp non elaborati per determinare se la duplicazione viene generata dallo stack RDP o dal livello di conversione dell'input .NET. Se hai bisogno di una rapida mitigazione lato applicazione, elimina l'antirimbalzo della gestione di KeyUp nella tua app ignorando gli eventi KeyUp ripetuti ricevuti entro un breve intervallo di tempo per lo stesso codice di chiave virtuale.

    Se questa risposta è d'aiuto, fai clic su Accetta risposta in modo che gli altri possano trovare facilmente la soluzione :)

    Migliori saluti

    VP

    La risposta è stata utile?

    0 commenti Nessun commento

Risposta

Le risposte possono essere contrassegnate come "Accettata" dall'autore della domanda e "Consigliata" dai moderatori, in modo da consentire agli utenti di sapere che la risposta ha risolto il problema dell'autore.