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等參數
新聞熱點
疑難解答