- QT工程文件中添加
axcontainer
模块 - 放一个QAxWidget到UI中,双击放入的控件,选择
Microsoft RDP Client Control - version 10
,完成后,控件会有绿色虚线覆盖 - 设置属性
//头文件#include <QAxObject> #include <QAxWidget>
ui.axWidget->setProperty("Server", "192.168.11.184"); //远程连接IP
ui.axWidget->setProperty("UserName", "Administrator"); //用户名
ui.axWidget->setProperty("ClearTextPassword", "123"); //用户密码
ui.axWidget->setProperty("DisconnectedText", tr("Disconnected")); // 未连接时QAxWidget控件显示的字符串
ui.axWidget->setProperty("DesktopWidth", ui.axWidget->width()); //指定宽度
ui.axWidget->setProperty("DesktopHeight", ui.axWidget->height()); //指定高度
QAxObject *pAdvancedObject = ui.axWidget->querySubObject("AdvancedSettings7");
pAdvancedObject->setProperty("EnableCredSspSupport", true); //必须设置,否则远程连接失败
pAdvancedObject->setProperty("BitmapPeristence", 1); //位图缓存
pAdvancedObject->setProperty("Compress", 1); //启用压缩,减小带宽
pAdvancedObject->setProperty("singleConnectionTimeout", 10); //超时时间
4.连接和断开
ui.axWidget->dynamicCall("Connect()"); //连接
ui.axWidget->dynamicCall("Disconnect()"); //断开连接
5.如果出现需要输入凭据,可以通过下面的语句先注册凭据再连接
//头文件 #include <windows.h>
WinExec("cmd /c cmdkey.exe /add:192.168.11.184 /user:Administrator /pass:123", SW_HIDE);
//如果为IPv6远程访问,使用以下语句
WinExec("cmd /c cmdkey.exe /generic:2020::3 /user:Administrator /pass:123", SW_HIDE);
//win10系统凭据需要改为/generic:TERMSRV/2020::3