Przeglądaj źródła

进程通信完善

JeffWang 3 lat temu
rodzic
commit
3cffe79cab

+ 8 - 2
Source/OGCAssist/OGCAssist/OGCAssist.cpp

@@ -20,6 +20,7 @@ namespace Assist
 	CALLDATA _cd_Initial_failed;
 	CALLDATA _cd_Initial_failed;
 	CALLDATA _cd_ExternalException;
 	CALLDATA _cd_ExternalException;
 	BOOL bConnectStatus = FALSE;
 	BOOL bConnectStatus = FALSE;
+	BOOL bHijacked = FALSE;
 
 
 	// 调试耗时值ms;
 	// 调试耗时值ms;
 	DWORD dwElapsed = 0;
 	DWORD dwElapsed = 0;
@@ -230,7 +231,7 @@ namespace Assist
 			goto end;
 			goto end;
 
 
 end:
 end:
-		return bHijack;
+		return (bHijacked = bHijack);
 	}
 	}
 
 
 	BOOL RestoreAllCall()
 	BOOL RestoreAllCall()
@@ -264,7 +265,7 @@ end:
 			goto end;
 			goto end;
 
 
 end:
 end:
-		return bRestor;
+		return ( bHijacked = !bRestor );
 	}
 	}
 
 
 	// 劫持原始地址;
 	// 劫持原始地址;
@@ -511,11 +512,13 @@ namespace Assist
 		BYTE AL = LOBYTE(LOWORD(dwEAX));
 		BYTE AL = LOBYTE(LOWORD(dwEAX));
 		if ( AL == 0 )
 		if ( AL == 0 )
 		{
 		{
+			bConnectStatus = FALSE;
 			MessageBox(NULL, _T("连接失败"), _T("连接提示"), MB_OK);
 			MessageBox(NULL, _T("连接失败"), _T("连接提示"), MB_OK);
 			return FALSE;
 			return FALSE;
 		}
 		}
 		else
 		else
 		{
 		{
+			bConnectStatus = TRUE;
 			MessageBox(NULL, _T("连接成功"), _T("连接提示"), MB_OK);
 			MessageBox(NULL, _T("连接成功"), _T("连接提示"), MB_OK);
 		}
 		}
 
 
