检查Windows机器是否可以作为RDP连接中的主机
Check if Windows machine can act as a host in RDP connection
我正在写一个程序,我想确保它只运行在Windows机器上,可以作为RDP连接的主机。例如,一些Windows版本不能做这样的事情-例如win7 basic, win7 home, win8。
我可以检查Windows版本并将其与rdp主机兼容的版本列表进行比较,但我想知道是否有更常见的方法来检查此功能。也许是一些WinAPI方法或一个特殊的注册表项。有什么建议吗?
据我所知,MSDN远程桌面服务管理功能NetServerGetInfo应该为您提供所需的信息。
LPSERVER_INFO_101 pSI = NULL;
if(NetServerGetInfo(NULL, 101, (LPBYTE*)&pSI) == NErr_Success) {
const bool bIsTerminalServer = pSI->sv101_type & SV_TYPE_TERMINALSERVER;
NetApiBufferFree(pSI);
}
其他新闻组帖子建议检查服务TermService
是否正在运行(您可以使用QueryServiceStatusEx
)
就像David Heffernan建议的那样,版本检查是硬编码的。
相关文章:
- 当套接字连接断开时检测C/C++Unix
- 无法在windows上使用mingw将sqlite3与c连接
- 到连接组件算法的问题(递归)
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- 无法在C++中建立与MySQL数据库的连接
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- 使用 bfs 解决连接组件问题时得到错误的答案
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- OSX蓝牙打开RFCOMMChannelAsync声称已连接,但未建立连接,并且从未调用过委托
- 在 libcurl 连接池中预创建连接
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- libcurl 和 DNS ttl 中的内部连接管理
- 如何应用 libcurl 的持久连接选项
- 提升 ASIO - io_service 不要等待连接到线程
- 自动将本地缩放应用于非全屏桌面连接(RDP 8.1及更高版本)
- 检查Windows机器是否可以作为RDP连接中的主机