Giter Site home page Giter Site logo

kanglin / rabbitremotecontrol Goto Github PK

View Code? Open in Web Editor NEW
143.0 6.0 55.0 15.46 MB

Remote control. Support VNC, RDP, Terminal, SSH, TELNET etc

License: GNU General Public License v3.0

C++ 88.08% CMake 7.43% NSIS 0.75% Shell 3.67% Batchfile 0.07% Dockerfile 0.01%
remote-control remote-desktop vnc ssh rdp qt ice android linux macos

rabbitremotecontrol's Introduction

Author: Kang Lin [email protected]


🇨🇳 中文



Introduction

Rabbit Remote Control is a cross-platform, multi-protocol remote control software.

Allows you to use any device and system in anywhere and remotely manage any device and system in any way.

It include remote desktop, remote terminal etc remote control functions.

Screenshot

Main window Recent list menu Connect Work
Main window Recent list menu Connect Work

Multiple style

Default style Black-Green style Black style White style
Default style Black-Green style Black White

Project repository position

Functions

Supported operating system

See: https://doc.qt.io/qt-5/supported-platforms.html

  • Windows 7 SP1 and later
  • Unix/Linux
  • Android
  • mac os
  • IPHONE
  • WINCE

I have no devices so I did not compile and test. Please test by yourself if you have devices. Interested and capable friends are welcome to participate in the development of the project.

If you want to donate the developed devices for me, please contact: (email: [email protected])

See: Qt5, Qt6

Windows Unix/linux Android MAC IPHONE WINCE
vnc
RDP
Spice
Scrcpy
Terminal
SSH
TELNET
FTP

Legend:
✓ : completed; … : working; ⭕ : not completed; Empty: not started; ❌: not supported

Supported multiple languages

  • English
  • Chinese
    • Simplified Chinese
    • Traditional Chinese

Supported protocols

Remote control protocols

Network protocols

  • Peer-to-Peer (P2P) protocol
    • ICE (Interactive Connectivity Establishment): RFC 8445
    • STUN: RFC 5389
    • TURN(Traversal Using Relays around NAT): RFC 5766
  • Proxy
    • socks
    • http
    • Peer-to-Peer (P2P) proxy protocol: #7

Function list

Server Client Desktop Clipboard File Audio Redirection P2P Proxy Terminal
RDP …… ……
RFB ……
Spice
Scrcpy
Terminal
TELNET
SSH
FTP

Legend:
✓ : completed; … : working; ⭕ : not completed; Empty: not started; ❌: not supported

Proxy P2P
RabbitVNC
TigerVNC
LibVNC
FreeRDP

Legend:
✓ : completed; … : working; ⭕ : not completed; Empty: not started; ❌: not supported

Plugins

Full Documentation

Status

Documentation GitHub stars Gitee stars Latest Release Release

Downloads from github Downloads from sourceforge

Gitter GitHub issues GitHub forks Commit Activity Last Commit Contributors

PRs Welcome Open PRs Closed PRs

C++ Language Qt5 Qt6

platform

Build status

master develop
build build

Build status

Sponsorship and Donations

If this software is useful to you, or you like it, please donate and support the author. Thank you!

donation

If it cannot be displayed, please open:

Contribution

If you're wondering how could you help, fear not, there are plenty of ways:

Some of them are:

  • Donation - Provide funds and devices for this project 😄
    • The project is need server with public IP
  • Spread the good word about RabbitRemoteControl to make it more popular 😄
  • Have an opinion? Make sure to voice it in the Discussions that need it 😉
  • Fixing easy Issues or Issues that need help. Make sure to read Contributing first though 😉
  • Testing and reporting bugs
  • Translating, it's easy 😄
  • Reviewing and testing pull requests – you don't need to be able to code to do that 😉
  • Distribute this program to various operating systems
    • Linux
      • Ubuntu, Debian
      • Redhat
      • openSUSE
      • FreeBSD
      • CentOS
      • Arch Linux
    • Unix
    • Windows 10 mall
    • Android
  • Be finished unsupported protocols