@@ -553,6 +556,8 @@ namespace Assist
 
 
 	void MyExternalException()
 	void MyExternalException()
 	{
 	{
+		// 产生异常,设置为未连接;
+		bConnectStatus = FALSE;
 		MessageBox(NULL, _T("MyExternalExceptionE06D7363,重启异常待重启"), _T("提示"), MB_OK);
 		MessageBox(NULL, _T("MyExternalExceptionE06D7363,重启异常待重启"), _T("提示"), MB_OK);
 		// 向服务器发送消息;
 		// 向服务器发送消息;
 		::exit(0);
 		::exit(0);
@@ -579,6 +584,7 @@ namespace Assist
 
 
 	void MyDisconnect()
 	void MyDisconnect()
 	{
 	{
+		bConnectStatus = FALSE;
 		MessageBox(NULL, _T("MyDisconnect Function"), _T("MyDisconnect"), MB_OK);
 		MessageBox(NULL, _T("MyDisconnect Function"), _T("MyDisconnect"), MB_OK);
 		// 向服务器发送消息;
 		// 向服务器发送消息;
 	}
 	}

+ 2 - 0
Source/OGCAssist/OGCAssist/OGCAssist.h

@@ -9,6 +9,8 @@ namespace Assist
 {
 {
 	// 按钮Connect状态(True=连接中, False=未连接)
 	// 按钮Connect状态(True=连接中, False=未连接)
 	extern BOOL bConnectStatus;
 	extern BOOL bConnectStatus;
+	// 劫持状态;
+	extern BOOL bHijacked;
 	typedef struct __CALL_DATA__
 	typedef struct __CALL_DATA__
 	{
 	{
 		LPVOID  myCall;                             // 自定义的地址;
 		LPVOID  myCall;                             // 自定义的地址;

+ 2 - 0
Source/OGCAssist/OGCAssist/OGCAssist.vcproj

@@ -25,6 +25,7 @@
 			>
 			>
 			<Tool
 			<Tool
 				Name="VCPreBuildEventTool"
 				Name="VCPreBuildEventTool"
+				CommandLine=""
 			/>
 			/>
 			<Tool
 			<Tool
 				Name="VCCustomBuildTool"
 				Name="VCCustomBuildTool"
@@ -85,6 +86,7 @@
 			/>
 			/>
 			<Tool
 			<Tool
 				Name="VCPostBuildEventTool"
 				Name="VCPostBuildEventTool"
+				CommandLine="copy $(OutDir)\$(TargetFileName) ..\..\..\..\bin\OGCAssistTool\$(TargetFileName)"
 			/>
 			/>
 		</Configuration>
 		</Configuration>
 		<Configuration
 		<Configuration

+ 115 - 19
Source/OGCAssist/OGCAssist/PipeClient.cpp

@@ -1,6 +1,7 @@
 #include "StdAfx.h"
 #include "StdAfx.h"
 #include "PipeClient.h"
 #include "PipeClient.h"
 #include "Utility.h"
 #include "Utility.h"
+#include "OGCAssist.h"
 
 
 std::string CPipeClient::m_LastData;
 std::string CPipeClient::m_LastData;
 PER_IO_CONTEXT CPipeClient::m_IoRead;
 PER_IO_CONTEXT CPipeClient::m_IoRead;
@@ -96,18 +97,37 @@ DWORD CPipeClient::ConnectThread(LPVOID lpParam)
             }
             }
 
 
 #pragma region 向服务端发送消息:劫持状态+按钮状态;			
 #pragma region 向服务端发送消息:劫持状态+按钮状态;			
-			MSG_INFO msg_info;
-			msg_info.dwClientId = GetCurrentProcessId();
-			_stprintf(msg_info.szClientName, _T("%s"), _T("OGCAssist"));
-			msg_info.byResult = TRUE;
-			_stprintf((TCHAR*)msg_info.byData, _T("%s"), _T("OGCAssist dfdfdfdfdfdfdfdfdf"));
-
-			PACKAGE pak;
-			pak.header.byMsgType = C2S_CONNECT;
-			pak.header.dwPackageLen = sizeof(DATAHEADER) + sizeof(MSG_INFO);
-			pak.buf = &msg_info;
+			{
+				MSG_INFO msg;
+				msg.dwClientId = GetCurrentProcessId();
+				_stprintf(msg.szClientName, _T("%s"), _T("OGCAssist"));
+				// 连接状态;
+				msg.byResult = Assist::bConnectStatus;
+				_stprintf((TCHAR*)msg.byData, _T("%s"), _T("OGCAssist Connect"));
+
+				DATAHEADER head;
+				head.byMsgType = C2S_CONNECT;
+				head.dwPackageLen = sizeof(DATAHEADER) + sizeof(MSG_INFO);
+
+				pInstance->SendPackage(head, msg);
+			}
+#pragma endregion
 
 
-			pInstance->SendPackage(pak);			
+#pragma region 通知服务端劫持状态;
+			{
+				MSG_INFO msg;
+				msg.dwClientId = GetCurrentProcessId();
+				_stprintf(msg.szClientName, _T("%s"), _T("OGCAssist"));
+				// 劫持状态;
+				msg.byResult = Assist::bHijacked;
+				_stprintf((TCHAR*)msg.byData, _T("%s"), _T("OGCAssist Hijact"));
+
+				DATAHEADER head;				
+				head.byMsgType = C2S_INJECT;
+				head.dwPackageLen = sizeof(DATAHEADER) + sizeof(MSG_INFO);
+
+				Utility::g_pPipeClient->SendPackage(head, msg);
+			}
 #pragma endregion
 #pragma endregion
         }
         }
         else
         else
@@ -146,7 +166,7 @@ DWORD CPipeClient::ReadMsgThread(LPVOID lpParam)
         if ( bSuccess )
         if ( bSuccess )
         {
         {
             // 打印结果;
             // 打印结果;
-            Utility::dprintf(_T("读取数据:Error=%ld, Len=%ld, Data=%s\n"), dwError, m_IoRead.m_Overlapped.InternalHigh, m_IoRead.szBuffer);
+            //Utility::dprintf(_T("读取数据:Error=%ld, Len=%ld, Data=%s\n"), dwError, m_IoRead.m_Overlapped.InternalHigh, m_IoRead.szBuffer);
             // 处理结果;
             // 处理结果;
         } 
         } 
         else
         else
@@ -162,16 +182,21 @@ DWORD CPipeClient::ReadMsgThread(LPVOID lpParam)
             else
             else
             {
             {
                 // 打印结果;
                 // 打印结果;
-                Utility::dprintf(_T("读取数据:Error=%ld, Len=%ld, Data=%s\n"), dwError, m_IoRead.m_Overlapped.InternalHigh, m_IoRead.szBuffer);
+				bSuccess = TRUE;
+                //Utility::dprintf(_T("读取数据:Error=%ld, Len=%ld, Data=%s\n"), dwError, m_IoRead.m_Overlapped.InternalHigh, m_IoRead.szBuffer);
                 // 处理结果;
                 // 处理结果;
             }
             }
         }
         }
 
 
