A lightweight remote desktop streaming and control solution built entirely in Delphi.
Delphi Remote Desktop Streamer provides real-time remote desktop viewing and control capabilities over a network connection. The application consists of two components:
- Server Application - Runs on the controlling computer and receives the desktop stream
- Client Application - Runs on the target computer whose screen is being shared
- Real-time screen sharing with high performance VP8 video compression
- Multiple monitor support with ability to select which monitor to stream
- Remote control functionality including:
- Mouse movement and clicking (left, right, and middle buttons)
- Keyboard input with full keystroke mapping
- Mouse wheel scrolling
- Cursor synchronization between client and server
- Automatic reconnection if the connection is lost
- Flexible display modes:
- Stretch (fill the window)
- Center (maintain original size)
- Fit (maintain aspect ratio)
- Hardware acceleration options with DXGI for better performance
- Fallback to GDI when DXGI is not available
- Built using Delphi with VCL components
- Uses libvpx for high-efficiency video compression (VP8)
- Network communication via Netcom7 socket (you can use my updated version)
- Supports both DXGI and GDI screen capture methods
- DirectX support for hardware-accelerated screen capture when available
No installation needed - the application is portable.
- Clone the repository
- Open the project in Delphi IDE
- Ensure all required dependencies are installed
- Compile both the client and server applications
- jpeg62.dll, libvpx.dll, libyuv.dll must be in the same folder of the client or server binaries, you can find them in the LIB folder of this repo.
- Run the
RemoteDesktopServer.exe
application - The application will listen for incoming connections on port 3434 by default
- Once a client connects, you will see the "Connected!" status
- Select the client monitor you wish to view from the dropdown menu
- Click "Start Desktop Capture" to begin streaming
- Enable "Mouse Control" and/or "Keyboard Control" checkboxes to interact with the remote system
- Run the
RemoteDesktopClient.exe
application - Enter the server IP address in the configuration
- The client will automatically attempt to connect to the server
- When connected, the client will report all available monitors
- The client will begin streaming when instructed by the server
- Default server port: 3434
- Default client connection: 192.168.10.30:3434
Edit the source code to modify these defaults before compilation.
- Some applications running in elevated mode may not respond to remote input
Contributions are welcome! If you have suggestions or bug fixes, please fork the repository and submit a pull request.
Made with ❤️ using Delphi RAD Studio