mirror of
https://github.com/1Remote/1Remote.git
synced 2026-04-25 13:36:03 +03:00
[GH-ISSUE #239] Integrate FreeRDP #2128
Labels
No labels
area-configuration
area-ct-app
area-ct-rdp
area-ct-remoteapp
area-ct-ssh
area-ct-vnc
area-launcher
area-list
area-tags
area-teamwork
bug
chore
dependencies
general-build/ci
general-performance
general-refactor
general-security
general-supportive
general-ux
meta-documentation
meta-enhancement
meta-enhancement
meta-feature
meta-help-wanted
meta-unknown-error
priority-hi
priority-low
pull-request
question
resolution-duplicate
resolution-invalid
resolution-wontfix
stale
task-put-off
task-still-considering
task-working-in-progress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/1Remote#2128
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @dethknite on GitHub (May 16, 2022).
Original GitHub issue: https://github.com/1Remote/1Remote/issues/239
Originally assigned to: @VShawn on GitHub.
I would highly recommend integrating wfreerdp instead of the deprecated activex rdp and mstscax. wfreerdp is up-to-date with security negotiation and has much more interoperability with RDP servers. There is even a recent nuget package that wraps up pretty much everything for consuming it.
https://www.nuget.org/packages/RoyalApps.Community.FreeRdp.WinForms/1.0.0#show-readme-container
I might try to port it into a fork.. but wpf is not really my strong suit... so we will see how far I get.
@majkinetor commented on GitHub (May 16, 2022):
Looks like huge benefit is that this is cross platform so it could be used on Linux too (eventually, now probably not that hard since PRM is recently ported to dotnet6).
@majkinetor commented on GitHub (May 16, 2022):
I tested this up and it could be used now if you set up the protocol. You have to do it via VNC protocol in Options:
Set it as default VNC:

Now create VNC connection. It works. Maybe a bit awkward, but hey, you have what you wanted in 5 minutes.
You cant really set all options but that is precisely why I suggested CLI-2-GUI mapping before (#61, also related #205 ).
Audio redirection with with
/audio-mode:0also works.Here are the params: https://github.com/awakecoding/FreeRDP-Manuals/blob/master/User/FreeRDP-User-Manual.markdown
@dethknite commented on GitHub (May 16, 2022):
Never thought of that.. great idea. Thanks for sharing 👍🏻
@dethknite commented on GitHub (May 16, 2022):
Yeah.. wfreerdp is what I ended up porting my project to because the mstscax stuff just got so buggy from lagging behind. It has great support out of the box, including drive mapping xfreerdp /v:rdp.contoso.com /drives, and the cross platform is definitely a perk.
I actually was also looking for the ability to utilize dynamic virtual channels as well... and it supports virtual channel addins.. though it is still a bit in flight for some of the advanced stuff.
@VShawn commented on GitHub (May 17, 2022):
You are right, mstscax is old and lack of doc.
I have some doubts for wfreerdp:
can wfreerdp support multi-screen?(this is my main motivity of this repository, I see the param/multimon Multi-monitor)@dethknite commented on GitHub (May 17, 2022):
Yes and yes.. I use it as a replacement for rdp on non Win OS's. It really depends on how you want to utilize it, and what you wish to do with it.
:Full screen example
/v:{host} /port:{port} /u:{user} /d:{domain} /p:{pass} /f /bpp:32 /cert-ignore /workarea +clipboard:Dynamic Resolution
/v:{host} /port:{port} /u:{user} /d:{domain} /p:{pass} /dynamic-resolution /bpp:32 /cert-ignore /workarea +clipboard:HiDPI and DPI scaling
/v:{host} /port:{port} /u:{user} /d:{domain} /p:{pass} /w:1280 /h:920 /smart-sizing /bpp:32 /cert-ignore /workarea +clipboard:Retina display
/v:{host} /port:{port} /u:{user} /d:{domain} /p:{pass} /scale:180 /scale-desktop:200 /bpp:32 /cert-ignore /workarea +clipboardEtc.. etc.. you get the picture
@majkinetor commented on GitHub (May 17, 2022):
Thanks @dethknite for your input, very valuable.
I tested an hour yesterday and it doesn't seem to be any worst then RDP, with identical settings I couldn't spot the difference.
@majkinetor commented on GitHub (Jul 13, 2022):
I think this should be closed and work should be done in #255. Its better to use externally. I will create chocolatey package for freerdp so it can be installed along with PRemoteM (cinst prememtem freerdp).
Having external tools outside is better as they can be easily updated on its own and they don't burden the PRemoteM with size and maintenance. On the negative side, you can pin specific version if non compatible changes appear (this is however also possible to do outside and can be documented).
@VShawn commented on GitHub (Jul 16, 2022):
I wonder if we can make a new PRemoteM app that work with external tools only.
The tab windows and internal runners will be removed. The new app will act as a session password manager and the launcher of KiTTY \ FreeRDP \ MSTSC \ WinSCP \ TightVNC.
BTW, I tested the FreeRDP control, this wraper does not achieve all the functionality of FreeRdp.
@majkinetor commented on GitHub (Jul 16, 2022):
Lets talk about that in new ticket that I will open soon. Or better, lets enable discussions here.
@VShawn commented on GitHub (Jul 17, 2022):
sure