-		DATAHEADER header;
-		MSG_INFO msg_info;
-		memcpy(&header, m_IoRead.szBuffer, sizeof(DATAHEADER));
-		memcpy(&msg_info, m_IoRead.szBuffer+sizeof(DATAHEADER), sizeof(MSG_INFO));
-
+		if ( bSuccess )
+		{
+			DATAHEADER header;
+			MSG_INFO msg_info;
+			memcpy(&header, m_IoRead.szBuffer, sizeof(DATAHEADER));
+			memcpy(&msg_info, m_IoRead.szBuffer+sizeof(DATAHEADER), sizeof(MSG_INFO));
+			HandleMsg(header, msg_info);
+		}
+		
         // 重置Buffer;
         // 重置Buffer;
         memset(m_IoRead.szBuffer, 0, BUFSIZE);
         memset(m_IoRead.szBuffer, 0, BUFSIZE);
 #else // 分配的缓冲区,不足以一次性存储C/S两端的通信内容时;
 #else // 分配的缓冲区,不足以一次性存储C/S两端的通信内容时;
@@ -296,12 +321,83 @@ BOOL CPipeClient::WaitFinish(HANDLE hPipe, PER_IO_CONTEXT *pIoContext)
 	return TRUE;
 	return TRUE;
 }
 }
 
 
