⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vm_sys_info_win32.c

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 C
字号:
/*////                  INTEL CORPORATION PROPRIETARY INFORMATION//     This software is supplied under the terms of a license agreement or//     nondisclosure agreement with Intel Corporation and may not be copied//     or disclosed except in accordance with the terms of that agreement.//       Copyright(c) 2003-2005 Intel Corporation. All Rights Reserved.//*/#include "vm_sys_info.h"#if defined(_WIN32) || defined(_WIN64)void vm_sys_info_get_date(vm_char *m_date, DateFormat df){    SYSTEMTIME SystemTime;    /* check error(s) */    if (NULL == m_date)        return;    GetLocalTime(&SystemTime );    switch (df)    {    case DDMMYY:        vm_string_sprintf(m_date,                          VM_STRING("%.2d/%.2d/%d"),                          SystemTime.wDay,                          SystemTime.wMonth,                          SystemTime.wYear);        break;    case MMDDYY:        vm_string_sprintf(m_date,                          VM_STRING("%.2d/%.2d/%d"),                          SystemTime.wMonth,                          SystemTime.wDay,                          SystemTime.wYear);        break;    case YYMMDD:        vm_string_sprintf(m_date,                          VM_STRING("%d/%.2d/%.2d"),                          SystemTime.wYear,                          SystemTime.wMonth,                          SystemTime.wDay);        break;    default:        vm_string_sprintf(m_date,                          VM_STRING("%2d/%.2d/%d"),                          SystemTime.wMonth,                          SystemTime.wDay,                          SystemTime.wYear);        break;    }} /* void vm_sys_info_get_date(vm_char *m_date, DateFormat df) */void vm_sys_info_get_time(vm_char *m_time, TimeFormat tf){    SYSTEMTIME SystemTime;    /* check error(s) */    if (NULL == m_time)        return;    GetLocalTime(&SystemTime);    switch (tf)    {    case HHMMSS:        vm_string_sprintf(m_time,                          VM_STRING("%.2d:%.2d:%.2d"),                          SystemTime.wHour,                          SystemTime.wMinute,                          SystemTime.wSecond);        break;    case HHMM:        vm_string_sprintf(m_time,                          VM_STRING("%.2d:%.2d"),                          SystemTime.wHour,                          SystemTime.wMinute);        break;    case HHMMSSMS1:        vm_string_sprintf(m_time,                          VM_STRING("%.2d:%.2d:%.2d.%d"),                          SystemTime.wHour,                          SystemTime.wMinute,                          SystemTime.wSecond,                          SystemTime.wMilliseconds / 100);        break;    case HHMMSSMS2:        vm_string_sprintf(m_time,                          VM_STRING("%.2d:%.2d:%.2d.%d"),                          SystemTime.wHour,                          SystemTime.wMinute,                          SystemTime.wSecond,                          SystemTime.wMilliseconds / 10);        break;    case HHMMSSMS3:        vm_string_sprintf(m_time,                          VM_STRING("%.2d:%.2d:%.2d.%d"),                          SystemTime.wHour,                          SystemTime.wMinute,                          SystemTime.wSecond,                          SystemTime.wMilliseconds);        break;    default:        vm_string_sprintf(m_time,                          VM_STRING("%.2d:%.2d:%.2d"),                          SystemTime.wHour,                          SystemTime.wMinute,                          SystemTime.wSecond);        break;    }} /* void vm_sys_info_get_time(vm_char *m_time, TimeFormat tf) */void vm_sys_info_get_os_name(vm_char *os_name){    OSVERSIONINFO osvi;    BOOL bOsVersionInfo;    /* check error(s) */    if (NULL == os_name)        return;    ZeroMemory(&osvi, sizeof(OSVERSIONINFO));    osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);    bOsVersionInfo = GetVersionEx((OSVERSIONINFO *) &osvi);    if (!bOsVersionInfo)    {        osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);        if (!GetVersionEx((OSVERSIONINFO *) &osvi))        {            vm_string_sprintf(os_name, VM_STRING("Unknown"));            return;        }    }    switch (osvi.dwPlatformId)    {    case 2:        /* test for the specific product family. */        if ((5 == osvi.dwMajorVersion) && (2 == osvi.dwMinorVersion))            vm_string_sprintf(os_name, VM_STRING("Win2003"));        if ((5 == osvi.dwMajorVersion) && (1 == osvi.dwMinorVersion))            vm_string_sprintf(os_name, VM_STRING("WinXP"));        if ((5 == osvi.dwMajorVersion) && (0 == osvi.dwMinorVersion))            vm_string_sprintf(os_name, VM_STRING("Win2000"));        if (4 >= osvi.dwMajorVersion)            vm_string_sprintf(os_name, VM_STRING("WinNT"));        break;      /* test for the Windows 95 product family. */    case 1:        if ((4 == osvi.dwMajorVersion) && (0 == osvi.dwMinorVersion))        {            vm_string_sprintf(os_name, VM_STRING("Win95"));            if (('C' == osvi.szCSDVersion[1]) || ('B' == osvi.szCSDVersion[1]))                vm_string_strcat(os_name, VM_STRING("OSR2" ));        }        if ((4 == osvi.dwMajorVersion) && (10 == osvi.dwMinorVersion))        {            vm_string_sprintf(os_name, VM_STRING("Win98"));            if ('A' == osvi.szCSDVersion[1])                vm_string_strcat(os_name, VM_STRING("SE"));        }        if ((4 == osvi.dwMajorVersion) && (90 == osvi.dwMinorVersion))        {            vm_string_sprintf(os_name,VM_STRING("WinME"));        }        break;    case 3:        /* get platform string */        /* SystemParametersInfo(257, MAX_PATH, os_name, 0); */        if ((4 == osvi.dwMajorVersion) && (20 == osvi.dwMinorVersion))        {            vm_string_sprintf(os_name, VM_STRING("PocketPC 2003"));        }        if ((4 == osvi.dwMajorVersion) && (21 == osvi.dwMinorVersion))        {            vm_string_sprintf(os_name, VM_STRING("WinMobile2003SE"));        }        if ((5 == osvi.dwMajorVersion) && (0 == osvi.dwMinorVersion))        {            vm_string_sprintf(os_name, VM_STRING("WinCE 5.0"));        }        break;    /* Something else */    default:        vm_string_sprintf(os_name, VM_STRING("Win..."));        break;    }} /* void vm_sys_info_get_os_name(vm_char *os_name) */void vm_sys_info_get_program_name(vm_char *program_name){    vm_char tmp[_MAX_PATH] = {0,};    int i = 0;    /* check error(s) */    if (NULL == program_name)        return;    GetModuleFileName(NULL, tmp, _MAX_PATH);    i = (int) (vm_string_strrchr(tmp, (vm_char)('\\')) - tmp + 1);    vm_string_strncpy(program_name,tmp + i, vm_string_strlen(tmp) - i);} /* void vm_sys_info_get_program_name(vm_char *program_name) */void vm_sys_info_get_program_path(vm_char *program_path){    vm_char tmp[_MAX_PATH] = {0,};    int i = 0;    /* check error(s) */    if (NULL == program_path)        return;    GetModuleFileName(NULL, tmp, _MAX_PATH);    i = (int) (vm_string_strrchr(tmp, (vm_char)('\\')) - tmp + 1);    vm_string_strncpy(program_path, tmp, i - 1);} /* void vm_sys_info_get_program_path(vm_char *program_path) */vm_var32 vm_sys_info_get_cpu_num(void){    SYSTEM_INFO siSysInfo;    ZeroMemory(&siSysInfo, sizeof(SYSTEM_INFO));    GetSystemInfo(&siSysInfo);    return siSysInfo.dwNumberOfProcessors;} /* vm_var32 vm_sys_info_get_cpu_num(void) */vm_var32 vm_sys_info_get_mem_size(void){    MEMORYSTATUS m_memstat;    ZeroMemory(&m_memstat, sizeof(MEMORYSTATUS));    GlobalMemoryStatus(&m_memstat);    return (vm_var32)((double)m_memstat.dwTotalPhys / (1024 * 1024 * 2) + 0.95) * 2;} /* vm_var32 vm_sys_info_get_mem_size(void) */#if !defined(_WIN32_WCE)#pragma comment(lib, "Setupapi.lib")#include <setupapi.h>void vm_sys_info_get_vga_card(vm_char *vga_card){    SP_DEVINFO_DATA sp_dev_info;    HDEVINFO DeviceInfoSet;    vm_char string1[] = VM_STRING("Display");    DWORD dwIndex = 0;    vm_char data[256] = {0,};    /* check error(s) */    if (NULL == vga_card)        return;    ZeroMemory(&sp_dev_info, sizeof(SP_DEVINFO_DATA));    ZeroMemory(&DeviceInfoSet, sizeof(HDEVINFO));    DeviceInfoSet = SetupDiGetClassDevs(NULL, NULL, NULL, DIGCF_ALLCLASSES | DIGCF_PRESENT);    sp_dev_info.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);    while (SetupDiEnumDeviceInfo(DeviceInfoSet, dwIndex, &sp_dev_info))    {        SetupDiGetDeviceRegistryProperty(DeviceInfoSet,                                         &sp_dev_info,                                         SPDRP_CLASS,                                         NULL,                                         (unsigned char *) data,                                         256,                                         NULL);        if (!vm_string_strcmp((vm_char*)data, string1))        {            SetupDiGetDeviceRegistryProperty(DeviceInfoSet,                                             &sp_dev_info,                                             SPDRP_DEVICEDESC,                                             NULL,                                             (PBYTE) vga_card,                                             256,                                             NULL);            break;        }        dwIndex++;    }    SetupDiDestroyDeviceInfoList(DeviceInfoSet);} /* void vm_sys_info_get_vga_card(vm_char *vga_card) */void vm_sys_info_get_cpu_name(vm_char *cpu_name){    HKEY hKey;    vm_char data[256] = {0,};    DWORD dwSize = sizeof(data);    int i = 0;    LONG lErr;    /* check error(s) */    if (NULL == cpu_name)        return;    lErr = RegOpenKeyEx(HKEY_LOCAL_MACHINE,                        VM_STRING("Hardware\\Description\\System\\CentralProcessor\\0"),                        0,                        KEY_QUERY_VALUE,                        &hKey);    if (ERROR_SUCCESS == lErr)    {        RegQueryValueEx(hKey,                        _T("ProcessorNameString"),                        NULL,                        NULL,                        (LPBYTE)&data,                        &dwSize);        /* error protection */        data[sizeof(data) - 1] = 0;        while (data[i++] == ' ');        vm_string_strcpy(cpu_name, (vm_char *)(data + i - 1));        RegCloseKey (hKey);    }    else        vm_string_sprintf(cpu_name, VM_STRING("Unknown"));} /* void vm_sys_info_get_cpu_name(vm_char *cpu_name) */vm_var32 vm_sys_info_get_cpu_speed(void){    HKEY hKey;    vm_var32 data = 0;    DWORD dwSize = sizeof(vm_var32);    LONG lErr;    lErr = RegOpenKeyEx(HKEY_LOCAL_MACHINE,                        VM_STRING("Hardware\\Description\\System\\CentralProcessor\\0"),                        0,                        KEY_QUERY_VALUE,                        &hKey);    if (ERROR_SUCCESS == lErr)    {        RegQueryValueEx (hKey, _T("~MHz"), NULL, NULL, (LPBYTE)&data, &dwSize);        RegCloseKey(hKey);        return data;    }    else        return 0;} /* vm_var32 vm_sys_info_get_cpu_speed(void) */void vm_sys_info_get_computer_name(vm_char *computer_name){    vm_char data[256] = {0,};    DWORD dwSize = sizeof(data);    /* check error(s) */    if (NULL == computer_name)        return;    GetComputerName(data, &dwSize);    vm_string_sprintf(computer_name, VM_STRING("%s"), data);} /* void vm_sys_info_get_computer_name(vm_char* computer_name) */#elif defined(_WIN32_WCE)#include <winioctl.h>BOOL KernelIoControl(DWORD dwIoControlCode,                     LPVOID lpInBuf,                     DWORD nInBufSize,                     LPVOID lpOutBuf,                     DWORD nOutBufSize,                     LPDWORD lpBytesReturned);#define IOCTL_PROCESSOR_INFORMATION CTL_CODE(FILE_DEVICE_HAL, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)typedef struct _PROCESSOR_INFO{    vm_var16        wVersion;    vm_char         szProcessCore[40];    vm_var16        wCoreRevision;    vm_char         szProcessorName[40];    vm_var16        wProcessorRevision;    vm_char         szCatalogNumber[100];    vm_char         szVendor[100];    vm_var32        dwInstructionSet;    vm_var32        dwClockSpeed;} PROCESSOR_INFO;void vm_sys_info_get_vga_card(vm_char *vga_card){    /* check error(s) */    if (NULL == vga_card)        return;    vm_string_sprintf(vga_card, VM_STRING("Unknown"));} /* void vm_sys_info_get_vga_card(vm_char *vga_card) */void vm_sys_info_get_cpu_name(vm_char *cpu_name){    PROCESSOR_INFO pi;    DWORD dwBytesReturned;    vm_var32 dwSize = sizeof(PROCESSOR_INFO);    BOOL bResult;    /* check error(s) */    if (NULL == cpu_name)        return;    ZeroMemory(&pi, sizeof(PROCESSOR_INFO));    bResult = KernelIoControl(IOCTL_PROCESSOR_INFORMATION,                              NULL,                              0,                              &pi,                              sizeof(PROCESSOR_INFO),                              &dwBytesReturned);    vm_string_sprintf(cpu_name,                      VM_STRING("%s %s"),                      pi.szProcessCore,                      pi.szProcessorName);} /* void vm_sys_info_get_cpu_name(vm_char *cpu_name) */void vm_sys_info_get_computer_name(vm_char *computer_name){    vm_char data[256] = {0,};    DWORD dwSize = sizeof(data);    /* check error(s) */    if (NULL == computer_name)        return;    SystemParametersInfo(SPI_GETOEMINFO, dwSize, data, 0);    vm_string_sprintf(computer_name, VM_STRING("%s"), data);} /* void vm_sys_info_get_computer_name(vm_char *computer_name) */vm_var32 vm_sys_info_get_cpu_speed(void){    PROCESSOR_INFO pi;    vm_var32 res = 400;    DWORD dwBytesReturned;    vm_var32 dwSize = sizeof(PROCESSOR_INFO);    BOOL bResult;    ZeroMemory(&pi,sizeof(PROCESSOR_INFO));    bResult = KernelIoControl(IOCTL_PROCESSOR_INFORMATION,                              NULL,                              0,                              &pi,                              sizeof(PROCESSOR_INFO),                              &dwBytesReturned);    if (pi.dwClockSpeed)        res = pi.dwClockSpeed;    return res;} /* vm_var32 vm_sys_info_get_cpu_speed(void) */#endif /* defined(_WIN32_WCE) */#endif /* defined(_WIN32) || defined(_WIN64) */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -