完善远程控制追踪鼠标
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.VC.db
|
||||||
server/2015Remote.opensdf
|
server/2015Remote.opensdf
|
||||||
*.7z
|
*.7z
|
||||||
|
*.ini
|
||||||
|
|||||||
12
ReadMe.txt
12
ReadMe.txt
@@ -115,3 +115,15 @@
|
|||||||
1、发现使用lz4压缩库时监控端程序进行远程桌面操作时容易崩溃,原因不明。
|
1、发现使用lz4压缩库时监控端程序进行远程桌面操作时容易崩溃,原因不明。
|
||||||
|
|
||||||
2、修复内存泄漏缺陷,在throw "Bad Buffer"的情况需要释放申请的内存。
|
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="CaptureVideo.cpp" />
|
||||||
<ClCompile Include="ClientDll.cpp" />
|
<ClCompile Include="ClientDll.cpp" />
|
||||||
<ClCompile Include="Common.cpp" />
|
<ClCompile Include="Common.cpp" />
|
||||||
<ClCompile Include="CursorInfor.cpp" />
|
|
||||||
<ClCompile Include="FileManager.cpp" />
|
<ClCompile Include="FileManager.cpp" />
|
||||||
<ClCompile Include="IOCPClient.cpp" />
|
<ClCompile Include="IOCPClient.cpp" />
|
||||||
<ClCompile Include="KernelManager.cpp" />
|
<ClCompile Include="KernelManager.cpp" />
|
||||||
@@ -106,7 +105,7 @@
|
|||||||
<ClInclude Include="Buffer.h" />
|
<ClInclude Include="Buffer.h" />
|
||||||
<ClInclude Include="CaptureVideo.h" />
|
<ClInclude Include="CaptureVideo.h" />
|
||||||
<ClInclude Include="Common.h" />
|
<ClInclude Include="Common.h" />
|
||||||
<ClInclude Include="CursorInfor.h" />
|
<ClInclude Include="CursorInfo.h" />
|
||||||
<ClInclude Include="FileManager.h" />
|
<ClInclude Include="FileManager.h" />
|
||||||
<ClInclude Include="IOCPClient.h" />
|
<ClInclude Include="IOCPClient.h" />
|
||||||
<ClInclude Include="KernelManager.h" />
|
<ClInclude Include="KernelManager.h" />
|
||||||
|
|||||||
@@ -33,9 +33,6 @@
|
|||||||
<ClCompile Include="Common.cpp">
|
<ClCompile Include="Common.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="CursorInfor.cpp">
|
|
||||||
<Filter>源文件</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="FileManager.cpp">
|
<ClCompile Include="FileManager.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@@ -98,9 +95,6 @@
|
|||||||
<ClInclude Include="Common.h">
|
<ClInclude Include="Common.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="CursorInfor.h">
|
|
||||||
<Filter>头文件</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="FileManager.h">
|
<ClInclude Include="FileManager.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
@@ -158,6 +152,9 @@
|
|||||||
<ClInclude Include="zlib.h">
|
<ClInclude Include="zlib.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="CursorInfo.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="Script.rc">
|
<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
|
#if USING_ZLIB
|
||||||
const int fps = 8;// ֡<><D6A1>
|
const int fps = 8;// ֡<><D6A1>
|
||||||
#elif USING_LZ4
|
#elif USING_LZ4
|
||||||
const int fps = 12;// ֡<><D6A1>
|
const int fps = 8;// ֡<><D6A1>
|
||||||
#else
|
#else
|
||||||
const int fps = 8;// ֡<><D6A1>
|
const int fps = 8;// ֡<><D6A1>
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ LPVOID CScreenSpy::GetNextScreenData(ULONG* ulNextSendLength)
|
|||||||
WriteRectBuffer((LPBYTE)&CursorPos, sizeof(POINT));
|
WriteRectBuffer((LPBYTE)&CursorPos, sizeof(POINT));
|
||||||
|
|
||||||
// д<>뵱ǰ<EBB5B1><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// д<>뵱ǰ<EBB5B1><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
BYTE bCursorIndex = m_CursorInfor.GetCurrentCursorIndex();
|
BYTE bCursorIndex = m_CursorInfor.getCurrentCursorIndex();
|
||||||
WriteRectBuffer(&bCursorIndex, sizeof(BYTE));
|
WriteRectBuffer(&bCursorIndex, sizeof(BYTE));
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD>㷨
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD>㷨
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
#endif // _MSC_VER > 1000
|
#endif // _MSC_VER > 1000
|
||||||
#define ALGORITHM_DIFF 1
|
#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>
|
#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
|
class CScreenSpy
|
||||||
@@ -61,7 +61,7 @@ public:
|
|||||||
m_RectBufferOffset += ulLength;
|
m_RectBufferOffset += ulLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
CCursorInfor m_CursorInfor;
|
CCursorInfo m_CursorInfor;
|
||||||
HDC m_hDiffMemDC;
|
HDC m_hDiffMemDC;
|
||||||
HBITMAP m_DiffBitmapHandle;
|
HBITMAP m_DiffBitmapHandle;
|
||||||
PVOID m_DiffBitmapData_Full;
|
PVOID m_DiffBitmapData_Full;
|
||||||
|
|||||||
@@ -7,11 +7,11 @@
|
|||||||
#define AFX_STDAFX_H__46CA6496_AAD6_4658_B6E9_D7AEB26CDCD5__INCLUDED_
|
#define AFX_STDAFX_H__46CA6496_AAD6_4658_B6E9_D7AEB26CDCD5__INCLUDED_
|
||||||
|
|
||||||
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>ZLIB
|
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>ZLIB
|
||||||
#define USING_ZLIB 0
|
#define USING_ZLIB 1
|
||||||
|
|
||||||
#if !USING_ZLIB
|
#if !USING_ZLIB
|
||||||
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>LZ4
|
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>LZ4
|
||||||
#define USING_LZ4 0
|
#define USING_LZ4 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
#if _MSC_VER > 1000
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<RemoteDebuggerCommand>C:\Users\win7\Desktop\Remoter\TestRun.exe</RemoteDebuggerCommand>
|
<RemoteDebuggerCommand>D:\VM\Remoter\TestRun.exe</RemoteDebuggerCommand>
|
||||||
<RemoteDebuggerWorkingDirectory>C:\Users\win7\Desktop\Remoter</RemoteDebuggerWorkingDirectory>
|
<RemoteDebuggerWorkingDirectory>D:\VM\Remoter</RemoteDebuggerWorkingDirectory>
|
||||||
<RemoteDebuggerServerName>192.168.43.2</RemoteDebuggerServerName>
|
<RemoteDebuggerServerName>192.168.12.248</RemoteDebuggerServerName>
|
||||||
<DeploymentDirectory>C:\Users\win7\Desktop\Remoter</DeploymentDirectory>
|
<DeploymentDirectory>D:\VM\Remoter</DeploymentDirectory>
|
||||||
<AdditionalFiles>$(TargetDir)\TestRun.pdb;$(TargetDir)\ServerDll.dll;$(TargetDir)\ServerDll.pdb</AdditionalFiles>
|
<AdditionalFiles>$(TargetDir)\TestRun.pdb;$(TargetDir)\ServerDll.dll;$(TargetDir)\ServerDll.pdb</AdditionalFiles>
|
||||||
<RemoteDebuggerDeployDebugCppRuntime>false</RemoteDebuggerDeployDebugCppRuntime>
|
<RemoteDebuggerDeployDebugCppRuntime>false</RemoteDebuggerDeployDebugCppRuntime>
|
||||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
<DebuggerFlavor>WindowsRemoteDebugger</DebuggerFlavor>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -88,7 +88,6 @@
|
|||||||
<ClCompile Include="CaptureVideo.cpp" />
|
<ClCompile Include="CaptureVideo.cpp" />
|
||||||
<ClCompile Include="ClientDll.cpp" />
|
<ClCompile Include="ClientDll.cpp" />
|
||||||
<ClCompile Include="Common.cpp" />
|
<ClCompile Include="Common.cpp" />
|
||||||
<ClCompile Include="CursorInfor.cpp" />
|
|
||||||
<ClCompile Include="FileManager.cpp" />
|
<ClCompile Include="FileManager.cpp" />
|
||||||
<ClCompile Include="IOCPClient.cpp" />
|
<ClCompile Include="IOCPClient.cpp" />
|
||||||
<ClCompile Include="KernelManager.cpp" />
|
<ClCompile Include="KernelManager.cpp" />
|
||||||
@@ -111,7 +110,7 @@
|
|||||||
<ClInclude Include="Buffer.h" />
|
<ClInclude Include="Buffer.h" />
|
||||||
<ClInclude Include="CaptureVideo.h" />
|
<ClInclude Include="CaptureVideo.h" />
|
||||||
<ClInclude Include="Common.h" />
|
<ClInclude Include="Common.h" />
|
||||||
<ClInclude Include="CursorInfor.h" />
|
<ClInclude Include="CursorInfo.h" />
|
||||||
<ClInclude Include="FileManager.h" />
|
<ClInclude Include="FileManager.h" />
|
||||||
<ClInclude Include="IOCPClient.h" />
|
<ClInclude Include="IOCPClient.h" />
|
||||||
<ClInclude Include="KernelManager.h" />
|
<ClInclude Include="KernelManager.h" />
|
||||||
|
|||||||
@@ -33,9 +33,6 @@
|
|||||||
<ClCompile Include="Common.cpp">
|
<ClCompile Include="Common.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="CursorInfor.cpp">
|
|
||||||
<Filter>源文件</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="FileManager.cpp">
|
<ClCompile Include="FileManager.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@@ -98,9 +95,6 @@
|
|||||||
<ClInclude Include="Common.h">
|
<ClInclude Include="Common.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="CursorInfor.h">
|
|
||||||
<Filter>头文件</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="FileManager.h">
|
<ClInclude Include="FileManager.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
@@ -158,6 +152,9 @@
|
|||||||
<ClInclude Include="zlib.h">
|
<ClInclude Include="zlib.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="CursorInfo.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="Script.rc">
|
<ResourceCompile Include="Script.rc">
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
<LocalDebuggerCommandArguments>192.168.104.250 2356</LocalDebuggerCommandArguments>
|
<LocalDebuggerCommandArguments>192.168.12.250 2356</LocalDebuggerCommandArguments>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
<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)
|
VOID CALLBACK CMy2015RemoteDlg::NotifyProc(CONTEXT_OBJECT* ContextObject)
|
||||||
{
|
{
|
||||||
AUTO_TICK(5);
|
AUTO_TICK(20);
|
||||||
MessageHandle(ContextObject);
|
MessageHandle(ContextObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1142,7 +1142,7 @@ LRESULT CMy2015RemoteDlg::OnOpenScreenSpyDialog(WPARAM wParam, LPARAM lParam)
|
|||||||
CScreenSpyDlg *Dlg = new CScreenSpyDlg(this,m_iocpServer, ContextObject); //Send s
|
CScreenSpyDlg *Dlg = new CScreenSpyDlg(this,m_iocpServer, ContextObject); //Send s
|
||||||
// <20><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EFBFBD><EFBFBD>Ϊ<CEAA><D7BF>
|
// <20><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EFBFBD><EFBFBD>Ϊ<CEAA><D7BF>
|
||||||
Dlg->Create(IDD_DIALOG_SCREEN_SPY, GetDesktopWindow());
|
Dlg->Create(IDD_DIALOG_SCREEN_SPY, GetDesktopWindow());
|
||||||
Dlg->ShowWindow(SW_SHOW);
|
Dlg->ShowWindow(SW_SHOWMAXIMIZED);
|
||||||
|
|
||||||
ContextObject->v1 = SCREENSPY_DLG;
|
ContextObject->v1 = SCREENSPY_DLG;
|
||||||
ContextObject->hDlg = Dlg;
|
ContextObject->hDlg = Dlg;
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ IOCPServer::IOCPServer(void)
|
|||||||
|
|
||||||
m_hKillEvent = NULL;
|
m_hKillEvent = NULL;
|
||||||
|
|
||||||
|
memset(m_szPacketFlag, 0, sizeof(m_szPacketFlag));
|
||||||
memcpy(m_szPacketFlag,"Shine",FLAG_LENGTH);
|
memcpy(m_szPacketFlag,"Shine",FLAG_LENGTH);
|
||||||
|
|
||||||
m_NotifyProc = NULL;
|
m_NotifyProc = NULL;
|
||||||
@@ -403,7 +404,7 @@ DWORD IOCPServer::WorkThreadProc(LPVOID lParam)
|
|||||||
//<2F>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD>߳<EFBFBD><DFB3>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
|
//<2F>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD>߳<EFBFBD><DFB3>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
|
||||||
BOOL IOCPServer::HandleIO(IOType PacketFlags,PCONTEXT_OBJECT ContextObject, DWORD dwTrans)
|
BOOL IOCPServer::HandleIO(IOType PacketFlags,PCONTEXT_OBJECT ContextObject, DWORD dwTrans)
|
||||||
{
|
{
|
||||||
AUTO_TICK(5);
|
AUTO_TICK(20);
|
||||||
|
|
||||||
BOOL bRet = FALSE;
|
BOOL bRet = FALSE;
|
||||||
|
|
||||||
@@ -530,7 +531,7 @@ VOID IOCPServer::OnClientPreSending(CONTEXT_OBJECT* ContextObject, PBYTE szBuffe
|
|||||||
ULONG ulPackTotalLength = ulCompressedLength + HDR_LENGTH;
|
ULONG ulPackTotalLength = ulCompressedLength + HDR_LENGTH;
|
||||||
ContextObject->OutCompressedBuffer.WriteBuffer((LPBYTE)m_szPacketFlag,FLAG_LENGTH);
|
ContextObject->OutCompressedBuffer.WriteBuffer((LPBYTE)m_szPacketFlag,FLAG_LENGTH);
|
||||||
ContextObject->OutCompressedBuffer.WriteBuffer((PBYTE)&ulPackTotalLength, sizeof(ULONG));
|
ContextObject->OutCompressedBuffer.WriteBuffer((PBYTE)&ulPackTotalLength, sizeof(ULONG));
|
||||||
ContextObject->OutCompressedBuffer.WriteBuffer((PBYTE) &ulOriginalLength, sizeof(ULONG));
|
ContextObject->OutCompressedBuffer.WriteBuffer((PBYTE)&ulOriginalLength, sizeof(ULONG));
|
||||||
ContextObject->OutCompressedBuffer.WriteBuffer(CompressedBuffer, ulCompressedLength);
|
ContextObject->OutCompressedBuffer.WriteBuffer(CompressedBuffer, ulCompressedLength);
|
||||||
delete [] CompressedBuffer;
|
delete [] CompressedBuffer;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public:
|
|||||||
|
|
||||||
ULONG m_ulKeepLiveTime;
|
ULONG m_ulKeepLiveTime;
|
||||||
|
|
||||||
char m_szPacketFlag[FLAG_LENGTH];
|
char m_szPacketFlag[FLAG_LENGTH + 3];
|
||||||
|
|
||||||
typedef void (CALLBACK *pfnNotifyProc)(CONTEXT_OBJECT* ContextObject);
|
typedef void (CALLBACK *pfnNotifyProc)(CONTEXT_OBJECT* ContextObject);
|
||||||
typedef void (CALLBACK *pfnOfflineProc)(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);
|
GetSystemDirectory(szFullPath, MAX_PATH);
|
||||||
lstrcat(szFullPath, "\\shell32.dll"); //ͼ<><CDBC>
|
lstrcat(szFullPath, "\\shell32.dll"); //ͼ<><CDBC>
|
||||||
m_hIcon = ExtractIcon(AfxGetApp()->m_hInstance, szFullPath, 17);
|
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;
|
sockaddr_in ClientAddr;
|
||||||
memset(&ClientAddr, 0, sizeof(ClientAddr));
|
memset(&ClientAddr, 0, sizeof(ClientAddr));
|
||||||
@@ -231,12 +231,13 @@ VOID CScreenSpyDlg::DrawNextScreenDiff(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>仯
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>仯
|
||||||
BYTE bOldCursorIndex;
|
BYTE bOldCursorIndex = m_bCursorIndex;
|
||||||
memcpy(&bOldCursorIndex, &m_bCursorIndex, sizeof(BYTE));
|
m_bCursorIndex = m_ContextObject->InDeCompressedBuffer.GetBuffer(2+sizeof(POINT))[0];
|
||||||
memcpy(&m_bCursorIndex, m_ContextObject->InDeCompressedBuffer.GetBuffer(2+sizeof(POINT)), sizeof(BYTE));
|
|
||||||
if (bOldCursorIndex != m_bCursorIndex)
|
if (bOldCursorIndex != m_bCursorIndex)
|
||||||
{
|
{
|
||||||
bChange = TRUE;
|
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>仯
|
// <20><>Ļ<EFBFBD>Ƿ<EFBFBD><C7B7>仯
|
||||||
@@ -298,7 +299,7 @@ void CScreenSpyDlg::OnPaint()
|
|||||||
m_hFullDC,
|
m_hFullDC,
|
||||||
m_ClientCursorPos.x - m_ulHScrollPos,
|
m_ClientCursorPos.x - m_ulHScrollPos,
|
||||||
m_ClientCursorPos.y - m_ulVScrollPos,
|
m_ClientCursorPos.y - m_ulVScrollPos,
|
||||||
m_hCursor,
|
m_CursorInfo.getCursorHandle(m_bCursorIndex == (BYTE)-1 ? 1 : m_bCursorIndex),
|
||||||
0,0,
|
0,0,
|
||||||
0,
|
0,
|
||||||
NULL,
|
NULL,
|
||||||
@@ -413,6 +414,8 @@ BOOL CScreenSpyDlg::PreTranslateMessage(MSG* pMsg)
|
|||||||
case WM_KEYUP:
|
case WM_KEYUP:
|
||||||
case WM_SYSKEYDOWN:
|
case WM_SYSKEYDOWN:
|
||||||
case WM_SYSKEYUP:
|
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)
|
if (pMsg->wParam != VK_LWIN && pMsg->wParam != VK_RWIN)
|
||||||
{
|
{
|
||||||
MSG Msg;
|
MSG Msg;
|
||||||
@@ -423,9 +426,7 @@ BOOL CScreenSpyDlg::PreTranslateMessage(MSG* pMsg)
|
|||||||
SendCommand(&Msg);
|
SendCommand(&Msg);
|
||||||
}
|
}
|
||||||
if (pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE)
|
if (pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE)
|
||||||
return true;
|
return true;// <20><><EFBFBD><EFBFBD>Enter<65><72>ESC<53>رնԻ<D5B6>
|
||||||
if (pMsg->wParam == VK_F11) // <20>˳<EFBFBD>ȫ<EFBFBD><C8AB>
|
|
||||||
LeaveFullScreen();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -647,8 +648,8 @@ void CScreenSpyDlg::EnterFullScreen()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ȫ<><C8AB><EFBFBD>˳<EFBFBD><CBB3>ɹ<EFBFBD><C9B9><EFBFBD>true
|
||||||
void CScreenSpyDlg::LeaveFullScreen()
|
bool CScreenSpyDlg::LeaveFullScreen()
|
||||||
{
|
{
|
||||||
if (m_bFullScreen)
|
if (m_bFullScreen)
|
||||||
{
|
{
|
||||||
@@ -656,7 +657,9 @@ void CScreenSpyDlg::LeaveFullScreen()
|
|||||||
CMenu *SysMenu = GetSystemMenu(FALSE);
|
CMenu *SysMenu = GetSystemMenu(FALSE);
|
||||||
SysMenu->CheckMenuItem(IDM_FULLSCREEN, MF_UNCHECKED); //<2F>˵<EFBFBD><CBB5><EFBFBD>ʽ
|
SysMenu->CheckMenuItem(IDM_FULLSCREEN, MF_UNCHECKED); //<2F>˵<EFBFBD><CBB5><EFBFBD>ʽ
|
||||||
m_bFullScreen = false;
|
m_bFullScreen = false;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CScreenSpyDlg::OnLButtonDown(UINT nFlags, CPoint point)
|
void CScreenSpyDlg::OnLButtonDown(UINT nFlags, CPoint point)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "IOCPServer.h"
|
#include "IOCPServer.h"
|
||||||
|
#include "..\..\client\CursorInfo.h"
|
||||||
|
|
||||||
// CScreenSpyDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
// CScreenSpyDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
||||||
|
|
||||||
@@ -34,6 +35,7 @@ public:
|
|||||||
BYTE m_bCursorIndex;
|
BYTE m_bCursorIndex;
|
||||||
CString m_strClientIP;
|
CString m_strClientIP;
|
||||||
BOOL m_bIsTraceCursor;
|
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 SendCommand(MSG* Msg);
|
||||||
|
|
||||||
VOID UpdateServerClipboard(char *szBuffer,ULONG ulLength);
|
VOID UpdateServerClipboard(char *szBuffer,ULONG ulLength);
|
||||||
@@ -53,7 +55,7 @@ public:
|
|||||||
WINDOWPLACEMENT m_struOldWndpl;
|
WINDOWPLACEMENT m_struOldWndpl;
|
||||||
|
|
||||||
void EnterFullScreen();
|
void EnterFullScreen();
|
||||||
void LeaveFullScreen();
|
bool LeaveFullScreen();
|
||||||
|
|
||||||
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
||||||
afx_msg void OnVScroll(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
|
#pragma once
|
||||||
|
|
||||||
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>ZLIB
|
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>ZLIB
|
||||||
#define USING_ZLIB 0
|
#define USING_ZLIB 1
|
||||||
|
|
||||||
#if !USING_ZLIB
|
#if !USING_ZLIB
|
||||||
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>LZ4
|
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>LZ4
|
||||||
#define USING_LZ4 0
|
#define USING_LZ4 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef _SECURE_ATL
|
#ifndef _SECURE_ATL
|
||||||
@@ -245,7 +245,7 @@ public:
|
|||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
// <20><><EFBFBD>ܼ<EFBFBD><DCBC>㵱ǰ<E3B5B1><C7B0><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ӡ
|
// <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
|
#else
|
||||||
#define AUTO_TICK(thresh)
|
#define AUTO_TICK(thresh)
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user