//显示系统信息
#include <windows.h>
#include <stdio.h>
#define BUFSIZE 1024
void main()
{
LPTSTR lpszSystemInfo; //pointer to system information string
//DWORD is a 32bit unsigned integer
//It is very useful in windows programming
DWORD cchBuff = BUFSIZE; //size of computer or user name
TCHAR tchBuffer[BUFSIZE];
DWORD dwResult;
lpszSystemInfo = tchBuffer;
/*GetComputerName和GetUserName的原型是
(LPSTR szBuff,DWORD *dwSize);
第一个参数是字符缓冲区,第二个参数是一个dword指针,指示szBuff的字节数
当函数退出时,dwSize是得到的szBuff的字节数
因此,在第一次调用GetUserName后,cchBuff就是ComputerName的字节数,如果
这个长度小于UserName,则第二个GetUserName就会调用不成功,因此必须把
cchBuff复位*/
if(GetComputerName(lpszSystemInfo,&cchBuff))
printf("Computer name: %s/n",lpszSystemInfo);
cchBuff = BUFSIZE;
if(GetUserName(lpszSystemInfo,&cchBuff))
printf("User name: %s/n",lpszSystemInfo);
if(GetSystemDirectory(lpszSystemInfo,MAX_PATH+1))
printf("System directory: %s/n",lpszSystemInfo);
if(GetWindowsDirectory(lpszSystemInfo,MAX_PATH+1))
printf("Windows directory: %s/n",lpszSystemInfo);
//display the environment variabless
printf("Environment variables/n");
//expand os environment variable
dwResult = ExpandEnvironmentStrings(
"OS=%OS%",
lpszSystemInfo,
BUFSIZE);
if(dwResult <= BUFSIZE)
printf(" %s/n",lpszSystemInfo);
dwResult = ExpandEnvironmentStrings(
"PATH=%PATH%",
lpszSystemInfo,
BUFSIZE);
if(dwResult <= BUFSIZE)
printf(" %s/n",lpszSystemInfo);
dwResult = ExpandEnvironmentStrings(
"TEMP=%TEMP%",
lpszSystemInfo,
BUFSIZE);
if(dwResult <= BUFSIZE)
printf(" %s/n",lpszSystemInfo);
getchar();
}