木马编程天天练 开始第1天 获取系统信息

 

1.CPU信息

 

在注册表HKEY_LOCAL_MACHINE//HARDWARE //DESCRIPTION//System//CentralProcessor//0//ProcessorNameString和~MHz字段下是 CPU字符串描述和主频描述,可以用读注册表函数读出。

 

CPU内核个数的获取:

 

主要和以下系统结构有关

typedef struct _SYSTEM_INFO {
union {
DWORD dwOemId ;
struct {
WORD wProcessorArchitecture ;
WORD wReserved ;
};
};
DWORD dwPageSize ;
LPVOID lpMinimumApplicationAddress ;
LPVOID lpMaximumApplicationAddress ;
DWORD_PTR dwActiveProcessorMask ;
DWORD dwNumberOfProcessors ;          // 内核个数
DWORD dwProcessorType ;
DWORD dwAllocationGranularity ;
WORD wProcessorLevel ;
WORD wProcessorRevision ; } SYSTEM_INFO;

 

使用GlobalSystemInfo函数直接获取

 

 

2.内存信息

 

主要和以下系统结构有关

typedef struct _MEMORYSTATUS {
DWORD dwLength ;          // 结构自身长度
DWORD dwMemoryLoad ;      //
SIZE_T dwTotalPhys ;      // 总的内存总量(内存条)
SIZE_T dwAvailPhys ;      // 除去当前系统用的,剩下的空闲内存量
SIZE_T dwTotalPageFile ;
SIZE_T dwAvailPageFile ;
SIZE_T dwTotalVirtual ;
SIZE_T dwAvailVirtual ; } MEMORYSTATUS,
*LPMEMORYSTATUS;

 

使用GlobalMemoryStatus直接获取

 

3.操作系统信息

 

主要和以下系统结构有关

typedef struct _OSVERSIONINFO {
DWORD dwOSVersionInfoSize ;    // 结构自身长度
DWORD dwMajorVersion ;         // 主版本
DWORD dwMinorVersion ;         // 小版本
DWORD dwBuildNumber ;          // 创建号
DWORD dwPlatformId ;           // 2:winnt  1:win9x
TCHAR szCSDVersion [128]; } OSVERSIONINFO;

 

 

typedef struct _OSVERSIONINFOEX {
DWORD dwOSVersionInfoSize ;
DWORD dwMajorVersion ;
DWORD dwMinorVersion ;
DWORD dwBuildNumber ;
DWORD dwPlatformId ;
TCHAR szCSDVersion [128];  // 服务号字符串
WORD wServicePackMajor ;   // 主服务号
WORD wServicePackMinor ;   // 次服务号
WORD wSuiteMask ;          // 软件套装掩码
BYTE wProductType ;        // 产品类型(服务器,工作站,域控制器)
BYTE wReserved ; } OSVERSIONINFOEX,
*POSVERSIONINFOEX,
*LPOSVERSIONINFOEX;

 

使用GetVersionEx直接获取

 

4.系统运行时间

 

使用函数DWORD WINAPI GetTickCount(void)获取,返回系统开始运行到现在的毫秒数

 

5.系统目录

 

使用函数GetSystemDirectory获取

 

6.系统语言

 

使用函数GetSystemDefaultLangID(void)获取,返回一个语言ID号