Road map

  • Support common existing remote control protocols
    • Client
      • Client frame
        • Remote desktop
        • Terminal(Linux implemented,but it is has a same BUG)
      • Specific protocol support, see: Supported protocol
      • Peer-to-Peer (P2P) remote control protocol, see requirements for details: #7
    • Server
      • Server framework
      • Specific protocol support, see: Supported protocol
      • Peer-to-Peer (P2P) remote control protocol, see requirements for details: #7
  • Peer-to-Peer (P2P)remote control protocol, see requirements for details: #7
  • File Transfer Protocol(FTP)
Server Client Desktop Clipboard File Audio Redirection P2P Proxy Terminal
RabbitVNC
TigerVNC
LibVNCServer
RDP …… ……
Spice
Scrcpy
Terminal
SSH
TELNET
FTP

Legend:
✓ : completed; … : working; ⭕ : not completed; Empty: not started; ❌: not supported

  • The development of common remote control protocol clients and some servers has been completed. It has preliminary practical functions, and needs to be tried by small partners, find bugs, and put forward suggestions that can be more convenient to use in practical applications.

  • For terminal remote control, because qtermwidget only supports LINUX/UNIX, it needs to support other platforms.

  • Peer-to-Peer (P2P) remote control is finished. which is also a feature of this project. See requirements for details: #7

Download

Development documentation online

Compilation

Please abide by the License Agreement of this project and the license agreement of the dependent library, and thank the authors of dependent library and tools.

rabbitremotecontrol's People

Contributors

comradekingu avatar kanglin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

rabbitremotecontrol's Issues

ERRCONNECT_DNS_NAME_NOT_FOUND

Describe the bug
使用源码编译安装,连接rdp时报错ERRCONNECT_DNS_NAME_NOT_FOUND

To Reproduce

  1. 编译freerdp 2.10.0
  2. 编译RabbitRemoteControl 0.0.26
  3. 创建rdp连接,报错DNS_NAME_NOT_FOUND
  4. 点击帮助-关于,关闭弹窗
  5. rdp连接正常

Expected behavior
打开软件,连接rdp,客服端迅速返回The host name is not found,挂起客户端等待数分钟后,连接正常(经过多次测试,并非是挂起,而是点击帮助-关于,然后关闭,随后连接功能正常)
Screenshots
image
image

IDA windbg debuger log
[10:43:34.521 34060|14400 D] FreeRDP.Log - Enabling security layer negotiation: TRUE
[10:43:34.522 34060|14400 D] FreeRDP.Log - Enabling restricted admin mode: FALSE
[10:43:34.522 34060|14400 D] FreeRDP.Log - Enabling RDP security: TRUE
[10:43:34.522 34060|14400 D] FreeRDP.Log - Enabling TLS security: TRUE
[10:43:34.522 34060|14400 D] FreeRDP.Log - Enabling NLA security: TRUE
[10:43:34.523 34060|14400 D] FreeRDP.Log - Enabling NLA extended security: FALSE
[10:43:34.523 34060|14400 D] FreeRDP.Log - rdp_client_transition_to_state CONNECTION_STATE_INITIAL --> CONNECTION_STATE_NEGO
[10:43:34.523 34060|14400 D] FreeRDP.Log - state: NEGO_STATE_NLA
[10:43:34.523 34060|14400 D] FreeRDP.Log - Attempting NLA security
[10:43:34.524 34060|14400 E] FreeRDP.Log - freerdp_tcp_is_hostname_resolvable:freerdp_set_last_error_ex ERRCONNECT_DNS_NAME_NOT_FOUND [0x00020005]
[10:43:34.524 34060|14400 D] FreeRDP.Log - rdp_client_transition_to_state CONNECTION_STATE_NEGO --> CONNECTION_STATE_INITIAL

Application details

玉兔远程控制
版本:v0.0.26(校订版本: 86bbcd9) 架构:x86_64
编译日期/时间:Mar 6 2024/10:18:35
文件路径:D:/Projects/VSProjects/RabbitRemoteControl/build/install/bin/RabbitRemoteControlApp.exe
参数:D:\Projects\VSProjects\RabbitRemoteControl\build\install\bin\RabbitRemoteControlApp.exe
插件
自由远程桌面
RDP( Windows 远程桌面协议):访问 Windows 远程桌面

