Vncconfig这个工程里面主要实现的是服务器端的系统配置,具体过程如下:
建立控制台——》初始化系统日志表——》创建编辑注册表的对象——》异常处理程序访问注册表权限——》创建读取注册表的键类——》建立登陆对话框,初始化方法写入注册表……——》属性页设制——》生成调试日志——》显示属性页
具体功能如下:
一.登陆验证设定
关联文件:Authentication.h
关联类或函数:AuthenticationPage类,初始化带一个注册键值的参数
关联类:
VncPasswdDialog操作登陆对话框
AuthenticationPage操作登陆属性页
功能:登陆密码设定,可选项为
无需验证setItemChecked(IDC_AUTH_NONE,useNone);
设置密码setItemChecked(IDC_AUTH_VNC,useVNC);
即时连接rfb::Server::queryConnect
二.连接设置
关联文件:Connections.h,network/TcpSocket.h
关联类或函数:
静态:
ConnectionsPage类,初始化带一个注册键值的参数
IntParameter类,初始化连接参数
StringParameter类,筛选服务器认证的客户ip
BoolParameter类,筛选带低延迟,高带宽的客户
内部:
ConnHostDialog类,连接主机对话框
ConnectionsPage类,连接设置属性页
功能:
1.设定端口号setItemInt
2.设定多长时间后禁用不活动的客户rfb::Server::idleTimeout
3.设定网络服务端口setItemInt
联入限制:
1.只限本地用户连接setItemChecked
2.添加删除修改授权用户setItemChecked
关联关键技术函数实现:
一.桌面设置
关联文件:Desktop.h
关联类或函数:DesktopPage类,初始化带一个注册键值的参数
功能:1.连接时可选:
移除壁纸rfb::win32::SDisplay::removeWallpaper
移除背景模型rfb::win32::SDisplay::removePattern
禁用用用户对桌面的操作rfb::win32::SDisplay::disableEffects
2.断线时可选:
无操作!disconnectLock &&!disconnectLogoff
锁定工作区disconnectLock
强制用户下线disconnectLogoff
四.钩子设置
关联文件:Hooking.h
关联类或函数:HookingPage类,初始化带一个注册键值的参数
功能:可选
1.跟踪图像变化rfb::win32::SDisplay::use_hooks
2.控制台窗口变化rfb::win32::WMPoller::poll_console_windows
3.过滤变化效果rfb::Server::compareFB
五.输入设置
关联文件:Inputs.h
关联类或函数:InputsPage类,初始化带一个注册键值的参数
功能:可选
1.接受客户鼠标操作rfb::Server::acceptPointerEvents
2.接受客户键盘操作rfb::Server::acceptKeyEvents
3.接受客户剪切板操作rfb::Server::acceptCutText
4.发送剪切板变化给客户rfb::Server::sendCutText
5.允许客户对屏幕操作
6.当本地需要操作时禁用客户操作SDisplay::disableLocalInputs
五.版本兼容
关联文件:Legacy.h/Legacy.cxx
关联类或函数:
legacy类,初始化带一个注册键值及键值设置的参数
LoadPRefs(),加载3.3版本参数
LoadUserPrefs(),加载客户设置
功能:兼容3.3版
六.共享设置
关联文件:Sharing.h
关联类或函数:SharingPage类,初始化带一个注册键值的参数
功能:可选
关联关键技术函数实现:
1.从不连接客户rfb::Server::disconnectClients
2.从不默认连接共享rfb::Server::neverShared
3. 总是默认连接共rfb::Server::alwaysShared
4. 使用客户设定的共享设置rfb::Server::neverShared ||rfb::Server::alwaysShared
RFB_WIN32静态库里定义了:
1. 对话框类:Dialog,VncPasswdDialog等类都是从它继承的
2. 属性页类:PropSheetPage, AuthenticationPage等类都是从它继承的,其中主要函数:
initDialog()用于初始化子对话框
OnCommand()用于响应功能消息
OnOK()用于确认执行将属性写入注册表的操作
3. 编辑注册表键类:RegKey
4. 读取注册表键类:RegistryReader
5. 写入注册表限定类(结构体):包含在Security.h里,估计是保证安全的代码
accessEntries建立控制入口列表
Sid 设置安全ID
AccessControlList控制入口列表
RFB静态库里定义了:
1. 操作日志类:
LogWriter(写日志)
Logger(生成日志实例)
LogParameter(设置日志记录参数)
2. 服务器设置参数定义类Server:封装定义了idleTimeout等参数
新闻热点
疑难解答