From 7e7db73358e2849d680742bb005ac5461f79e40c Mon Sep 17 00:00:00 2001 From: yuanyuanxiang <962914132@qq.com> Date: Wed, 4 Jun 2025 03:04:46 +0800 Subject: [PATCH] fix: remote desktop algorithm doesn't take effort And add menus for remote desktop operation --- client/ScreenCapture.h | 2 +- server/2015Remote/2015Remote.rc | Bin 63564 -> 64814 bytes server/2015Remote/2015RemoteDlg.cpp | 40 ++++++++++++++++++ server/2015Remote/2015RemoteDlg.h | 6 ++- server/2015Remote/res/Bitmap/DxgiDesktop.bmp | Bin 0 -> 822 bytes server/2015Remote/res/Bitmap/GrayDesktop.bmp | Bin 0 -> 822 bytes server/2015Remote/res/Bitmap/SpeedDesktop.bmp | Bin 0 -> 822 bytes .../2015Remote/res/Bitmap/VirtualDesktop.bmp | Bin 0 -> 822 bytes server/2015Remote/resource.h | Bin 32014 -> 32592 bytes 9 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 server/2015Remote/res/Bitmap/DxgiDesktop.bmp create mode 100644 server/2015Remote/res/Bitmap/GrayDesktop.bmp create mode 100644 server/2015Remote/res/Bitmap/SpeedDesktop.bmp create mode 100644 server/2015Remote/res/Bitmap/VirtualDesktop.bmp 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 cc89b80a3edf8280d4296cff1f2b245465474258..afb12a80ecc179eabeef0b7bde5e7ea54b1598df 100644 GIT binary patch delta 371 zcmX@}fqC68<_*g>a74A;Px6lmjhk$+!D@2eMn2v!22X|{h7g8O21f>;$%a>CC&x{Z z;kY=jwhUPryE{;kBSR!y!Hrq+6Oa{57P%ud+2V>ASa)MOswBGygAs!ng9%)Baqzd) zj@eu(PDsiY2Mc4dnm; 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 0000000000000000000000000000000000000000..55d890e0ebd462f0860db572ef25ffe74f4ea92d GIT binary patch literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C7H5FULpTuf|BnyD068!)KoG<)Xk6?bWMKFY)&-SC z<6;dKn3{$K3;qKEjEmiThzT$?L}~%L9AYfcc%T*p7n^$!vLq?~@qq-B!S*67!sZNo I-XHYp0j=hEssI20 literal 0 HcmV?d00001 diff --git a/server/2015Remote/res/Bitmap/GrayDesktop.bmp b/server/2015Remote/res/Bitmap/GrayDesktop.bmp new file mode 100644 index 0000000000000000000000000000000000000000..817f885ed32a387b93c1e50c509576190384ea25 GIT binary patch literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C7H5FULpTuf|BnyD3<3Q`l8;CY2YBcaX$xFEkq(2a TC&_#w6$6zK=?vlx9MUQQH$l1) literal 0 HcmV?d00001 diff --git a/server/2015Remote/res/Bitmap/SpeedDesktop.bmp b/server/2015Remote/res/Bitmap/SpeedDesktop.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bceb45598a0a864fc98c9a671ddb8b2767592930 GIT binary patch literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C7H0s;AK`;whyVk_!>|8=h@q*4;s1Z2n3ua3LWQ<3crCC12Gc;p;Rr_{qniv@4|W*V=s?i|v?@d0cG1~KL%t4Cu)+(Qxx0Np+Ng#Z8m literal 0 HcmV?d00001 diff --git a/server/2015Remote/resource.h b/server/2015Remote/resource.h index c9939ed7ac5c4b73f9a3adee704dd4fddaaf9a7b..b6d61fa3c8e8eb660b3a290309790bb3c33f5d86 100644 GIT binary patch delta 333 zcmeDC#dzT#;|3YU$pywNlYLnD_`?`n7+e{G8N3-n82lLmCZDaAojieAOw=7!oI!!X zh{0&GqNzMcm#7O?*+5=tu(@ZX1O!n`1?irAky&>Iz^p-EsOCggL zQ$^Wf<~SyRWtBaE=9)2>;5LWBa`VzET}DRZ$$_fklP6S*O#WAG#Aq?Okqg3$so4Yo D2$xC~ delta 45 zcmccckFoC;;|3YU$pJ=eo3)fWA~(OO(O{hHq$n|2r_PPhd@`e=IFKbVc~RXu0GQhl A&;S4c