FreeRDP 版本:2.10.0
编译版本:2.10.0:2.10.0
编译日期:Mar 6 2024 09:15:42
Build configuration: BUILD_TESTING=OFF BUILTIN_CHANNELS=ON HAVE_EXECINFO_HEADER= HAVE_FCNTL_H=1 HAVE_INTTYPES_H=1 HAVE_SYSLOG_H= HAVE_SYS_FILIO_H= HAVE_SYS_MODEM_H= HAVE_SYS_SELECT_H= HAVE_SYS_SOCKIO_H= HAVE_SYS_STRTIO_H= HAVE_TM_GMTOFF= HAVE_UNISTD_H= WITH_CAIRO=OFF WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLANG_FORMAT=ON WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=OFF WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_DVC=OFF WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=OFF WITH_DEBUG_RDPDR=OFF WITH_DEBUG_RDPEI=OFF WITH_DEBUG_RDPGFX=OFF WITH_DEBUG_REDIR=OFF WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_URBDRC=OFF WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_CLIPRDR=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DSP_EXPERIMENTAL=OFF WITH_FAAC=OFF WITH_FAAD2=OFF WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=OFF WITH_GSSAPI=OFF WITH_ICU=OFF WITH_INTERNAL_MD4=OFF WITH_INTERNAL_MD5=OFF WITH_IPP=OFF WITH_JPEG=OFF WITH_LAME=OFF WITH_LIBRARY_VERSIONING=ON WITH_MACAUDIO=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=OFF WITH_MBEDTLS=OFF WITH_MEDIA_FOUNDATION=ON WITH_NATIVE_SSPI=ON WITH_OPENCL=OFF WITH_OPENH264=OFF WITH_OPENSSL=ON WITH_PROFILER=OFF WITH_PROXY=OFF WITH_PROXY_MODULES=OFF WITH_SAMPLE=OFF WITH_SERVER=ON WITH_SERVER_CHANNELS=ON WITH_SERVER_INTERFACE=ON WITH_SHADOW=ON WITH_SMARTCARD_INSPECT=OFF WITH_SOXR=OFF WITH_SSE2=ON WITH_SWSCALE=OFF WITH_THIRD_PARTY=OFF WITH_VERBOSE_WINPR_ASSERT=ON WITH_WIN8=OFF WITH_WINMM=ON WITH_WINPR_TOOLS=ON Build type: Release CFLAGS: /DWIN32 /D_WINDOWS /Gd /W3 -DWINPR_DLL Compiler: MSVC, 19.29.30151.0 Target architecture: x64

Qt
Qt 运行版本:5.15.2

Qt 编译版本:5.15.2

Qt 库版本:5.15.2

语言:zh_CN

OpenSSL:

编译时版本: OpenSSL 1.1.1g 21 Apr 2020
安装的版本: OpenSSL 1.1.1t 7 Feb 2023

玉兔公共库
版本:v2.0.1-5-gaa7b64d(校订版本: aa7b64d)

System information
win10 22H2

Customized point-to-point protocol [自定义点对点协议]

Requirement:
Solve the problem of remote control of a host in one intranet through the Internet to control another host in another intranet.
solution:

  1. Point-to-point control
    1.1 Add a point-to-point connection channel to the original protocol
    1.1.1 Discovery of network connectivity: ICE can be used, currently there are the following two open source libraries to support, need to verify which is suitable
    1.1.1.2 ICE library:
    1.1.1.2.1 libnice: https://github.com/paullouisageneau/libjuice
    1.1.1.2.2 libdatachannel: https://github.com/paullouisageneau/libdatachannel
    1.1.2 Define the connection protocol: there is no ready-made connection protocol for remote control, you need to define it yourself.
  2. One-to-many control
    2.1 Add a point-to-point proxy service
    2.1.1 Establish a point-to-point connection channel, the same method as in 1.1.
    2.1.2 To complete the proxy agreement on the point-to-point channel, there are two ideas to determine which is appropriate:
    2.1.2.1 Existing agency agreement (SOCKES 5)
    2.1.2.2 Customized Agency Agreement

