Search code examples
c#windowsremote-desktopvncvnc-server

How does VNC continuously repaint windows?


How does VNC send REPAINT messages to windows even when a user is not active?

I would like to implement this in C sharp - I've had a look at the PrintWindow, SendMessage methods and none of them achieve the same thing as VNC (tested by capturing images and its black) but with VNC I get the full picture.

What techniques are they using to do this and can this be implemented in C sharp to get windows to always repaint even when a user is not active (i.e. RDP is closed, minimised or similar).

Thanks all


Solution

  • You could use the technique used by video games, which consists in redrawing permanently a window during CPU idle time.

    I found a C# implementation here.

    You just have to adapt it to your needs.