2017. 2. 16. 20:24ㆍIT-개발/winapi 및 MFC
msdn에 현재까지 MS에서 발매한 OS 버전 정보가 간단히 있다.
https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms724832(v=vs.85).aspx
그러나 SDK를 동원 / 제공되는 api를 호출해도 현재 윈도우 버전 정보가 쉽게 구해지지 않더라.
GetVersionEx 를 사용하면, 정상적인 윈도우 버전 정보가 나오질 않더라.
윈도우10 에 대해서 6.3 으로 나온다. Window 8.1 로 판단하더라~
BOOL GetWindowVersion(DWORD & dwMajorVersion, DWORD & dwMinorVersion, DWORD & dwPlat )
{
LPWKSTA_INFO_100 pwi = NULL;
if ( NERR_Success == NetWkstaGetInfo( NULL, 100, (LPBYTE*)&pwi) )
{
dwMajorVersion = pwi->wki100_ver_major;
dwMinorVersion = pwi->wki100_ver_minor;
dwPlat = pwi->wki100_platform_id;
NetApiBufferFree(pwi);
return TRUE;
}
else
return FALSE;
}
요렇게 하니까 나온다...
좋은 활용 방법인듯~ ^^
참고하자~
https://msdn.microsoft.com/ko-kr/library/windows/desktop/aa370663(v=vs.85).aspx
msdn에 친절한 예제 소스와 설명도 있다.
#ifndef UNICODE #define UNICODE #endif #pragma comment(lib, "netapi32.lib") #include <stdio.h> #include <windows.h> #include <lm.h> int wmain(int argc, wchar_t *argv[]) { DWORD dwLevel = 102; LPWKSTA_INFO_102 pBuf = NULL; NET_API_STATUS nStatus; LPWSTR pszServerName = NULL; // // Check command line arguments. // if (argc > 2) { fwprintf(stderr, L"Usage: %s [\\\\ServerName]\n", argv[0]); exit(1); } // The server is not the default local computer. // if (argc == 2) pszServerName = argv[1]; // // Call the NetWkstaGetInfo function, specifying level 102. // nStatus = NetWkstaGetInfo(pszServerName, dwLevel, (LPBYTE *)&pBuf); // // If the call is successful, // print the workstation data. // if (nStatus == NERR_Success) { printf("\n\tPlatform: %d\n", pBuf->wki102_platform_id); wprintf(L"\tName: %s\n", pBuf->wki102_computername); printf("\tVersion: %d.%d\n", pBuf->wki102_ver_major, pBuf->wki102_ver_minor); wprintf(L"\tDomain: %s\n", pBuf->wki102_langroup); wprintf(L"\tLan Root: %s\n", pBuf->wki102_lanroot); wprintf(L"\t# Logged On Users: %d\n", pBuf->wki102_logged_on_users); } // // Otherwise, indicate the system error. // else fprintf(stderr, "A system error has occurred: %d\n", nStatus); // // Free the allocated memory. // if (pBuf != NULL) NetApiBufferFree(pBuf); return 0; }
'IT-개발 > winapi 및 MFC' 카테고리의 다른 글
파일이동 - sample - SHFileOperation (0) | 2017.03.03 |
---|---|
OS - x64 - GetSystemDirectory (펌) (0) | 2017.02.22 |
COM DLL만으로 tlb파일 생성및 COM사용하기 (펌) (0) | 2016.08.24 |
[Sample] 파일크기 구하기... (0) | 2016.06.16 |
CImage LoadFromResource 의 PNG 문제 (펌) (1) | 2016.05.19 |