Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
400
Server/ManageTool/ManageClient/ManageClient.cpp
Normal file
400
Server/ManageTool/ManageClient/ManageClient.cpp
Normal file
@@ -0,0 +1,400 @@
|
||||
// ManageClient.cpp : Defines the entry point for the application.
|
||||
//
|
||||
#include "stdafx.h"
|
||||
#include "resource.h"
|
||||
#include "ManageClient.h"
|
||||
|
||||
#include <shellapi.h>
|
||||
|
||||
#include <Thread/Lock.h> // CNamedMutex
|
||||
#include <Log/ServerLog.h>
|
||||
#include <Utility/Debug/ExceptionReport.h> // g_CExceptionReport
|
||||
#include <Utility/Time/Pulse/Pulse.h>
|
||||
#include <Utility/Setup/ServerSetup.h>
|
||||
|
||||
#include <Network/Session/CreatePolicy.h>
|
||||
#include <Network/Session/Session.h>
|
||||
#include <Network/IOCP/IOCPNet.h>
|
||||
|
||||
#include <Network/Dispatch/ManageClient/ManageClientDispatch.h>
|
||||
|
||||
#include <Network/Packet/ManagePacketCmd.h>
|
||||
#include <Network/Dispatch/SendManagePacket.h>
|
||||
|
||||
#include <Setup/SetupClient.h>
|
||||
|
||||
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
|
||||
{
|
||||
CNamedMutex Mutex("ManageClient", TRUE);
|
||||
|
||||
if(GetLastError() == ERROR_ALREADY_EXISTS)
|
||||
{
|
||||
ERRLOG0(g_Log, "ManageClient already server operating now. please shutdown and restart");
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned long dwExceptionFeatures = CExceptionReport::CATCH_EXCEPTION |
|
||||
CExceptionReport::USE_MINIDUMP | CExceptionReport::USE_REPORT;
|
||||
|
||||
CExceptionReport::GetInstance().Enable(dwExceptionFeatures);
|
||||
|
||||
CManageClient& ManageClient = CManageClient::GetInstance();
|
||||
|
||||
if(ManageClient.Initialize(hInstance,
|
||||
CServerSetup::GetInstance().GetManageClientWindowName(),
|
||||
lpCmdLine, IDI_MANAGECLIENT, IDC_MANAGECLIENT))
|
||||
{
|
||||
ManageClient.ProcessMessage();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
class CManageClientProcessThread : public CProcessThread
|
||||
{
|
||||
public:
|
||||
|
||||
enum Const
|
||||
{
|
||||
PROCESS_TPP = 200, // 200ms(0.2<EFBFBD><EFBFBD>) <20><> 1ƽ.
|
||||
CONNECT_CHECK = 10 * (1000 / PROCESS_TPP), // 10<31>ʸ<EFBFBD><CAB8><EFBFBD> <20><><EFBFBD><EFBFBD> üũ
|
||||
PRINT_CHECK = 2 * (1000 / PROCESS_TPP), // 2<>ʸ<EFBFBD><CAB8><EFBFBD> <20>ܼ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
PROCESS_CHECK = 3 * (1000 / PROCESS_TPP) // 5<>ʸ<EFBFBD><CAB8><EFBFBD> ó<><C3B3> <20><><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
CManageClientProcessThread(CManageClient& ManageClient)
|
||||
: CProcessThread(ManageClient, PROCESS_TPP),
|
||||
m_ManageClient(ManageClient)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
virtual void Cleanup(CPulse& Pulse)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual void InternalRun(CPulse& Pulse)
|
||||
{
|
||||
unsigned long dwCurrentPulse = Pulse.GetCurrentPulse();
|
||||
|
||||
if(0 == (dwCurrentPulse % CONNECT_CHECK))
|
||||
{
|
||||
m_ManageClient.CheckConnectionAndReconnect();
|
||||
}
|
||||
|
||||
if(0 == (dwCurrentPulse % PRINT_CHECK))
|
||||
{
|
||||
m_ManageClient.PrintConnectionStatus();
|
||||
}
|
||||
|
||||
if(0 == (dwCurrentPulse % PROCESS_CHECK))
|
||||
{
|
||||
GET_SINGLE_DISPATCH(lpManageClientDispatch,
|
||||
CManageClientDispatch, CManageClientDispatch::GetDispatchTable());
|
||||
|
||||
if(0 != lpManageClientDispatch)
|
||||
{
|
||||
lpManageClientDispatch->CheckProcessStatus();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CManageClient& m_ManageClient;
|
||||
};
|
||||
|
||||
|
||||
CManageClient& CManageClient::GetInstance()
|
||||
{
|
||||
static CManageClient manageClient;
|
||||
return manageClient;
|
||||
}
|
||||
|
||||
|
||||
CManageClient::CManageClient()
|
||||
: m_lpClientSessionPolicy(SessionPolicy::CreateTCPPolicy<CManageClientDispatch>())
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
CManageClient::~CManageClient()
|
||||
{
|
||||
if(0 != m_lpClientSessionPolicy)
|
||||
{
|
||||
m_lpClientSessionPolicy->Release();
|
||||
m_lpClientSessionPolicy = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CManageClient::CheckConnectionAndReconnect()
|
||||
{
|
||||
bool bReconnect = false;
|
||||
|
||||
GET_SINGLE_DISPATCH(lpManageClientDispatch,
|
||||
CManageClientDispatch, CManageClientDispatch::GetDispatchTable());
|
||||
|
||||
if(0 == lpManageClientDispatch)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>Ʈ<EFBFBD><C6AE>.
|
||||
|
||||
CIOCPNet* lpIOCP = GetIOCPNet();
|
||||
|
||||
if(0 != lpIOCP)
|
||||
{
|
||||
ConnectToManageServer();
|
||||
}
|
||||
}
|
||||
else if(lpManageClientDispatch->DoPatchNow())
|
||||
{
|
||||
// <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD> <20>ް<EFBFBD>, <20><>ġ<EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD>. <20><>ġ <20><><EFBFBD>μ<EFBFBD><CEBC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
DoSelfPatchProcess(*lpManageClientDispatch);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CManageClient::ConnectToManageServer()
|
||||
{
|
||||
CIOCPNet* lpIOCP = GetIOCPNet();
|
||||
|
||||
if(0 != lpIOCP && 0 != m_lpClientSessionPolicy)
|
||||
{
|
||||
INET_Addr& manageServerAddr = ManageSetup::ClientSetup::GetInstance().GetManageServerAddr();
|
||||
|
||||
if(!lpIOCP->Connect(m_lpClientSessionPolicy, manageServerAddr.get_addr_string(),
|
||||
manageServerAddr.get_port_in()))
|
||||
{
|
||||
DETLOG3(g_Log, "this:0x%p/IP:%15s/Port/%02d/ManageServer connect failed.",
|
||||
this, manageServerAddr.get_addr_string(), manageServerAddr.get_port_in());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CManageClient::DoSelfPatchProcess(CManageClientDispatch& ClientDispatch)
|
||||
{
|
||||
/*
|
||||
// temporary .bat file
|
||||
static const TCHAR szTempBatContent[] =
|
||||
_T(":Repeat\r\n")
|
||||
_T("del \"%s\"\r\n") // execute file name(full path)
|
||||
_T("if exist \"%s\" goto Repeat\r\n") // execute file name(full path)
|
||||
_T(":Repeat2\r\n")
|
||||
_T("rename %s %s\r\n") // first - temp file name(full path), second - execute file name only
|
||||
_T("if not exist \"%s\" goto Repeat\r\n") // execute file name(full path)
|
||||
_T("cd %s\r\n") // execute file path(full path)
|
||||
_T("%s\r\n"); // execute file name(full path)
|
||||
|
||||
static const TCHAR szTempBatName[] = "_manageclient_selfpatch.bat" ;
|
||||
|
||||
TCHAR szFullPathModuleName[MAX_PATH]; // absolute path of calling .exe file
|
||||
TCHAR szModulePath[MAX_PATH]; // Module path
|
||||
TCHAR szModuleFileName[MAX_PATH]; // fileName
|
||||
TCHAR szModuleExtension[NAX_PATH]; // extension
|
||||
TCHAR szTempBatPathName[MAX_PATH]; // absolute path of temporary .bat file
|
||||
|
||||
memset(szFullPathModuleName, 0, sizeof(TCHAR) * MAX_PATH);
|
||||
memset(szModulePath, 0, sizeof(TCHAR) * MAX_PATH);
|
||||
memset(szTempBatPathName, 0, sizeof(TCHAR) * MAX_PATH);
|
||||
|
||||
bool bFailedGetName = true;
|
||||
|
||||
unsigned long dwPathLength = GetTempPath(MAX_PATH, szTempBatPathName);
|
||||
if(0 < dwPathLength)
|
||||
{
|
||||
if(0 < _sntprintf(szTempBatPathName + dwPathLength, MAX_PATH - dwPathLength - 1,
|
||||
"%s", szTempBatName))
|
||||
{
|
||||
szTempBatPathName[MAX_PATH - 1] = 0;
|
||||
bFailedGetName = false;
|
||||
}
|
||||
}
|
||||
|
||||
const TCHAR* szErrorMessage = 0;
|
||||
|
||||
if(bFailedGetName)
|
||||
{
|
||||
szErrorMessage = _T("this:0x%p/Failed get tempbat file.");
|
||||
}
|
||||
else
|
||||
{
|
||||
dwPathLength = GetModuleFileName(NULL, szFullPathModuleName, MAX_PATH - 1);
|
||||
szFullPathModuleName[MAX_PATH - 1] = 0;
|
||||
|
||||
_tsplitpath(szFullPathModuleName, 0, 0, szModuleFileName, szModuleExtension);
|
||||
|
||||
_sntprintf(szModuleFileName, szModuleExtension
|
||||
|
||||
szModuleFileName = _tcsrchr(szFullPathModuleName, _T('\\'));
|
||||
if(0 == szModuleFileName)
|
||||
{
|
||||
szModuleFileName = _tcsrchr(szFullPathModuleName, _T('/'));
|
||||
}
|
||||
|
||||
if(0 == szModuleFileName || 0 == dwPathLength)
|
||||
{
|
||||
szErrorMessage = _T("this:0x%p/Failed get module name.");
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy(szModulePath, szFullPathModuleName,
|
||||
szModuleFileName - szFullPathModuleName);
|
||||
|
||||
szModulePath[szModuleFileName - szFullPathModuleName] = _T('\0');
|
||||
++szModuleFileName;
|
||||
|
||||
HANDLE hBatFile = CreateFile(szTempBatPathName, GENERIC_WRITE, 0, NULL,
|
||||
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL) ;
|
||||
|
||||
if (INVALID_HANDLE_VALUE == hBatFile)
|
||||
{
|
||||
szErrorMessage = _T("this:0x%p/Temp bat file create failed.");
|
||||
}
|
||||
else
|
||||
{
|
||||
DWORD dwLength = 0;
|
||||
|
||||
unsigned long dwTempBatContentLen = _tcslen(szTempBatContent);
|
||||
unsigned long dwFullPathModuleNameLen = _tcslen(szFullPathModuleName);
|
||||
unsigned long dwTempPathFileLen = _tcslen(ClientDispatch.GetTempPatchFileName());
|
||||
unsigned long dwModuleFileNameLen = _tcslen(szModuleFileName);
|
||||
unsigned long dwModulePathLen = _tcslen(szModulePath);
|
||||
|
||||
TCHAR* szBatBuffer = new TCHAR[dwTempBatContentLen +
|
||||
dwFullPathModuleNameLen * 4 +
|
||||
dwTempPathFileLen +
|
||||
dwModuleFileNameLen +
|
||||
dwModulePathLen +
|
||||
MAX_PATH];
|
||||
|
||||
int nLength = _sntprintf(szBatBuffer, MAX_PATH * 10 - 1, szTempBatContent,
|
||||
szFullPathModuleName, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
|
||||
szFullPathModuleName, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> üũ
|
||||
ClientDispatch.GetTempPatchFileName(), // <20>ӽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>
|
||||
szModuleFileName, // <20>ٲ<EFBFBD> <20≯<EFBFBD>
|
||||
szFullPathModuleName, // <20>ٲ<EFBFBD> <20≯<EFBFBD>
|
||||
szModulePath, // <20><><EFBFBD><EFBFBD> <20>̵<EFBFBD>
|
||||
szFullPathModuleName); // <20><><EFBFBD><EFBFBD>
|
||||
|
||||
if(0 < nLength)
|
||||
{
|
||||
if(!WriteFile(hBatFile, szBatBuffer, _tcslen(szBatBuffer), &dwLength, NULL))
|
||||
{
|
||||
szErrorMessage = _T("this:0x%p/Temp bat file write content failed.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
szErrorMessage = _T("this:0x%p/Temp bat file make content failed.");
|
||||
}
|
||||
|
||||
CloseHandle(hBatFile);
|
||||
|
||||
delete [] szBatBuffer;
|
||||
ShellExecute(NULL, _T("open"), szTempBatContent, NULL, NULL, SW_HIDE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(0 != szErrorMessage)
|
||||
{
|
||||
ERRLOG1(g_Log, szErrorMessage, this);
|
||||
}
|
||||
else
|
||||
{
|
||||
// <20><>ġ <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD>.
|
||||
DETLOG1(g_Log, "this:0x%p/Patch success. restart now.", this);
|
||||
PostMessage(GetWnd(), WM_DESTROY, 0, 0);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
bool CManageClient::ApplicationSpecificInit(const TCHAR* szCmdLine)
|
||||
{
|
||||
const TCHAR* szErrorMessage = 0;
|
||||
|
||||
if(!InitializeMsgProc())
|
||||
{
|
||||
szErrorMessage = _T("this:0x%p/InitializeMsgProc failed");
|
||||
}
|
||||
else if(!InitializeCommand())
|
||||
{
|
||||
szErrorMessage = _T("this:0x%p/InitializeCommand failed");
|
||||
}
|
||||
else if(!AddProcessThread(new CManageClientProcessThread(*this)))
|
||||
{
|
||||
szErrorMessage = "this:0x%p/AddProcessThread failed";
|
||||
}
|
||||
|
||||
if(0 != szErrorMessage)
|
||||
{
|
||||
ERRLOG1(g_Log, szErrorMessage, this);
|
||||
return false;
|
||||
}
|
||||
|
||||
CheckConnectionAndReconnect();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void CManageClient::PrintConnectionStatus()
|
||||
{
|
||||
const int MAX_BUFFER = 4096;
|
||||
char szBuffer[MAX_BUFFER];
|
||||
|
||||
char szFileName[MAX_PATH];
|
||||
char szExtension[MAX_PATH];
|
||||
|
||||
INET_Addr& manageServerAddr = ManageSetup::ClientSetup::GetInstance().GetManageServerAddr();
|
||||
|
||||
GET_SINGLE_DISPATCH(lpManageClientDispatch,
|
||||
CManageClientDispatch, CManageClientDispatch::GetDispatchTable());
|
||||
|
||||
int nLength = _snprintf(szBuffer, MAX_BUFFER - 1,
|
||||
"ManageClient Console\r\n\r\nManageServer IP:%s, Port:%d %s\r\n\r\n",
|
||||
manageServerAddr.get_addr_string(),
|
||||
manageServerAddr.get_port_in(),
|
||||
(0 != lpManageClientDispatch) ? "Connected" : "Disconnected");
|
||||
|
||||
int nTotalLength = 0;
|
||||
|
||||
if(0 < nLength)
|
||||
{
|
||||
if(0 != lpManageClientDispatch)
|
||||
{
|
||||
nTotalLength += nLength;
|
||||
|
||||
CManageClientDispatch::RunTable& runTable = lpManageClientDispatch->GetRunTable();
|
||||
|
||||
CManageClientDispatch::RunTable::iterator pos = runTable.begin();
|
||||
CManageClientDispatch::RunTable::iterator end = runTable.end();
|
||||
|
||||
for(; pos != end; ++pos)
|
||||
{
|
||||
const ServerManage::RunInfo& runInfo = pos->second.m_RunInfo;
|
||||
|
||||
_splitpath(runInfo.m_szPath, 0, 0, szFileName, szExtension);
|
||||
|
||||
nLength = _snprintf(szBuffer + nTotalLength, MAX_BUFFER - nTotalLength,
|
||||
"RunID:%5d / %s%s %s\r\n",
|
||||
runInfo.m_dwRunID, szFileName, szExtension, runInfo.m_szOption);
|
||||
|
||||
if(0 < nLength)
|
||||
{
|
||||
nTotalLength += nLength;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(0 < nTotalLength && nTotalLength < MAX_BUFFER)
|
||||
{
|
||||
szBuffer[nTotalLength] = 0;
|
||||
PrintInfo(szBuffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
35
Server/ManageTool/ManageClient/ManageClient.h
Normal file
35
Server/ManageTool/ManageClient/ManageClient.h
Normal file
@@ -0,0 +1,35 @@
|
||||
#ifndef _RYL_GM_NETWORK_MANAGE_CLIENT_H_
|
||||
#define _RYL_GM_NETWORK_MANAGE_CLIENT_H_
|
||||
|
||||
#include <Utility/ServerAppFramework/ServerWindowFramework.h>
|
||||
|
||||
// forward decl.
|
||||
class CSessionPolicy;
|
||||
class CManageClientDispatch;
|
||||
|
||||
class CManageClient : public CServerWindowFramework
|
||||
{
|
||||
public:
|
||||
|
||||
static CManageClient& GetInstance();
|
||||
|
||||
void CheckConnectionAndReconnect();
|
||||
void ConnectToManageServer();
|
||||
void DoSelfPatchProcess(CManageClientDispatch& ClientDispatch);
|
||||
|
||||
void PrintConnectionStatus();
|
||||
|
||||
private:
|
||||
|
||||
CManageClient();
|
||||
virtual ~CManageClient();
|
||||
|
||||
virtual bool ApplicationSpecificInit(const TCHAR* szCmdLine);
|
||||
bool InitializeMsgProc();
|
||||
bool InitializeCommand();
|
||||
|
||||
CSessionPolicy* m_lpClientSessionPolicy;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
BIN
Server/ManageTool/ManageClient/ManageClient.ico
Normal file
BIN
Server/ManageTool/ManageClient/ManageClient.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.6 KiB |
97
Server/ManageTool/ManageClient/ManageClient.rc
Normal file
97
Server/ManageTool/ManageClient/ManageClient.rc
Normal file
@@ -0,0 +1,97 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#define APSTUDIO_HIDDEN_SYMBOLS
|
||||
#include "windows.h"
|
||||
#undef APSTUDIO_HIDDEN_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// <20>ѱ<EFBFBD><D1B1><EFBFBD> resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
#pragma code_page(949)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_SMALL ICON "small.ico"
|
||||
IDI_MANAGECLIENT ICON "ManageClient.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Menu
|
||||
//
|
||||
|
||||
IDC_MANAGECLIENT MENU
|
||||
BEGIN
|
||||
POPUP "ManageClient"
|
||||
BEGIN
|
||||
MENUITEM "Open Console(&O)", ID_MANAGECLIENT_OPEN_CONSOLE
|
||||
MENUITEM "Close Console(&C)", ID_MANAGECLIENT_CLOSE_CONSOLE
|
||||
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Reload Setup(&R)", ID_MANAGECLIENT_RELOADSETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Exit(&E)", IDM_EXIT
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"#include ""windows.h""\r\n"
|
||||
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // <20>ѱ<EFBFBD><D1B1><EFBFBD> resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
176
Server/ManageTool/ManageClient/ManageClient.vcproj
Normal file
176
Server/ManageTool/ManageClient/ManageClient.vcproj
Normal file
@@ -0,0 +1,176 @@
|
||||
<?xml version="1.0" encoding="ks_c_5601-1987"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="ManageClient"
|
||||
ProjectGUID="{1B7E2874-2F79-4399-ABA5-512ABF1120F6}"
|
||||
Keyword="Win32Proj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="../Executable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="./;../;../../RylServerProject/BaseLibrary;../../RylServerProject/RylServerLibrary;../ManageLibrary"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="FALSE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/ManageClient.exe"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/ManageClient.pdb"
|
||||
SubSystem="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="../Executable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="./;../;../../RylServerProject/BaseLibrary;../../RylServerProject/RylServerLibrary;../ManageLibrary"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="FALSE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/ManageClient.exe"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="<22>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
||||
<File
|
||||
RelativePath=".\ManageClient.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ManageClientCommand.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ManageClientMsg.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
||||
<File
|
||||
RelativePath=".\ManageClient.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Resource.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="<22><><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
||||
<File
|
||||
RelativePath=".\ManageClient.ico">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ManageClient.rc">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\small.ico">
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\ReadMe.txt">
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
63
Server/ManageTool/ManageClient/ManageClientCommand.cpp
Normal file
63
Server/ManageTool/ManageClient/ManageClientCommand.cpp
Normal file
@@ -0,0 +1,63 @@
|
||||
#include "stdafx.h"
|
||||
#include "ManageClient.h"
|
||||
#include <Log/ServerLog.h>
|
||||
#include <Setup/SetupClient.h>
|
||||
#include <Utility/ServerAppFrameWork/ConsoleWindow/ConsoleCMDFactory.h>
|
||||
|
||||
#include <Network/Session/Session.h>
|
||||
#include <Network/Dispatch/ManageClient/ManageClientDispatch.h>
|
||||
|
||||
|
||||
class CCMDPrintLog : public CConsoleCMDSingleton<CCMDPrintLog>
|
||||
{
|
||||
protected:
|
||||
virtual bool DoProcess()
|
||||
{
|
||||
SERLOG0(g_Log, "Flush log.");
|
||||
SERLOG0(g_SessionLog, "Flush log");
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
class CCMDReloadSetup : public CConsoleCMDSingleton<CCMDReloadSetup>
|
||||
{
|
||||
protected:
|
||||
virtual bool DoProcess()
|
||||
{
|
||||
ManageSetup::ClientSetup::GetInstance().Load();
|
||||
|
||||
GET_SINGLE_DISPATCH(lpManageClientDispatch,
|
||||
CManageClientDispatch, CManageClientDispatch::GetDispatchTable());
|
||||
|
||||
if(0 != lpManageClientDispatch)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>õ<EFBFBD><C3B5>Ѵ<EFBFBD>.
|
||||
lpManageClientDispatch->GetSession().Shutdown();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
bool CManageClient::InitializeCommand()
|
||||
{
|
||||
#define INIT_COMMAND_FAILED(detail) TEXT("Command create failed - "##detail)
|
||||
|
||||
#define ADD_COMMAND(cmdstring, cmdobject, errmsg_val) \
|
||||
if(0 == (errmsg_val) && !GetCommandFactory()->AddCommand(cmdstring, new cmdobject)) { \
|
||||
(errmsg_val) = INIT_COMMAND_FAILED(cmdstring); }
|
||||
|
||||
const TCHAR* szErrorMessage = 0;
|
||||
|
||||
ADD_COMMAND("flush", CCMDPrintLog, szErrorMessage);
|
||||
ADD_COMMAND("reload", CCMDReloadSetup, szErrorMessage);
|
||||
|
||||
if(0 != szErrorMessage)
|
||||
{
|
||||
ERRLOG0(g_Log, szErrorMessage);
|
||||
return false;
|
||||
};
|
||||
|
||||
return true;
|
||||
}
|
||||
120
Server/ManageTool/ManageClient/ManageClientMsg.cpp
Normal file
120
Server/ManageTool/ManageClient/ManageClientMsg.cpp
Normal file
@@ -0,0 +1,120 @@
|
||||
#include "stdafx.h"
|
||||
#include "Resource.h"
|
||||
#include "ManageClient.h"
|
||||
#include <Utility/ServerAppFramework/MsgProc/MsgProc.h>
|
||||
#include <Utility/ServerAppFramework/ConsoleWindow/ConsoleWindow.h>
|
||||
#include <Utility/ServerAppFramework/ConsoleWindow/ConsoleCMDFactory.h>
|
||||
#include <Network/Dispatch/ManageClient/ManageClientDispatch.h>
|
||||
|
||||
#include <Network/Dispatch/SendManagePacket.h>
|
||||
|
||||
#include <Log/ServerLog.h>
|
||||
|
||||
class CIPCMessage : public CMsgProc
|
||||
{
|
||||
private:
|
||||
|
||||
virtual LRESULT operator () (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
GET_SINGLE_DISPATCH(lpManageClientDispatch,
|
||||
CManageClientDispatch, CManageClientDispatch::GetDispatchTable());
|
||||
|
||||
if(0 != lpManageClientDispatch && 0 != lParam)
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD>.
|
||||
COPYDATASTRUCT& copyDataStruct = *reinterpret_cast<PCOPYDATASTRUCT>(lParam);
|
||||
ServerManage::PktManagePacket* lpPktManage =
|
||||
reinterpret_cast<ServerManage::PktManagePacket*>(copyDataStruct.lpData);
|
||||
|
||||
ServerManage::PktManagePing* lpPktManagePing =
|
||||
static_cast<ServerManage::PktManagePing*>(lpPktManage);
|
||||
|
||||
unsigned long dwRunID = 0;
|
||||
|
||||
if(ServerManage::CMD::IPC_ManagePing == lpPktManage->GetCmd()
|
||||
&& copyDataStruct.cbData == sizeof(ServerManage::PktManagePing)
|
||||
&& lpManageClientDispatch->GetRunIDFromString(
|
||||
lpPktManagePing->m_szAppFullPathName, lpPktManagePing->m_szCommandLine, dwRunID))
|
||||
{
|
||||
HWND hWnd = FindWindow(lpPktManagePing->m_szWindowName,
|
||||
lpPktManagePing->m_szWindowName);
|
||||
|
||||
if(0 != hWnd)
|
||||
{
|
||||
lpManageClientDispatch->SetAppData(dwRunID,
|
||||
hWnd, lpPktManage->m_dwPID, lpPktManagePing->m_dwStatusFlag);
|
||||
}
|
||||
}
|
||||
else if(lpManageClientDispatch->GetRunIDFromPID(lpPktManage->m_dwPID, dwRunID))
|
||||
{
|
||||
ServerManage::SendManagePacket(lpManageClientDispatch->GetSession(),
|
||||
ServerManage::CMD::RelayCommand, WM_COPYDATA, wParam, 0, dwRunID,
|
||||
static_cast<unsigned short>(copyDataStruct.cbData), 0, copyDataStruct.lpData, 0);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
class CProcessCommandMessage : public CMsgProc
|
||||
{
|
||||
public:
|
||||
|
||||
CProcessCommandMessage(CManageClient& ManageClient) : m_ManageClient(ManageClient) { }
|
||||
|
||||
private:
|
||||
|
||||
virtual LRESULT operator () (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
char* szCommand = 0;
|
||||
|
||||
CConsoleWindow* lpConsoleWindow = m_ManageClient.GetConsoleWindow();
|
||||
if(0 == lpConsoleWindow)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case ID_MANAGECLIENT_OPEN_CONSOLE: lpConsoleWindow->Initialize("ROWManageClient"); break;
|
||||
case ID_MANAGECLIENT_CLOSE_CONSOLE: lpConsoleWindow->Destroy(); break;
|
||||
case ID_MANAGECLIENT_RELOADSETUP: szCommand = "reload"; break;
|
||||
}
|
||||
|
||||
if(0 != szCommand)
|
||||
{
|
||||
lpConsoleWindow->GetCMDProcess().Add(
|
||||
lpConsoleWindow->GetConsoleCMDFactory().Create(szCommand, strlen(szCommand)));
|
||||
}
|
||||
|
||||
if(LOWORD(wParam) == IDM_EXIT)
|
||||
{
|
||||
DETLOG0(g_Log, "Terminate ManageServer System Tray.");
|
||||
PostMessage(hWnd, WM_QUIT, 0, 0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
CManageClient& m_ManageClient;
|
||||
};
|
||||
|
||||
bool CManageClient::InitializeMsgProc()
|
||||
{
|
||||
CMsgProcessMgr* lpMsgProcessMgr = GetMsgProcessMgr();
|
||||
if(0 == lpMsgProcessMgr)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
int nErrorCount = 0;
|
||||
|
||||
lpMsgProcessMgr->Remove(WM_COPYDATA);
|
||||
|
||||
nErrorCount += lpMsgProcessMgr->Register(WM_COPYDATA, new CIPCMessage) ? 0 : 1;
|
||||
nErrorCount += lpMsgProcessMgr->Register(WM_COMMAND, new CProcessCommandMessage(*this)) ? 0 : 1;
|
||||
|
||||
return 0 == nErrorCount;
|
||||
}
|
||||
53
Server/ManageTool/ManageClient/ReadMe.txt
Normal file
53
Server/ManageTool/ManageClient/ReadMe.txt
Normal file
@@ -0,0 +1,53 @@
|
||||
========================================================================
|
||||
Win32 <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> : ManageClient <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
||||
========================================================================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1> <20><> ManageClient <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD> ManageClient <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ԵǾ<D4B5> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
|
||||
|
||||
ManageClient.vcproj
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>縦 <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> VC++ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>⺻ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
<20>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Visual C++<2B><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD>ɿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
|
||||
ManageClient.cpp
|
||||
<20>⺻ <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
|
||||
ManageClient.rc
|
||||
<20><><EFBFBD>α<CEB1><D7B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
Microsoft Windows <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>. RES <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>Ʈ<EFBFBD><C6AE>, <20><> Ŀ<><C4BF> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>Ե˴ϴ<CBB4>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
|
||||
Resource.h
|
||||
<20><> <20><><EFBFBD>ҽ<EFBFBD> ID<49><44> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>а<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD>մϴ<D5B4>.
|
||||
ManageClient.ico
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(32x32)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>˴ϴ<CBB4>.
|
||||
<20>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⺻ <20><><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ManageClient.rc<72><63> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ե˴ϴ<CBB4>.
|
||||
|
||||
small.ico
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(16x16)<29><>
|
||||
<20><><EFBFBD><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>. <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⺻ <20><><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ManageClient.rc<72><63> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ե˴ϴ<CBB4>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
<EFBFBD><EFBFBD>Ÿ ǥ<><C7A5> <20><><EFBFBD><EFBFBD>:
|
||||
|
||||
StdAfx.h <20><> StdAfx.cpp<70><70>
|
||||
ManageClient.pch<63><68><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> PCH(<28≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD>) <20><><EFBFBD>ϰ<EFBFBD>
|
||||
StdAfx.obj<62><6A><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>˴ϴ<CBB4>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
<EFBFBD><EFBFBD>Ÿ <20><><EFBFBD><EFBFBD>:
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> "TODO:" <20>ּ<EFBFBD><D6BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20>߰<EFBFBD><DFB0>ϰų<CFB0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>ϴ<EFBFBD>
|
||||
<EFBFBD>ҽ<EFBFBD> <20>ڵ<EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD> <20><>Ÿ<EFBFBD><C5B8><EFBFBD>ϴ<EFBFBD>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
30
Server/ManageTool/ManageClient/resource.h
Normal file
30
Server/ManageTool/ManageClient/resource.h
Normal file
@@ -0,0 +1,30 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by ManageClient.rc
|
||||
//
|
||||
#define IDC_MYICON 2
|
||||
#define IDD_MANAGECLIENT_DIALOG 102
|
||||
#define IDS_APP_TITLE 103
|
||||
#define IDM_ABOUT 104
|
||||
#define IDM_EXIT 105
|
||||
#define IDI_SMALL 108
|
||||
#define IDC_MANAGECLIENT 109
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDI_ICON1 129
|
||||
#define IDI_MANAGECLIENT 129
|
||||
#define ID_MANAGECLIENT_RELOADSETUP 32771
|
||||
#define ID_MANAGECLIENT_CLOSE_CONSOLE 32774
|
||||
#define ID_MANAGECLIENT_OPEN_CONSOLE 32775
|
||||
#define IDC_STATIC -1
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NO_MFC 1
|
||||
#define _APS_NEXT_RESOURCE_VALUE 130
|
||||
#define _APS_NEXT_COMMAND_VALUE 32776
|
||||
#define _APS_NEXT_CONTROL_VALUE 1000
|
||||
#define _APS_NEXT_SYMED_VALUE 110
|
||||
#endif
|
||||
#endif
|
||||
BIN
Server/ManageTool/ManageClient/small.ico
Normal file
BIN
Server/ManageTool/ManageClient/small.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
8
Server/ManageTool/ManageClient/stdafx.cpp
Normal file
8
Server/ManageTool/ManageClient/stdafx.cpp
Normal file
@@ -0,0 +1,8 @@
|
||||
// stdafx.cpp : ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
// ManageClient.pch<63><68> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˴ϴ<CBB4>.
|
||||
// stdafx.obj<62><6A><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ե˴ϴ<CBB4>.
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
// TODO: <20>ʿ<EFBFBD><CABF><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD> STDAFX.H<><48><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
18
Server/ManageTool/ManageClient/stdafx.h
Normal file
18
Server/ManageTool/ManageClient/stdafx.h
Normal file
@@ -0,0 +1,18 @@
|
||||
// stdafx.h : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD>
|
||||
// ǥ<><C7A5> <20>ý<EFBFBD><C3BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
// Windows <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
#include <windows.h>
|
||||
// C<><43> <20><>Ÿ<EFBFBD><C5B8> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
#include <stdlib.h>
|
||||
#include <malloc.h>
|
||||
#include <memory.h>
|
||||
#include <tchar.h>
|
||||
|
||||
// TODO: <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2BFA1> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
Reference in New Issue
Block a user