WindowsAPI获取主机操作系统信息
VOID SafeGetNativeSystemInfo(__out LPSYSTEM_INFO lpSystemInfo)
{
if (NULL==lpSystemInfo) return;
typedef VOID (WINAPI *LPFN_GetNativeSystemInfo)(LPSYSTEM_INFO lpSystemInfo);
LPFN_GetNativeSystemInfo fnGetNativeSystemInfo = (LPFN_GetNativeSystemInfo)GetProcAddress( GetModuleHandle(_T("kernel32")), "GetNativeSystemInfo");;
if (NULL != fnGetNativeSystemInfo)
{
fnGetNativeSystemInfo(lpSystemInfo);
}
else
{
GetSystemInfo(lpSystemInfo);
}
}
// 获取操作系统位数
int GetSystemBits()
{
SYSTEM_INFO si;
SafeGetNativeSystemInfo(&si);
if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 ||
si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64 )
{
return 64;
}
return 32;
}
//获取操作系统版本
char *GetVersionInfo()
{
OSVERSIONINFO osvi;
ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if (!GetVersionEx(&osvi)) {
return NULL;
}
//判断版本
if (osvi.dwMajorVersion == 5) {
switch (osvi.dwMinorVersion) {
case 0:
return "Windows 2000";
case 1:
return "Windows XP";
case 2:
return "Windows Server 2003";
default:
return "Unknown System";
}
}else if (osvi.dwMajorVersion == 6) {
switch (osvi.dwMinorVersion) {
case 0:
return "Windows Vista";
case 1:
return "Windows 7";
case 2:
return "Windows 8";
default:
return "Unknown System";
}
}else {
return "Unknown System";
}
}
//获取进程列表
void GetProcessList(){
HANDLE pHandle;
PROCESSENTRY32 proc;
DWORD procId;
char szLogBuffer[512]={0};
pHandle = CreateToolhelp32Snapshot(0x2,0x0);
if(pHandle==INVALID_HANDLE_VALUE){
return;
}
proc.dwSize = sizeof(PROCESSENTRY32);
while(Process32Next(pHandle,&proc)){
printf("ProcessName : %S
",proc.szExeFile);
}
CloseHandle(pHandle);
return;
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: Java Web系统常用的第三方接口
- 下一篇: C语言fseek函数了解