网上大部分的代码如下:
ui->axWidget->setControl(QStringLiteral("{8b918b82-7985-4c24-89df-c33ad2bbfbcd}"));
ui->axWidget->setProperty("Server","192.168.1.1"); // 远程连接IP
ui->axWidget->setProperty("UserName", "administrator"); // 用户名
ui->axWidget->setProperty("ClearTextPassword", "123"); // 用户密码
ui->axWidget->setProperty("DesktopWidth", 800); // 指定宽度
ui->axWidget->setProperty("DesktopHeight", 600); // 指定高度
ui->axWidget->dynamicCall("Connect()"); // 连接
这种链接在设置了网络验证的情况下是链接不成功的。
解决办法就是把“仅允许运行使用网络级别身份验证的远程桌面的计算机链接”这个选项给勾掉。
但是这样肯定治标不治本。
机缘巧合找到了WPF相关的工程,里面提到了一个函数
EnableCredSspSupport
那么Qt里面怎么把这个属性设置进去呢? 如下:
QAxObject * rdpAdvancedObject = remoteAxObjectWidget->querySubObject("AdvancedSettings7");
rdpAdvancedObject->setProperty("EnableCredSspSupport",true);
这样就可以连接到带身份验证的服务器了。
如图
附上工程代码:Qt使用QAxWidget远程windows,支持身份验证-桌面系统文档类资源-优快云下载
环境Qt5.12