Inspiration

The idea came from the "Desktop Twin" feature in my previous project. I realized Windows can create a hidden second desktop session, but there is no easy way to view it locally without a second monitor. I wanted to bring this hidden session into a regular window.

What it does

DesktopTwin is a Frankenstein build that stitches together three different layers of Windows: the Child Session API, the Remote Desktop ActiveX control, and a WPF front-end. It allows a single user to open and interact with a second desktop inside a window.

How we built it

The project is written in C# and WPF. It calls WTSEnableChildSessions to unlock the child session, uses the RDP ActiveX control to connect locally, and embeds the rendered session into the WPF window.

Challenges we ran into

The biggest challenge is that the RDP protocol doesn't forward relative mouse movement, meaning games relying on it can't control the camera in the twin session. Also, it requires strict environment settings, like running as Administrator and avoiding RDP Wrapper conflicts.

What we learned

I learned how to leverage Windows' native session-management capabilities and combine them with modern UI frameworks. I also learned the importance of documenting system limitations clearly.

Built With

Share this project:

Updates