+void CPipeClient::HandleMsg(DATAHEADER &head, MSG_INFO &msg)
+{
+	if ( head.byProtocol != 0xAC )
+	{
+
+	}
+
+	if ( head.dwPackageLen != (sizeof(DATAHEADER)+sizeof(MSG_INFO)) )
+	{
+
+	}
+
+	if ( msg.dwClientId != GetCurrentProcessId() )
+	{
+
+	}
+
+	if ( _tcscmp(msg.szClientName, _T("OGCAssist")) != 0 )
+	{
+
+	}
+
+	Utility::dprintf(_T("接收到服务端消息:Result=%d, Tpye=%d, Proctocl=%d, Len=%ld, Name=%s, Id=%ld, Data=%s"), 
+		msg.byResult,
+		head.byMsgType, 
+		head.byProtocol, 
+		head.dwPackageLen, 
+		msg.szClientName,
+		msg.dwClientId,
+		msg.byData
+		);
+
+	// 正常处理流程;
+	switch(head.byMsgType)
+	{
+	case S2C_INJECT:		// 劫持dll;
+		break;
+	case S2C_EJECT:			// 恢复dll;
+		break;
+	case S2C_CONNECT:		// 触发connect按钮;
+		break;
+	case S2C_DISCONNECT:	// 触发disconnect按钮;
+		break;
+	case S2C_CHECKFW:		// 触发checkfw按钮;
+		break;
+	case S2C_GO:			// 触发go按钮;
+		break;
+	default:
+		break;
+	}
+}
+
 BOOL CPipeClient::SendPackage(PACKAGE &pak)
 BOOL CPipeClient::SendPackage(PACKAGE &pak)
 {
 {
 	std::string data;
 	std::string data;
 	data.append((char*)&pak.header, sizeof(DATAHEADER));
 	data.append((char*)&pak.header, sizeof(DATAHEADER));
 	//data.append((char*)(MSG_INFO*)pak.buf, sizeof(MSG_INFO));
 	//data.append((char*)(MSG_INFO*)pak.buf, sizeof(MSG_INFO));
 	data.append((char*)pak.buf, sizeof(MSG_INFO));
 	data.append((char*)pak.buf, sizeof(MSG_INFO));
+
+	return SendData((LPBYTE)data.data(), data.size());
+}
+
+BOOL CPipeClient::SendPackage(DATAHEADER &head, MSG_INFO &msg)
+{
+	std::string data;
+	data.append((char*)&head, sizeof(DATAHEADER));
+	//data.append((char*)(MSG_INFO*)pak.buf, sizeof(MSG_INFO));
+	data.append((char*)&msg, sizeof(MSG_INFO));
+	Utility::dprintf(_T("发送消息:Result=%d, Tpye=%d, Proctocl=%d, Len=%ld, Name=%s, Id=%ld, Data=%s"), 
+		msg.byResult,
+		head.byMsgType, 
+		head.byProtocol, 
+		head.dwPackageLen, 
+		msg.szClientName,
+		msg.dwClientId,
+		msg.byData
+		);
 	return SendData((LPBYTE)data.data(), data.size());
 	return SendData((LPBYTE)data.data(), data.size());
 }
 }
 
 
@@ -316,7 +412,7 @@ BOOL CPipeClient::SendData(LPBYTE lpData, DWORD dwDataLen)
 	// 发送数据使用同步模式;
 	// 发送数据使用同步模式;
 	DWORD dwNumberOfBytesWritten = 0;
 	DWORD dwNumberOfBytesWritten = 0;
 	BOOL fWrite = WriteFile(m_hPipeInst, lpData, dwDataLen, &dwNumberOfBytesWritten, NULL);
 	BOOL fWrite = WriteFile(m_hPipeInst, lpData, dwDataLen, &dwNumberOfBytesWritten, NULL);
-	Utility::dprintf(_T("SendData:Error=%ld, %s\n"), GetLastError(), lpData);
+	Utility::dprintf(_T("SendData:Error=%ld, %d\n"), GetLastError(), fWrite);
 
 
 	return fWrite;
 	return fWrite;
 }
 }

+ 6 - 0
Source/OGCAssist/OGCAssist/PipeClient.h

@@ -48,6 +48,7 @@ private:
 
 
 	static std::string m_LastData;
 	static std::string m_LastData;
 	static PER_IO_CONTEXT m_IoRead;
 	static PER_IO_CONTEXT m_IoRead;
+	// Write使用同步方式;
 	static PER_IO_CONTEXT m_IoWrite;
 	static PER_IO_CONTEXT m_IoWrite;
 public:
 public:
     BOOL StartWork();
     BOOL StartWork();