一般对应值

    {0x0401,"Arabic (Saudi Arabia)"},
    {0x0801,"Arabic (Iraq)"},
    {0x0c01,"Arabic (Egypt)"},
    {0x1001,"Arabic (Libya)"},
    {0x1401,"Arabic (Algeria)"},
    {0x1801,"Arabic (Morocco)"},
    {0x1c01,"Arabic (Tunisia)"},
    {0x2001,"Arabic (Oman)"},
    {0x2401,"Arabic (Yemen)"},
    {0x2801,"Arabic (Syria)"},
    {0x2c01,"Arabic (Jordan)"},
    {0x3001,"Arabic (Lebanon)"},
    {0x3401,"Arabic (Kuwait)"},
    {0x3801,"Arabic (U.A.E.)"},
    {0x3c01,"Arabic (Bahrain)"},
    {0x4001,"Arabic (Qatar)"},
    {0x0402,"Bulgarian"},
    {0x0403,"Catalan"},
    {0x0404,"Chinese (Taiwan Region, PRC)"},
    {0x0804,"Chinese (PRC)"},
    {0x0c04,"Chinese (Hong Kong SAR, PRC)"},
    {0x1004,"Chinese (Singapore , PRC)"},
    {0x0405,"Czech"},
    {0x0406,"Danish"},
    {0x0407,"German (Standard)"},
    {0x0807,"German (Swiss)"},
    {0x0c07,"German (Austrian)"},
    {0x1007,"German (Luxembourg)"},
    {0x1407,"German (Liechtenstein)"},
    {0x0408,"Greek"},
    {0x0409,"English (United States)"},
    {0x0809,"English (United Kingdom)"},
    {0x0c09,"English (Australian)"},
    {0x1009,"English (Canadian)"},
    {0x1409,"English (New Zealand)"},
    {0x1809,"English (Ireland)"},
    {0x1c09,"English (South Africa)"},
    {0x2009,"English (Jamaica)"},
    {0x2409,"English (Caribbean)"},
    {0x2809,"English (Belize)"},
    {0x2c09,"English (Trinidad)"},
    {0x040a,"Spanish (Traditional Sort)"},
    {0x080a,"Spanish (Mexican)"},
    {0x0c0a,"Spanish (Modern Sort)"},
    {0x100a,"Spanish (Guatemala)"},
    {0x140a,"Spanish (Costa Rica)"},
    {0x180a,"Spanish (Panama)"},
    {0x1c0a,"Spanish (Dominican Republic)"},
    {0x200a,"Spanish (Venezuela)"},
    {0x240a,"Spanish (Colombia)"},
    {0x280a,"Spanish (Peru)"},
    {0x2c0a,"Spanish (Argentina)"},
    {0x300a,"Spanish (Ecuador)"},
    {0x340a,"Spanish (Chile)"},
    {0x380a,"Spanish (Uruguay)"},
    {0x3c0a,"Spanish (Paraguay)"},
    {0x400a,"Spanish (Bolivia)"},
    {0x440a,"Spanish (El Salvador)"},
    {0x480a,"Spanish (Honduras)"},
    {0x4c0a,"Spanish (Nicaragua)"},
    {0x500a,"Spanish (Puerto Rico)"},
    {0x040b,"Finnish"},
    {0x040c,"French (Standard)"},
    {0x080c,"French (Belgian)"},
    {0x0c0c,"French (Canadian)"},
    {0x100c,"French (Swiss)"},
    {0x140c,"French (Luxembourg)"},
    {0x040d,"Hebrew"},
    {0x040e,"Hungarian"},
    {0x040f,"Icelandic"},
    {0x0410,"Italian (Standard)"},
    {0x0810,"Italian (Swiss)"},
    {0x0411,"Japanese"},
    {0x0412,"Korean"},
    {0x0812,"Korean (Johab)"},
    {0x0413,"Dutch (Standard)"},
    {0x0813,"Dutch (Belgian)"},
    {0x0414,"Norwegian (Bokmal)"},
    {0x0814,"Norwegian (Nynorsk)"},
    {0x0415,"Polish"},
    {0x0416,"Portuguese (Brazilian)"},
    {0x0816,"Portuguese (Standard)"},
    {0x0418,"Romanian"},
    {0x0419,"Russian"},
    {0x041a,"Croatian"},
    {0x081a,"Serbian (Latin)"},
    {0x0c1a,"Serbian (Cyrillic)"},
    {0x041b,"Slovak"},
    {0x041c,"Albanian"},
    {0x041d,"Swedish"},
    {0x081d,"Swedish (Finland)"},
    {0x041e,"Thai"},
    {0x041f,"Turkish"},
    {0x0421,"Indonesian"},
    {0x0422,"Ukrainian"},
    {0x0423,"Belarusian"},
    {0x0424,"Slovenian"},
    {0x0425,"Estonian"},
    {0x0426,"Latvian"},
    {0x0427,"Lithuanian"},
    {0x0429,"Farsi"},
    {0x042a,"Vietnamese"},
    {0x042d,"Basque"},
    {0x0436,"Afrikaans"},
    {0x0438,"Faeroese"},

 

7.显示器分辨率刷新频率

 

要获取显示器分辨率和刷新频率,需要先打开显示器设备

使用函数CreateDC打开显示器设备,然后使用GetDeviceCaps获取打开设备相关信息。

 

    hScrDC= CreateDC("Display", NULL, NULL, NULL); // 打开显示器
    xScrn = GetDeviceCaps(hScrDC, HORZRES);     // 水平分辨率
    yScrn = GetDeviceCaps(hScrDC, VERTRES);     // 垂直分辨率
    Bit   = GetDeviceCaps(hScrDC, BITSPIXEL);   // 像素位数
    HZ    = GetDeviceCaps(hScrDC, VREFRESH);    // 刷新频率
    DeleteDC(hScrDC);   // 关闭显示器

 

8.驱动器信息和分区信息

 

获取逻辑盘掩码DWORD WINAPI GetLogicalDrives(void)

 

获取逻辑盘符字符串DWORD WINAPI GetLogicalDriveStrings( __in DWORD nBufferLength , __out LPTSTR lpBuffer );

 

获取逻辑盘类型UINT WINAPI GetDriveType( __in LPCTSTR lpRootPathName )

 

获取硬盘的盘符容量GetDiskFreeSpaceEx

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值