C/C++Windows黑客编程系列——获取系统信息

获取系统信息

#include <stdio.h>
#include <windows.h>

#define MAX_LEN 256

void iGetSystemInfo() {
    char computerName[256] = {0};
    char username[256] = {0};
    OSVERSIONINFO osversioninfo;
    osversioninfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
    GetVersionEx(&osversioninfo);
    if (osversioninfo.dwPlatformId == VER_PLATFORM_WIN32_NT) {
        if (osversioninfo.dwMajorVersion == 5 && osversioninfo.dwMinorVersion == 1) {
            printf("当前操作系统:%s\n", "windows xp");
        }
        if (osversioninfo.dwMajorVersion == 5 && osversioninfo.dwMinorVersion == 0) {
            printf("当前操作系统:%s\n", "windows 2k");
        }
        if (osversioninfo.dwMajorVersion == 6 && osversioninfo.dwMinorVersion == 2) {
            printf("当前操作系统:%s\n", "windows 10");
        }
    } else {
        printf("%s\n", "其他操作系统");
    }
    // 获取计算机名称
    unsigned long nSize = 256;
    GetComputerName(computerName, &nSize);
    printf("计算机名称:%s\n", computerName);
    nSize = 256;
    GetUserName(username, &nSize);
    printf("用户名:%s\n", username);
}

int main() {
    // 自身程序的位置
    char selfName[MAX_LEN] = {0};
    // 系统目录位置
    char windowsName[MAX_LEN] = {0};
    // 系统目录位置
    char systemName[MAX_LEN] = {0};
    // 临时变量
    char tempName[MAX_LEN] = {0};
    // 获取当前执行文件的路径
    GetModuleFileName(NULL, selfName, MAX_LEN);
    strcat(strcat(tempName,"当前执行文件路径:"),selfName);
    printf("%s\n", tempName);
    RtlZeroMemory(tempName,MAX_LEN);

    // 获取window目录位置
    GetWindowsDirectory(windowsName, MAX_LEN);
    strcat(strcat(tempName,"Win目录位置:"),windowsName);
    printf("%s\n", tempName);
    RtlZeroMemory(tempName,MAX_LEN);

    // 获取系统目录位置
    GetSystemDirectory(systemName, MAX_LEN);
    strcat(strcat(tempName,"系统目录路径:"),systemName);
    printf("%s\n", tempName);
    RtlZeroMemory(tempName,MAX_LEN);

    // 获取系统信息
    iGetSystemInfo();
}

输出

当前执行文件路径:D:\c\win32\cmake-build-debug\win32.exe
Win目录位置:C:\WINDOWS
系统目录路径:C:\WINDOWS\system32
当前操作系统:windows 10
计算机名称:MACARINAL
用户名:Macarinal
本作品采用《CC 协议》,转载必须注明作者和本文链接
失色天空
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!