일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Community Cloud
- Virtual Private Cloud
- 클라우드 제공자
- 이 컴퓨터는 도메인의 구성원이 아닙니다.
- VMWare vSphere
- 클라우드 보안 취약성
- 운영관리제어의 축소
- View Connection
- 커뮤니티 클라우드
- IT 자원
- Error 1720
- 멀티테넌시
- 클라우드 서비스 소유자
- 온 프레미스
- 제한된 이식성
- 온디맨드식
- 수직적 확장
- 클라우드 자원 관리자
- VMWare View Connection Serve
- 정수형 데이터타입
- 수평적 확장
- DHCP 설치
- 도메인 사용자 또는 그룹을 확인할 수 없습니다.
- 가상 프라이빗 클라우드
- dhcp
- VMware
- 고정 IP주소를 가진 네트워크 어댑터를 검색할 수 없습니다.
- 자원 풀링
- 클라우드 소비자
- DHCP 설정
- Today
- Total
한 걸음씩..
GetLogOnUserName 본문
/************************************
* 3단계 User Name 얻어오는 방법
* GetUserName API를 통해 얻어오는
* 방법과 환경변수를 참조하여 얻어오는 방법
* 두 가지를 사용하였으나 최근 System 권한으로
* 실행 시 User Name을 SYSTEM으로 얻어오는
* 오류를 발견하여 WTSQuerySessionInformation
* API를 통해 얻어오는 방법 추가
************************************/
#include <WtsApi32.h>
#pragma comment( lib, "Wtsapi32.lib" )
bool GetLogOnUserName( TCHAR * pOutUserName )
{
DWORD Size = UNLEN * 2;
LPTSTR pStr = NULL;
size_t requiredSize;
/*************************************************************
* Step. 1
* GetUserName API를 통해 얻어온다.
* 2014. 08. 22 JeonSB
*************************************************************/
BOOL bUserName = GetUserName( pOutUserName, &Size );
if( bUserName && *pOutUserName != NULL )
{
if( CString( pOutUserName ).CompareNoCase( _T("SYSTEM") ) == 0 )
{
ZeroMemory( pOutUserName, UNLEN * 2 );
/*************************************************************
* Step. 2
* WTSQuerySessionInformation API 통해 얻어온다.
* 2014. 08. 22 JeonSB
*************************************************************/
Size = 0;
WTSQuerySessionInformation( WTS_CURRENT_SERVER_HANDLE,
WTS_CURRENT_SESSION,
WTSUserName,
&pStr,
&Size );
wcscpy( pOutUserName, pStr );
if( *pOutUserName != NULL )
return true;
}
return true;
}
/*************************************************************
* Step. 3
* 환경변수를 통해 얻어온다.
* 2014. 08. 22 JeonSB
*************************************************************/
_tgetenv_s( &requiredSize, NULL, 0, _T("USERNAME") );
_tgetenv_s( &requiredSize, pOutUserName, requiredSize, _T("USERNAME") );
if( *pOutUserName != NULL )
return true;
MessageBox( _T("Get User Name is Fail") );
return false;
}
'프로그래밍' 카테고리의 다른 글
[ C++ ] 데이터모델 (2) | 2014.09.21 |
---|---|
SplitString ( CString Parser ) (0) | 2014.07.14 |
[ Windows ] 서비스 검색 & 상태 변경 (0) | 2014.07.11 |
[ Windows ] Injection Dll 에서 Process ID 구하기 (0) | 2014.04.22 |
ConvertIconToHBitmap / ConvertIconToCBitmap (0) | 2014.03.27 |