vncconfig 一 Authentication 二 Connections 三 Desktop 六 Legacy 七 Sharing 五 Inputs 四 Hooking 具体功能如下: 一.登陆验证设定 关联文件: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等类都是从它继承的 功能函数: bool showDialog(const TCHAR* resource, HWND owner=0); virtual void initDialog() {} virtual bool onCommand(int item, int cmd) { return false; } virtual bool onHelp(int item) { return false; } virtual bool onOk() { return true; } bool isItemChecked(int id); int getItemInt(int id); TCHAR* getItemString(int id); void setItemChecked(int id, bool state); void setItemInt(int id, int value); void setItemString(int id, const TCHAR* s); void enableItem(int id, bool state); 2. 属性页类: PropSheetPage, AuthenticationPage等类都是从它继承的,其中主要函数: initDialog()用于初始化子对话框 OnCommand()用于响应功能消息 OnOK()用于确认执行将属性写入注册表的操作 3. 编辑注册表键类: RegKey 功能函数: bool createKey(const RegKey& root, const TCHAR* name); void openKey(const RegKey& root, const TCHAR* name, bool readOnly=false); void setDACL(const PACL acl, bool inheritFromParent=true); 设置任意访问控制列表 void close(); void deleteKey(const TCHAR* name) const; void deleteValue(const TCHAR* name) const; void awaitChange(bool watchSubTree, DWORD filter) const; void setExpandString(const TCHAR* valname, const TCHAR* s) const; void setString(const TCHAR* valname, const TCHAR* s) const; void setBinary(const TCHAR* valname, const void* data, int length) const; void setInt(const TCHAR* valname, int i) const; void setBool(const TCHAR* valname, bool b) const; TCHAR* getString(const TCHAR* valname) const; TCHAR* getString(const TCHAR* valname, const TCHAR* def) const; void getBinary(const TCHAR* valname, void** data, int* length) const; void getBinary(const TCHAR* valname, void** data, int* length, void* def, int deflength) const; int getInt(const TCHAR* valname) const; int getInt(const TCHAR* valname, int def) const; bool getBool(const TCHAR* valname) const; bool getBool(const TCHAR* valname, bool def) const; TCHAR* getRepresentation(const TCHAR* valname) const; bool isValue(const TCHAR* valname) const; const TCHAR* getValueName(int i); 4. 读取注册表键类: RegistryReader 功能函数: bool setKey(const HKEY rootkey, const TCHAR* keyname); bool setNotifyThread(Thread* thread, UINT winMsg, WPARAM wParam=0, LPARAM lParam=0); bool setNotifyWindow(HWND window, UINT winMsg, WPARAM wParam=0, LPARAM lParam=0); static void loadRegistryConfig(RegKey& key); 5. 写入注册表限定类(结构体):包含在 Security.h里,估计是保证安全的代码 AccessEntries 建立控制入口列表 Sid 设置安全ID AccessControlList 控制入口列表 RFB静态库里定义了: 1. 操作日志类: LogWriter (写日志) Logger (生成日志实例) LogParameter (设置日志记录参数) 2. 服务器设置参数定义类 Server :封装定义了idleTimeout等参数