在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
/// ///获取系统信息Demo /// #include "stdafx.h" #include<windows.h> #include<conio.h> #include<tchar.h> #include<locale.h> #include"Reader.h" #include"Writer.h" #include<stdlib.h> #include<iostream> using namespace std; wchar_t* envVarStrings[]= { TEXT("OS =%OS%"), TEXT("PATH =%PATH%"), TEXT("HOMEPATH =%HOMEPATH%"), TEXT("TEMP =%TEMP%") }; #define ENV_VAR_STRING_COUNT (sizeof(envVarStrings)/sizeof(wchar_t*)) #define INFO_BUFFER_SIZE 32767 void printError(wchar_t* msg); int _tmain(int argc, _TCHAR* argv[]) { DWORD i; wchar_t infoBuf[INFO_BUFFER_SIZE]; DWORD bufCharCount=INFO_BUFFER_SIZE; //Get and display the name of the computer bufCharCount=INFO_BUFFER_SIZE; if(!GetComputerName(infoBuf,&bufCharCount)) printError(L"GetComputerName"); wcout.imbue(std::locale("chs")); wcout<<endl<<"Computer name:"<<infoBuf<<endl; //Get and display the user name bufCharCount=INFO_BUFFER_SIZE; if(!GetUserName(infoBuf,&bufCharCount)) printError(L"GetUserName:"); wcout<<"User Name:"<<infoBuf<<endl; //Get and display the system directoy. if(!GetSystemDirectory(infoBuf,INFO_BUFFER_SIZE)) printError(L"System Directory"); wcout<<"System Directory:"<<infoBuf<<endl; //Get and display the Windows directory. if(!GetWindowsDirectory(infoBuf,INFO_BUFFER_SIZE)) printError(L"Get System Directory"); wcout<<"Windows Directory:"<<infoBuf<<endl; //Expand and display a few environment variables wcout<<"Small selection of Environment Variables:"<<endl; for(i=0;i<ENV_VAR_STRING_COUNT;i++) { bufCharCount=ExpandEnvironmentStrings(envVarStrings[i],infoBuf,INFO_BUFFER_SIZE); if(bufCharCount>INFO_BUFFER_SIZE) wcout<<"Buffer too small to expand :"<<envVarStrings[i]<<endl; else if(!bufCharCount) printError(L"Expand Environment Strings "); wcout<<infoBuf<<endl; } wcout<<"\n\n"; cin.get(); return 0; } void printError(wchar_t* msg) { DWORD eNum; TCHAR sysMsg[256]; TCHAR* p; eNum=GetLastError(); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM| FORMAT_MESSAGE_IGNORE_INSERTS, NULL,eNum, MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT), sysMsg,256,NULL); p=sysMsg; while((*p>31||(*p==9))) { ++p; } do{*p--==0;}while((p >= sysMsg ) && ( ( *p == '.') || ( *p<33 ) )); wcout<<"\n\t"<<msg<<"failed with error "<<eNum<<" ("<<msg<<")"<<endl; }
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论