完善远程控制追踪鼠标
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -67,3 +67,4 @@ server/2015Remote/2015Remote.aps
|
||||
server/2015Remote.VC.db
|
||||
server/2015Remote.opensdf
|
||||
*.7z
|
||||
*.ini
|
||||
|
||||
12
ReadMe.txt
12
ReadMe.txt
@@ -115,3 +115,15 @@
|
||||
1、发现使用lz4压缩库时监控端程序进行远程桌面操作时容易崩溃,原因不明。
|
||||
|
||||
2、修复内存泄漏缺陷,在throw "Bad Buffer"的情况需要释放申请的内存。
|
||||
|
||||
2019.1.20
|
||||
|
||||
1、发现不管是采用zstd还是zlib,主控端在进行桌面控制时均有崩溃的几率(zlib较小)。
|
||||
|
||||
2、改用zlib压缩解压库。
|
||||
|
||||
3、完善追踪鼠标时鼠标形态变化时的展现效果。
|
||||
|
||||
4、当退出远程桌面窗口全屏状态时,不再向远程被控端发送F11。
|
||||
|
||||
5、发现在有线网络条件下主控端崩溃几率较小。
|
||||
|
||||
@@ -83,7 +83,6 @@
|
||||
<ClCompile Include="CaptureVideo.cpp" />
|
||||
<ClCompile Include="ClientDll.cpp" />
|
||||
<ClCompile Include="Common.cpp" />
|
||||
<ClCompile Include="CursorInfor.cpp" />
|
||||
<ClCompile Include="FileManager.cpp" />
|
||||
<ClCompile Include="IOCPClient.cpp" />
|
||||
<ClCompile Include="KernelManager.cpp" />
|
||||
@@ -106,7 +105,7 @@
|
||||
<ClInclude Include="Buffer.h" />
|
||||
<ClInclude Include="CaptureVideo.h" />
|
||||
<ClInclude Include="Common.h" />
|
||||
<ClInclude Include="CursorInfor.h" />
|
||||
<ClInclude Include="CursorInfo.h" />
|
||||
<ClInclude Include="FileManager.h" />
|
||||
<ClInclude Include="IOCPClient.h" />
|
||||
<ClInclude Include="KernelManager.h" />
|
||||
|
||||
@@ -33,9 +33,6 @@
|
||||
<ClCompile Include="Common.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="CursorInfor.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="FileManager.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
@@ -98,9 +95,6 @@
|
||||
<ClInclude Include="Common.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CursorInfor.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="FileManager.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
@@ -158,6 +152,9 @@
|
||||
<ClInclude Include="zlib.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CursorInfo.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Script.rc">
|
||||
|
||||
85
client/CursorInfo.h
Normal file
85
client/CursorInfo.h
Normal file
@@ -0,0 +1,85 @@
|
||||
// CursorInfor.h: interface for the CCursorInfor class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(AFX_CURSORINFOR_H__ABC3705B_9461_4A94_B825_26539717C0D6__INCLUDED_)
|
||||
#define AFX_CURSORINFOR_H__ABC3705B_9461_4A94_B825_26539717C0D6__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#define MAX_CURSOR_TYPE 16
|
||||
|
||||
class CCursorInfo
|
||||
{
|
||||
private:
|
||||
LPCTSTR m_CursorResArray[MAX_CURSOR_TYPE];
|
||||
HCURSOR m_CursorHandleArray[MAX_CURSOR_TYPE];
|
||||
|
||||
public:
|
||||
CCursorInfo()
|
||||
{
|
||||
LPCTSTR CursorResArray[MAX_CURSOR_TYPE] =
|
||||
{
|
||||
IDC_APPSTARTING,
|
||||
IDC_ARROW,
|
||||
IDC_CROSS,
|
||||
IDC_HAND,
|
||||
IDC_HELP,
|
||||
IDC_IBEAM,
|
||||
IDC_ICON,
|
||||
IDC_NO,
|
||||
IDC_SIZE,
|
||||
IDC_SIZEALL,
|
||||
IDC_SIZENESW,
|
||||
IDC_SIZENS,
|
||||
IDC_SIZENWSE,
|
||||
IDC_SIZEWE,
|
||||
IDC_UPARROW,
|
||||
IDC_WAIT
|
||||
};
|
||||
|
||||
for (int i = 0; i < MAX_CURSOR_TYPE; ++i)
|
||||
{
|
||||
m_CursorResArray[i] = CursorResArray[i];
|
||||
m_CursorHandleArray[i] = LoadCursor(NULL, CursorResArray[i]);
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~CCursorInfo()
|
||||
{
|
||||
for (int i = 0; i < MAX_CURSOR_TYPE; ++i)
|
||||
DestroyCursor(m_CursorHandleArray[i]);
|
||||
}
|
||||
|
||||
int getCurrentCursorIndex()
|
||||
{
|
||||
CURSORINFO ci;
|
||||
ci.cbSize = sizeof(CURSORINFO);
|
||||
if (!GetCursorInfo(&ci) || ci.flags != CURSOR_SHOWING)
|
||||
return -1;
|
||||
|
||||
int i;
|
||||
for (i = 0; i < MAX_CURSOR_TYPE; ++i)
|
||||
{
|
||||
if (ci.hCursor == m_CursorHandleArray[i])
|
||||
break;
|
||||
}
|
||||
DestroyCursor(ci.hCursor);
|
||||
|
||||
int nIndex = i == MAX_CURSOR_TYPE ? -1 : i;
|
||||
return nIndex;
|
||||
}
|
||||
|
||||
HCURSOR getCursorHandle( int nIndex )
|
||||
{
|
||||
if (nIndex >= 0 && nIndex < MAX_CURSOR_TYPE)
|
||||
return m_CursorHandleArray[nIndex];
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
#endif // !defined(AFX_CURSORINFOR_H__ABC3705B_9461_4A94_B825_26539717C0D6__INCLUDED_)
|
||||
@@ -1,40 +0,0 @@
|
||||
// CursorInfor.cpp: implementation of the CCursorInfor class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "CursorInfor.h"
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
CCursorInfor::CCursorInfor()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
CCursorInfor::~CCursorInfor()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int CCursorInfor::GetCurrentCursorIndex()
|
||||
{
|
||||
CURSORINFO ci;
|
||||
ci.cbSize = sizeof(CURSORINFO);
|
||||
if (!GetCursorInfo(&ci) || ci.flags != CURSOR_SHOWING)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
int iIndex = 0;
|
||||
for (iIndex = 0; iIndex < MAX_CURSOR_TYPE; iIndex++)
|
||||
{
|
||||
break;
|
||||
}
|
||||
DestroyCursor(ci.hCursor);
|
||||
|
||||
return iIndex == MAX_CURSOR_TYPE ? -1 : iIndex;
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
// CursorInfor.h: interface for the CCursorInfor class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(AFX_CURSORINFOR_H__ABC3705B_9461_4A94_B825_26539717C0D6__INCLUDED_)
|
||||
#define AFX_CURSORINFOR_H__ABC3705B_9461_4A94_B825_26539717C0D6__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#define MAX_CURSOR_TYPE 16
|
||||
class CCursorInfor
|
||||
{
|
||||
public:
|
||||
CCursorInfor();
|
||||
virtual ~CCursorInfor();
|
||||
|
||||
int GetCurrentCursorIndex();
|
||||
};
|
||||
|
||||
#endif // !defined(AFX_CURSORINFOR_H__ABC3705B_9461_4A94_B825_26539717C0D6__INCLUDED_)
|
||||
@@ -46,7 +46,7 @@ DWORD WINAPI CScreenManager::WorkThreadProc(LPVOID lParam)
|
||||
#if USING_ZLIB
|
||||
const int fps = 8;// ֡<><D6A1>
|
||||
#elif USING_LZ4
|
||||
const int fps = 12;// ֡<><D6A1>
|
||||
const int fps = 8;// ֡<><D6A1>
|
||||
#else
|
||||
const int fps = 8;// ֡<><D6A1>
|
||||
#endif
|
||||
|
||||
@@ -156,7 +156,7 @@ LPVOID CScreenSpy::GetNextScreenData(ULONG* ulNextSendLength)
|
||||
WriteRectBuffer((LPBYTE)&CursorPos, sizeof(POINT));
|
||||
|
||||
// д<>뵱ǰ<EBB5B1><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
BYTE bCursorIndex = m_CursorInfor.GetCurrentCursorIndex();
|
||||
BYTE bCursorIndex = m_CursorInfor.getCurrentCursorIndex();
|
||||
WriteRectBuffer(&bCursorIndex, sizeof(BYTE));
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD>㷨
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#endif // _MSC_VER > 1000
|
||||
#define ALGORITHM_DIFF 1
|
||||
#define COPY_ALL 1 // <20><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>ֿ鿽<D6BF><E9BFBD><EFBFBD><EFBFBD>added by yuanyuanxiang 2019-1-7<><37>
|
||||
#include "CursorInfor.h"
|
||||
#include "CursorInfo.h"
|
||||
|
||||
|
||||
class CScreenSpy
|
||||
@@ -61,7 +61,7 @@ public:
|
||||
m_RectBufferOffset += ulLength;
|
||||
}
|
||||
|
||||
CCursorInfor m_CursorInfor;
|
||||
CCursorInfo m_CursorInfor;
|
||||
HDC m_hDiffMemDC;
|
||||
HBITMAP m_DiffBitmapHandle;
|
||||
PVOID m_DiffBitmapData_Full;
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
#define AFX_STDAFX_H__46CA6496_AAD6_4658_B6E9_D7AEB26CDCD5__INCLUDED_
|
||||
|
||||
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>ZLIB
|
||||
#define USING_ZLIB 0
|
||||
#define USING_ZLIB 1
|
||||
|
||||
#if !USING_ZLIB
|
||||
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>LZ4
|
||||
#define USING_LZ4 0
|
||||
#define USING_LZ4 1
|
||||
#endif
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<RemoteDebuggerCommand>C:\Users\win7\Desktop\Remoter\TestRun.exe</RemoteDebuggerCommand>
|
||||
<RemoteDebuggerWorkingDirectory>C:\Users\win7\Desktop\Remoter</RemoteDebuggerWorkingDirectory>
|
||||
<RemoteDebuggerServerName>192.168.43.2</RemoteDebuggerServerName>
|
||||
<DeploymentDirectory>C:\Users\win7\Desktop\Remoter</DeploymentDirectory>
|
||||
<RemoteDebuggerCommand>D:\VM\Remoter\TestRun.exe</RemoteDebuggerCommand>
|
||||
<RemoteDebuggerWorkingDirectory>D:\VM\Remoter</RemoteDebuggerWorkingDirectory>
|
||||
<RemoteDebuggerServerName>192.168.12.248</RemoteDebuggerServerName>
|
||||
<DeploymentDirectory>D:\VM\Remoter</DeploymentDirectory>
|
||||
<AdditionalFiles>$(TargetDir)\TestRun.pdb;$(TargetDir)\ServerDll.dll;$(TargetDir)\ServerDll.pdb</AdditionalFiles>
|
||||
<RemoteDebuggerDeployDebugCppRuntime>false</RemoteDebuggerDeployDebugCppRuntime>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
<DebuggerFlavor>WindowsRemoteDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -88,7 +88,6 @@
|
||||
<ClCompile Include="CaptureVideo.cpp" />
|
||||
<ClCompile Include="ClientDll.cpp" />
|
||||
<ClCompile Include="Common.cpp" />
|
||||
<ClCompile Include="CursorInfor.cpp" />
|
||||
<ClCompile Include="FileManager.cpp" />
|
||||
<ClCompile Include="IOCPClient.cpp" />
|
||||
<ClCompile Include="KernelManager.cpp" />
|
||||
@@ -111,7 +110,7 @@
|
||||
<ClInclude Include="Buffer.h" />
|
||||
<ClInclude Include="CaptureVideo.h" />
|
||||
<ClInclude Include="Common.h" />
|
||||
<ClInclude Include="CursorInfor.h" />
|
||||
<ClInclude Include="CursorInfo.h" />
|
||||
<ClInclude Include="FileManager.h" />
|
||||
<ClInclude Include="IOCPClient.h" />
|
||||
<ClInclude Include="KernelManager.h" />
|
||||
|
||||
@@ -33,9 +33,6 @@
|
||||
<ClCompile Include="Common.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="CursorInfor.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="FileManager.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
@@ -98,9 +95,6 @@
|
||||
<ClInclude Include="Common.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CursorInfor.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="FileManager.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
@@ -158,6 +152,9 @@
|
||||
<ClInclude Include="zlib.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CursorInfo.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Script.rc">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
<LocalDebuggerCommandArguments>192.168.104.250 2356</LocalDebuggerCommandArguments>
|
||||
<LocalDebuggerCommandArguments>192.168.12.250 2356</LocalDebuggerCommandArguments>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
|
||||
Binary file not shown.
@@ -833,7 +833,7 @@ VOID CMy2015RemoteDlg::Activate(int nPort,int nMaxConnection)
|
||||
|
||||
VOID CALLBACK CMy2015RemoteDlg::NotifyProc(CONTEXT_OBJECT* ContextObject)
|
||||
{
|
||||
AUTO_TICK(5);
|
||||
AUTO_TICK(20);
|
||||
MessageHandle(ContextObject);
|
||||
}
|
||||
|
||||
@@ -1142,7 +1142,7 @@ LRESULT CMy2015RemoteDlg::OnOpenScreenSpyDialog(WPARAM wParam, LPARAM lParam)
|
||||
CScreenSpyDlg *Dlg = new CScreenSpyDlg(this,m_iocpServer, ContextObject); //Send s
|
||||
// <20><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EFBFBD><EFBFBD>Ϊ<CEAA><D7BF>
|
||||
Dlg->Create(IDD_DIALOG_SCREEN_SPY, GetDesktopWindow());
|
||||
Dlg->ShowWindow(SW_SHOW);
|
||||
Dlg->ShowWindow(SW_SHOWMAXIMIZED);
|
||||
|
||||
ContextObject->v1 = SCREENSPY_DLG;
|
||||
ContextObject->hDlg = Dlg;
|
||||
|
||||
@@ -69,6 +69,7 @@ IOCPServer::IOCPServer(void)
|
||||
|
||||
m_hKillEvent = NULL;
|
||||
|
||||
memset(m_szPacketFlag, 0, sizeof(m_szPacketFlag));
|
||||
memcpy(m_szPacketFlag,"Shine",FLAG_LENGTH);
|
||||
|
||||
m_NotifyProc = NULL;
|
||||
@@ -403,7 +404,7 @@ DWORD IOCPServer::WorkThreadProc(LPVOID lParam)
|
||||
//<2F>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD>߳<EFBFBD><DFB3>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
|
||||
BOOL IOCPServer::HandleIO(IOType PacketFlags,PCONTEXT_OBJECT ContextObject, DWORD dwTrans)
|
||||
{
|
||||
AUTO_TICK(5);
|
||||
AUTO_TICK(20);
|
||||
|
||||
BOOL bRet = FALSE;
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ public:
|
||||
|
||||
ULONG m_ulKeepLiveTime;
|
||||
|
||||
char m_szPacketFlag[FLAG_LENGTH];
|
||||
char m_szPacketFlag[FLAG_LENGTH + 3];
|
||||
|
||||
typedef void (CALLBACK *pfnNotifyProc)(CONTEXT_OBJECT* ContextObject);
|
||||
typedef void (CALLBACK *pfnOfflineProc)(CONTEXT_OBJECT* ContextObject);
|
||||
|
||||
@@ -37,7 +37,7 @@ CScreenSpyDlg::CScreenSpyDlg(CWnd* Parent, IOCPServer* IOCPServer, CONTEXT_OBJEC
|
||||
GetSystemDirectory(szFullPath, MAX_PATH);
|
||||
lstrcat(szFullPath, "\\shell32.dll"); //ͼ<><CDBC>
|
||||
m_hIcon = ExtractIcon(AfxGetApp()->m_hInstance, szFullPath, 17);
|
||||
m_hCursor = LoadCursor(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDC_ARROW));
|
||||
m_hCursor = LoadCursor(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDC_ARROWS));
|
||||
|
||||
sockaddr_in ClientAddr;
|
||||
memset(&ClientAddr, 0, sizeof(ClientAddr));
|
||||
@@ -231,12 +231,13 @@ VOID CScreenSpyDlg::DrawNextScreenDiff(void)
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>仯
|
||||
BYTE bOldCursorIndex;
|
||||
memcpy(&bOldCursorIndex, &m_bCursorIndex, sizeof(BYTE));
|
||||
memcpy(&m_bCursorIndex, m_ContextObject->InDeCompressedBuffer.GetBuffer(2+sizeof(POINT)), sizeof(BYTE));
|
||||
BYTE bOldCursorIndex = m_bCursorIndex;
|
||||
m_bCursorIndex = m_ContextObject->InDeCompressedBuffer.GetBuffer(2+sizeof(POINT))[0];
|
||||
if (bOldCursorIndex != m_bCursorIndex)
|
||||
{
|
||||
bChange = TRUE;
|
||||
if (m_bIsCtrl && !m_bIsTraceCursor)//<2F>滻ָ<E6BBBB><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>WNDCLASSEX<45>ṹ
|
||||
SetClassLong(m_hWnd, GCL_HCURSOR, (LONG)m_CursorInfo.getCursorHandle(m_bCursorIndex == (BYTE)-1 ? 1 : m_bCursorIndex));
|
||||
}
|
||||
|
||||
// <20><>Ļ<EFBFBD>Ƿ<EFBFBD><C7B7>仯
|
||||
@@ -298,7 +299,7 @@ void CScreenSpyDlg::OnPaint()
|
||||
m_hFullDC,
|
||||
m_ClientCursorPos.x - m_ulHScrollPos,
|
||||
m_ClientCursorPos.y - m_ulVScrollPos,
|
||||
m_hCursor,
|
||||
m_CursorInfo.getCursorHandle(m_bCursorIndex == (BYTE)-1 ? 1 : m_bCursorIndex),
|
||||
0,0,
|
||||
0,
|
||||
NULL,
|
||||
@@ -413,6 +414,8 @@ BOOL CScreenSpyDlg::PreTranslateMessage(MSG* pMsg)
|
||||
case WM_KEYUP:
|
||||
case WM_SYSKEYDOWN:
|
||||
case WM_SYSKEYUP:
|
||||
if (pMsg->wParam == VK_F11 && LeaveFullScreen()) // F11: <20>˳<EFBFBD>ȫ<EFBFBD><C8AB>
|
||||
return true;
|
||||
if (pMsg->wParam != VK_LWIN && pMsg->wParam != VK_RWIN)
|
||||
{
|
||||
MSG Msg;
|
||||
@@ -423,9 +426,7 @@ BOOL CScreenSpyDlg::PreTranslateMessage(MSG* pMsg)
|
||||
SendCommand(&Msg);
|
||||
}
|
||||
if (pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE)
|
||||
return true;
|
||||
if (pMsg->wParam == VK_F11) // <20>˳<EFBFBD>ȫ<EFBFBD><C8AB>
|
||||
LeaveFullScreen();
|
||||
return true;// <20><><EFBFBD><EFBFBD>Enter<65><72>ESC<53>رնԻ<D5B6>
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -647,8 +648,8 @@ void CScreenSpyDlg::EnterFullScreen()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CScreenSpyDlg::LeaveFullScreen()
|
||||
// ȫ<><C8AB><EFBFBD>˳<EFBFBD><CBB3>ɹ<EFBFBD><C9B9><EFBFBD>true
|
||||
bool CScreenSpyDlg::LeaveFullScreen()
|
||||
{
|
||||
if (m_bFullScreen)
|
||||
{
|
||||
@@ -656,7 +657,9 @@ void CScreenSpyDlg::LeaveFullScreen()
|
||||
CMenu *SysMenu = GetSystemMenu(FALSE);
|
||||
SysMenu->CheckMenuItem(IDM_FULLSCREEN, MF_UNCHECKED); //<2F>˵<EFBFBD><CBB5><EFBFBD>ʽ
|
||||
m_bFullScreen = false;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void CScreenSpyDlg::OnLButtonDown(UINT nFlags, CPoint point)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
#include "IOCPServer.h"
|
||||
#include "..\..\client\CursorInfo.h"
|
||||
|
||||
// CScreenSpyDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
||||
|
||||
@@ -34,6 +35,7 @@ public:
|
||||
BYTE m_bCursorIndex;
|
||||
CString m_strClientIP;
|
||||
BOOL m_bIsTraceCursor;
|
||||
CCursorInfo m_CursorInfo; //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ϵͳ<CFB5>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD>
|
||||
VOID SendCommand(MSG* Msg);
|
||||
|
||||
VOID UpdateServerClipboard(char *szBuffer,ULONG ulLength);
|
||||
@@ -53,7 +55,7 @@ public:
|
||||
WINDOWPLACEMENT m_struOldWndpl;
|
||||
|
||||
void EnterFullScreen();
|
||||
void LeaveFullScreen();
|
||||
bool LeaveFullScreen();
|
||||
|
||||
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
||||
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
||||
|
||||
Binary file not shown.
@@ -6,11 +6,11 @@
|
||||
#pragma once
|
||||
|
||||
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>ZLIB
|
||||
#define USING_ZLIB 0
|
||||
#define USING_ZLIB 1
|
||||
|
||||
#if !USING_ZLIB
|
||||
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>LZ4
|
||||
#define USING_LZ4 0
|
||||
#define USING_LZ4 1
|
||||
#endif
|
||||
|
||||
#ifndef _SECURE_ATL
|
||||
@@ -245,7 +245,7 @@ public:
|
||||
|
||||
#ifdef _DEBUG
|
||||
// <20><><EFBFBD>ܼ<EFBFBD><DCBC>㵱ǰ<E3B5B1><C7B0><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ӡ
|
||||
#define AUTO_TICK(thresh) auto_tick(__FUNCTION__, thresh)
|
||||
#define AUTO_TICK(thresh) auto_tick TICK(__FUNCTION__, thresh)
|
||||
#else
|
||||
#define AUTO_TICK(thresh)
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user