@@ -58,7 +59,12 @@ public:
     static DWORD WINAPI ReadMsgThread(LPVOID lpParam);
     static DWORD WINAPI ReadMsgThread(LPVOID lpParam);
 	// 等待重叠IO完成;
 	// 等待重叠IO完成;
 	static BOOL WaitFinish(HANDLE hPipe, PER_IO_CONTEXT *pIoContext);
 	static BOOL WaitFinish(HANDLE hPipe, PER_IO_CONTEXT *pIoContext);
+	// 处理消息;
+	static void HandleMsg(DATAHEADER &head, MSG_INFO &msg);
 	// 发送消息给服务端;
 	// 发送消息给服务端;
 	BOOL SendPackage(PACKAGE &pak);
 	BOOL SendPackage(PACKAGE &pak);
+	BOOL SendPackage(DATAHEADER &head, MSG_INFO &msg);
+
+protected:
 	BOOL SendData(LPBYTE lpData, DWORD dwDataLen);
 	BOOL SendData(LPBYTE lpData, DWORD dwDataLen);
 };
 };

+ 26 - 22
Source/OGCAssist/OGCAssist/Protocol.h

@@ -9,9 +9,9 @@ typedef enum
 {
 {
 	//////////////////////////////////////////////////////////////////////////
 	//////////////////////////////////////////////////////////////////////////
 	// 服务端:发出劫持消息;		客户端返回:成功/失败
 	// 服务端:发出劫持消息;		客户端返回:成功/失败
-	S2C_BEGIN_HIJACK,
+	S2C_INJECT,
 	// 服务端:发出恢复消息;		客户端返回:成功/失败;
 	// 服务端:发出恢复消息;		客户端返回:成功/失败;
-	S2C_END_HIJACK,
+	S2C_EJECT,
 	//\ 服务端:发出Connect消息;		客户端返回:成功/失败;
 	//\ 服务端:发出Connect消息;		客户端返回:成功/失败;
 	S2C_CONNECT,
 	S2C_CONNECT,
 	//\ 服务端:发出Disconnect消息;		客户端返回:成功/失败;
 	//\ 服务端:发出Disconnect消息;		客户端返回:成功/失败;
@@ -22,6 +22,10 @@ typedef enum
 	S2C_GO,
 	S2C_GO,
 
 
 	//////////////////////////////////////////////////////////////////////////
 	//////////////////////////////////////////////////////////////////////////
+	// 客户端:响应服务器S2C_INJECT;
+	C2S_INJECT,
+	// 客户端:响应服务器S2C_INJECT;
+	C2S_EJECT,
 	// 客户端:发出Disconnect触发结果;
 	// 客户端:发出Disconnect触发结果;
 	C2S_DISCONNECT,
 	C2S_DISCONNECT,
 	// 客户端:发出Connect触发结果;成功/失败;
 	// 客户端:发出Connect触发结果;成功/失败;
@@ -34,6 +38,25 @@ typedef enum
 	C2S_EXCEPTION,
 	C2S_EXCEPTION,
 };
 };
 
 
+typedef struct _MSG_INFO_
+{
+	// 客户端ID;
+	DWORD	dwClientId;
+	// 客户端名称;
+	TCHAR	szClientName[NAME_LEN];
+	// 按钮执行结果;
+	BYTE	byResult;
+	// 按钮数据;
+	BYTE	byData[DATA_LEN];
+	_MSG_INFO_()
+	{
+		byResult = 0;
+		dwClientId = 0;
+		memset(byData, 0, DATA_LEN);
+		memset(szClientName, 0, sizeof(TCHAR)*NAME_LEN);
+	}
+}MSG_INFO,*LPMSG_INFO;
+
 typedef struct _HEADER_
 typedef struct _HEADER_
 {
 {
 	// 协议标识符;
 	// 协议标识符;
@@ -45,7 +68,7 @@ typedef struct _HEADER_
 	_HEADER_()
 	_HEADER_()
 	{
 	{
 		byProtocol = 0xAC;
 		byProtocol = 0xAC;
-		dwPackageLen = 0;
+		dwPackageLen = sizeof(_HEADER_) + sizeof(MSG_INFO);
 		byMsgType = 0;
 		byMsgType = 0;
 	}
 	}
 }DATAHEADER, *LPDATAHEADER;
 }DATAHEADER, *LPDATAHEADER;
