본문 바로가기
C & C++/C & C++

비스타(Vista), 윈도우7 에서 사용자 계정 폴더 가져오는 함수

by izen8 2011. 12. 14.
반응형

윈도우 비스타 또는 윈도우 7 에서 사용자 계정 폴더를 가져오는 함수의 소스 코드는 아래와 같다.


022: /**
023: * @brief 현재 사용자 계정 폴더를 리턴한다.
024: * @param pszDir    현재 사용자 계정 폴더 PATH 가 저장될 변수
025: * @param iDirSize  pszDir 변수의 크기
026: * @returns 성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
027: */
051: bool GetVistaUserDirectory( char * pszDir, int iDirSize )
052: {
053:   OSVERSIONINFO osv;
054:
055:   osv.dwOSVersionInfoSize = sizeof(osv);
056:   GetVersionEx( &osv );
057:
058:   if( osv.dwPlatformId != VER_PLATFORM_WIN32_NT ) return false;
059:  
060:   char  szUserId[255], szRootDir[MAX_PATH];
061:   DWORD iLen = sizeof(szUserId);
062:
063:   memset( szUserId, 0, sizeof(szUserId) );
064:   memset( szRootDir, 0, sizeof(szRootDir) );
065:
066:   if( GetUserName( szUserId, &iLen ) == FALSE ) return false;
067:   if( GetWindowsDirectory( szRootDir, sizeof(szRootDir) ) == 0 ) return false;
068:
069:   _snprintf( pszDir, iDirSize, "%.1s:\\%s\\%s", szRootDir, "users", szUserId );
070:
071:   return true;
072: }

반응형

댓글