需求:
解决处于一个内网主机通过互连网控制另一个处于另一内网中主机远程控制的问题。
解决方案:

  1. 点对点控制
    1.1 在原有协议上增加点对点连接通道
    1.1.1 发现网络连通性:可使用 ICE ,目前有下面两种开源库支持,需要验证哪种合适
    1.1.1.2 ICE库:
    1.1.1.2.1 libnice:https://github.com/paullouisageneau/libjuice
    1.1.1.2.2 libdatachannel:https://github.com/paullouisageneau/libdatachannel
    1.1.2 定义建立连接协议:无现成的针对于远程控制的连接协议,需要自行定义。
  2. 一对多控制
    2.1 增加加一个点对点代理服务
    2.1.1 建立点对点连接通道,与 1.1 中的方法相同。
    2.1.2 在点对点通道上完成代理协议,有下面两种想法需要确定哪种合适:
    2.1.2.1 现有的代理协议(SOCKES 5)
    2.1.2.2 自定义代理协议

App auto close (crush)

The app autoclose the window when im tryed open it

I tryed two version, but have the same problem

File log:

156 D:\a\RabbitRemoteControl\RabbitRemoteControl.cache\source\RabbitCommon\Src\RabbitCommonTools.cpp(117) [0x009a4550] ERROR RabbitCommon - translator install translator fail: C:/Program Files (x86)/Rabbit/RabbitRemoteControl/bin..\translations/RabbitCommon_en_US.qm
156 D:\a\RabbitRemoteControl\RabbitRemoteControl\App\Viewer\main.cpp(65) [0x009a4550] INFO Main - Language: en_US
261 (0) [0x009a4550] WARN Qt default - libpng warning: iCCP: CRC error
273 D:\a\RabbitRemoteControl\RabbitRemoteControl.cache\source\RabbitCommon\Src\FrmUpdater\FrmUpdater.cpp(108) [0x009a4550] ERROR FrmUpdater - Support ssl: 1; BuildVersion: OpenSSL 1.1.1k 25 Mar 2021 Version: OpenSSL 1.1.1m 14 Dec 2021
273 (0) [0x009a4550] DEBUG Qt default - CFrmUpdater::DownloadFile: QUrl("https://raw.githubusercontent.com/KangLin/RabbitRemoteControl/master/Update/update.xml") false false
275 D:\a\RabbitRemoteControl\RabbitRemoteControl\App\Viewer\main.cpp(75) [0x009a4550] ERROR main - GenerateUpdateXml fail
279 (0) [0x009a4550] DEBUG Qt default - GetDirApplication: "C:/Program Files (x86)/Rabbit/RabbitRemoteControl/bin"
281 (0) [0x009a4550] DEBUG Qt default - GetDirApplication: "C:/Program Files (x86)/Rabbit/RabbitRemoteControl/bin"
282 (0) [0x009a4550] DEBUG Qt default - LoadStyle: "C:/Program Files (x86)/Rabbit/RabbitRemoteControl/bin\..\data\style\black_green.qss"
316 D:\a\RabbitRemoteControl\RabbitRemoteControl.cache\source\RabbitCommon\Src\FrmUpdater\FrmUpdater.cpp(108) [0x009a4550] ERROR FrmUpdater - Support ssl: 1; BuildVersion: OpenSSL 1.1.1k 25 Mar 2021 Version: OpenSSL 1.1.1m 14 Dec 2021
316 (0) [0x009a4550] DEBUG Qt default - CFrmUpdater::DownloadFile: QUrl("https://raw.githubusercontent.com/KangLin/RabbitRemoteControl/master/Update/update.xml") false false
559 (0) [0x009a4550] DEBUG Qt default - CFrmUpdater::slotCheck()
565 (0) [0x009a4550] DEBUG Qt default - CFrmUpdater::slotDownloadXmlFile
565 (0) [0x009a4550] DEBUG Qt default - CFrmUpdater::DownloadFile: QUrl("https://raw.githubusercontent.com/KangLin/RabbitRemoteControl/master/Update/update.xml") false false
565 (0) [0x009a4550] DEBUG Qt default - CFrmUpdater download file: "C:/Users/USER/AppData/Local/Temp/Rabbit/RabbitRemoteControl/update.xml"
888 (0) [0x009a4550] DEBUG Qt default - CFrmUpdater::slotFinished()
890 (0) [0x009a4550] DEBUG Qt default - CFrmUpdater::slotCheckXmlFile()
890 (0) [0x009a4550] DEBUG Qt default - CFrmUpdater::CheckRedirectXmlFile()
891 (0) [0x009a4550] DEBUG Qt default - CFrmUpdater::slotDownloadXmlFile
891 (0) [0x009a4550] DEBUG Qt default - CFrmUpdater::DownloadFile: QUrl("https://github.com/KangLin/RabbitRemoteControl/releases/download/v0.0.18/update_windows.xml") false false
891 (0) [0x009a4550] DEBUG Qt default - CFrmUpdater download file: "C:/Users/USER/AppData/Local/Temp/Rabbit/RabbitRemoteControl/update_windows.xml"