@@ -57,24 +80,5 @@ typedef struct _PACKAGE_ {
 	LPVOID		buf;
 	LPVOID		buf;
 }PACKAGE, *LPPACKAGE;
 }PACKAGE, *LPPACKAGE;
 
 
-typedef struct _MSG_INFO_
-{
-	// 客户端ID;
-	DWORD	dwClientId;
-	// 客户端名称;
-	TCHAR	szClientName[NAME_LEN];
-	// 按钮执行结果;
-	BYTE	byResult;
-	// 按钮数据;
-	BYTE	byData[DATA_LEN];
-	_MSG_INFO_()
-	{
-		byResult = 0;
-		dwClientId = 0;
-		memset(byData, 0, DATA_LEN);
-		memset(szClientName, 0, sizeof(TCHAR)*NAME_LEN);
-	}
-}MSG_INFO,*LPMSG_INFO;
-
 #pragma pack(pop)
 #pragma pack(pop)
 #pragma endregion 简单通信协议
 #pragma endregion 简单通信协议

+ 2 - 2
Source/OGCAssist/OGCAssist/Utility.cpp

@@ -69,9 +69,9 @@ namespace Utility
         struct tm gmtm = { 0 };
         struct tm gmtm = { 0 };
         localtime_s(&gmtm, &gmt); // ʱ¼ä´Áת³É±¾µØÊ±¼ä;
         localtime_s(&gmtm, &gmt); // ʱ¼ä´Áת³É±¾µØÊ±¼ä;
 #if _MSC_VER >= 1200 && _MSC_VER < 1500
 #if _MSC_VER >= 1200 && _MSC_VER < 1500
-        sprintf(szData, _T("[Assist] %04d-%02d-%02d %02d:%02d:%02d "), gmtm.tm_year + 1900, gmtm.tm_mon + 1, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min, gmtm.tm_sec);
+        sprintf(szData, _T("[Assist-Client] %04d-%02d-%02d %02d:%02d:%02d "), gmtm.tm_year + 1900, gmtm.tm_mon + 1, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min, gmtm.tm_sec);
 #else
 #else
-        _stprintf_s(szData, _T("[Assist] %04d-%02d-%02d %02d:%02d:%02d "), gmtm.tm_year + 1900, gmtm.tm_mon + 1, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min, gmtm.tm_sec);
+        _stprintf_s(szData, _T("[Assist-Client] %04d-%02d-%02d %02d:%02d:%02d "), gmtm.tm_year + 1900, gmtm.tm_mon + 1, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min, gmtm.tm_sec);
 #endif
 #endif
         int len = _tcslen(szData);
         int len = _tcslen(szData);
         va_list args;
         va_list args;

+ 1 - 5
Source/OGCAssist/OGCAssist/dllmain.cpp

@@ -14,11 +14,7 @@ DWORD WINAPI WorkThreadProc(LPVOID lParam)
 	}
 	}
 
 
 	Assist::InitCallData();
 	Assist::InitCallData();
-	if ( !Assist::HijackedAllCall() )
-	{
-		// 劫持失败要通知服务端;
-		return -1;
-	}
+	BOOL bInject = Assist::HijackedAllCall();
 
 
 	//::MessageBox(NULL, _T("劫持成功"), _T(""), MB_OK);
 	//::MessageBox(NULL, _T("劫持成功"), _T(""), MB_OK);
 	Utility::dprintf(_T("劫持成功\n"));
 	Utility::dprintf(_T("劫持成功\n"));

+ 10 - 1
Source/OGCAssistTool/OGCAssistTool/PipeService.cpp