Please help me add this project to the official releases of Debin and Ubuntu. [帮助我把本项目加入到 Debin、Ubuntu 的官方发行版本中。]

Please help me add this project to the official releases of Debin and Ubuntu.
I can now generate .deb. See: https://github.com/KangLin/RabbitRemoteControl/actions/workflows/ubuntu.yml
However, I don't know how to add it to the official releases of Debin and Ubuntu.
Compile document:https://github.com/KangLin/RabbitRemoteControl/blob/master/docs/Compile/Linux.md

帮助我把本项目加入到 Debin、Ubuntu 的官方发行版本中。
我现在已经可以生成 .deb 。详见:https://github.com/KangLin/RabbitRemoteControl/actions/workflows/ubuntu.yml
但是,我不知道如何加入到 Debin、Ubuntu 的官方发行版本中。
编译文档:https://github.com/KangLin/RabbitRemoteControl/blob/master/docs/Compile/Linux_zh_CN.md

Compilation guide

Hi @KangLin

sorry for the long silence.

I'm trying to compile using the doc you wrote, but I get some errors.

Is the doc still updated?

Mainly with qtservice

/usr/include/qt6/QtCore/qflags.h:87:7: note:   conversion of argument 1 would be ill-formed:
/home/tmow/software/Rabbit/qt-solutions/qtservice/src/qtservice.cpp:666:27: error: invalid user-defined conversion from ‘int’ to ‘QFlags<QtServiceBase::ServiceFlag>&&’ [-fpermissive]
  666 |     d_ptr->serviceFlags = 0;
      |                           ^
In file included from /usr/include/qt6/QtCore/qglobal.h:1426,
                 from /usr/include/qt6/QtCore/qcoreapplication.h:43,
                 from /usr/include/qt6/QtCore/QCoreApplication:1,
                 from /home/tmow/software/Rabbit/qt-solutions/qtservice/src/qtservice.h:44,
                 from /home/tmow/software/Rabbit/qt-solutions/qtservice/src/qtservice.cpp:41:
/usr/include/qt6/QtCore/qflags.h:109:33: note: candidate is: ‘constexpr QFlags<T>::QFlags(Enum) [with Enum = QtServiceBase::ServiceFlag]’ (near match)
  109 |     constexpr inline Q_IMPLICIT QFlags(Enum flags) noexcept : i(Int(flags)) {}
      |                                 ^~~~~~
/usr/include/qt6/QtCore/qflags.h:109:33: note:   conversion of argument 1 would be ill-formed:
/home/tmow/software/Rabbit/qt-solutions/qtservice/src/qtservice.cpp:666:27: error: invalid conversion from ‘int’ to ‘QtServiceBase::ServiceFlag’ [-fpermissive]
  666 |     d_ptr->serviceFlags = 0;
      |                           ^
      |                           |
      |                           int
/home/tmow/software/Rabbit/qt-solutions/qtservice/src/qtservice.cpp:666:27: error: invalid conversion from ‘int’ to ‘QtServiceBase::ServiceFlag’ [-fpermissive]
In file included from /usr/include/qt6/QtCore/qglobal.h:1426,
                 from /usr/include/qt6/QtCore/qcoreapplication.h:43,
                 from /usr/include/qt6/QtCore/QCoreApplication:1,
                 from /home/tmow/software/Rabbit/qt-solutions/qtservice/src/qtservice.h:44,
                 from /home/tmow/software/Rabbit/qt-solutions/qtservice/src/qtservice.cpp:41:
/usr/include/qt6/QtCore/qflags.h:109:45: note:   initializing argument 1 of ‘constexpr QFlags<T>::QFlags(Enum) [with Enum = QtServiceBase::ServiceFlag]’
  109 |     constexpr inline Q_IMPLICIT QFlags(Enum flags) noexcept : i(Int(flags)) {}
      |                                        ~~~~~^~~~~
make[2]: *** [src/CMakeFiles/QtService.dir/build.make:93: src/CMakeFiles/QtService.dir/qtservice.cpp.o] Error 1
make[2]: Leaving directory '/home/tmow/software/Rabbit/qt-solutions/qtservice/build'
make[1]: *** [CMakeFiles/Makefile2:201: src/CMakeFiles/QtService.dir/all] Error 2
make[1]: Leaving directory '/home/tmow/software/Rabbit/qt-solutions/qtservice/build'
make: *** [Makefile:139: all] Error 2

Issues with FreeRDP integration

The FreeRDP plugin forces antiquated drawing paths:

  1. OnChannelConnectedEventHandler does not handle GFX channel setup
  2. With FreeRDP 3 we´ve added some common channel setup code, call freerdp_client_OnChannelConnectedEventHandler if not handled in your own function (same for Disconnect handler)
  3. cb_authenticate_ex does not handle reason which is getting more important with each version ;)
  4. m_szRedirectionSoundParameters why do you force a specific backend? just let it be autodetected?
  5. you lack all setup of authentication related options, check the client/common/cmdline.c for details. (this is most likely the source of FreeRDP/FreeRDP#9937 ) overall, either you check which settings are modified with which command line with freerdp_client_settings_parse_command_line_arguments_ex or you use it directly from your application
  6. smartcard authentication and related stuff is not handled in UI
  7. your RabbitRemoteControl.sh is unnecessary, check RPATH settings ( https://cmake.org/cmake/help/latest/prop_tgt/INSTALL_RPATH.html )
  8. your library and exe installations do not properly set filenames / SOVERSION (got /tmp/release/bin/RabbitRemoteControlApp-v0.0.26-52-g8ae67434 as well as /tmp/release/bin/RabbitRemoteControlApp, /tmp/release/lib/libRabbitCommon.so.v2.0.3-1-g891d8b7 and /tmp/release/lib/libRabbitCommon.so but there should be /tmp/release/lib/libRabbitCommon.so -> /tmp/release/lib/libRabbitCommon.so.2 -> /tmp/release/lib/libRabbitCommon.so.2.0 -> /tmp/release/lib/libRabbitCommon.so.2.0.3 where /tmp/release/lib/libRabbitCommon.so is only insalled with development stuff
  9. your certificate related stuff, better use VerifyX509Certificate callback for your things and store the manually accepted certificates in your own certificate store instead of reusing the one of FreeRDP (you can use the qt certificate classes to check if a certificate is self signed or actually signed by an accepted authority and then only manually accept unsigned ones)
  10. better call freerdp_connect from the same thread all RDP related stuff is running in and not in cbClientStart
  11. you can call WaitForMultipleObjects with a timeout of 0 to not block in your processing routine
  12. rdpSettings are going to be opaque in future versions, you can build a version with that already with -DWITH_OPAQUE_SETTINGS=ON with FreeRDP 3.x versions

有一个问题想请教一下

请问RDP协议支持远程执行命令行吗,我有一个需求,需要能够批量下发cmd命令到服务器中。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.