@@ -447,7 +447,6 @@ void CIOCPPipe::RecvProcess(PER_PIPE_CONTEXT* pPipeContext, PER_IO_CONTEXT* pIoC
 	{
 	{
 		// 数据长度;
 		// 数据长度;
 		pIoContext->m_Overlapped.InternalHigh;
 		pIoContext->m_Overlapped.InternalHigh;
-		dprintf(_T("接收到客户端消息:%s, %ld"), pIoContext->chRequest, GetCurrentThreadId());
 		
 		
 		/* 
 		/* 
 			PACKAGE pak;
 			PACKAGE pak;
@@ -461,6 +460,16 @@ void CIOCPPipe::RecvProcess(PER_PIPE_CONTEXT* pPipeContext, PER_IO_CONTEXT* pIoC
 		memcpy(&header, pIoContext->chRequest, sizeof(DATAHEADER));
 		memcpy(&header, pIoContext->chRequest, sizeof(DATAHEADER));
 		memcpy(&msg_info, pIoContext->chRequest+sizeof(DATAHEADER), sizeof(MSG_INFO));
 		memcpy(&msg_info, pIoContext->chRequest+sizeof(DATAHEADER), sizeof(MSG_INFO));
 
 
+		dprintf(_T("接收到客户端消息:Result=%d, Tpye=%d, Proctocl=%d, Len=%ld, Name=%s, Id=%ld, Data=%s"), 
+			msg_info.byResult,
+			header.byMsgType, 
+			header.byProtocol, 
+			header.dwPackageLen, 
+			msg_info.szClientName,
+			msg_info.dwClientId,
+			msg_info.byData
+			);
+
 		DWORD lpNumberOfBytesWritten = 0;
 		DWORD lpNumberOfBytesWritten = 0;
 		TCHAR szMsg[MAX_PATH] = {0};
 		TCHAR szMsg[MAX_PATH] = {0};
 		_stprintf(szMsg, _T("%ld:%ld"), GetCurrentThreadId(), GetTickCount());
 		_stprintf(szMsg, _T("%ld:%ld"), GetCurrentThreadId(), GetTickCount());

+ 2 - 2
Source/OGCAssistTool/OGCAssistTool/stdafx.cpp

@@ -14,9 +14,9 @@ void dprintf(TCHAR* pszStr, ...)
 	struct tm gmtm = { 0 };
 	struct tm gmtm = { 0 };
 	localtime_s(&gmtm, &gmt); // 时间戳转成本地时间;
 	localtime_s(&gmtm, &gmt); // 时间戳转成本地时间;
 #if _MSC_VER >= 1200 && _MSC_VER < 1500
 #if _MSC_VER >= 1200 && _MSC_VER < 1500
-	sprintf(szData, _T("%s %s "), _T("[Assist] "), gmtm.tm_year + 1900, gmtm.tm_mon + 1, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min, gmtm.tm_sec);
+	sprintf(szData, _T("%s %s "), _T("[Assist-Server] "), gmtm.tm_year + 1900, gmtm.tm_mon + 1, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min, gmtm.tm_sec);
 #else
 #else
-	_stprintf_s(szData, _T("%s %04d-%02d-%02d %02d:%02d:%02d "), _T("[Assist] "), gmtm.tm_year + 1900, gmtm.tm_mon + 1, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min, gmtm.tm_sec);
+	_stprintf_s(szData, _T("%s %04d-%02d-%02d %02d:%02d:%02d "), _T("[Assist-Server] "), gmtm.tm_year + 1900, gmtm.tm_mon + 1, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min, gmtm.tm_sec);
 #endif
 #endif
 	int len = _tcslen(szData);//_tcslen已获取的是字节数,不需要*sizeof(TCHAR)
 	int len = _tcslen(szData);//_tcslen已获取的是字节数,不需要*sizeof(TCHAR)
 	va_list args;
 	va_list args;