C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[76293] Re:윈도우에 로그인한 사용자의 전체 이름을 알고 싶은데, 어떻게 해야 할까요?
raven90 [raven90] 1046 읽음    2022-04-25 11:43
username_sc.png 16.2KB 소스코드및실행결과캡쳐

GetUserName((TCHAR*)username, &size ) 의 리턴값은 bool  형일겁니다.



출처 : https://www.tek-tips.com/viewthread.cfm?qid=1094825
char buf[300];
DWORD bufSize = sizeof(buf);

bool success = ::GetUserName(buf, &bufSize);
if (success)
    lines->Add("Network user name = " + String(buf));
else
    lines->Add("Unable to get network user name.");


따라서 GetUserName 의 리턴값은 참이면 1, 거짓이면 0 이런식으로 나오겠지요. (아마도...)

그래서 그 리턴값을 가지고 username 의 값을 읽으면 될거 같습니다.
제경우에는 잘 받아 오더군요...






하루종일 님이 쓰신 글 :
: 윈도우에 로그인한 사용자의 이름을 알기 위해 다음 코드와 같이 사용을 했습니다.
:
: String(getenv("USERNAME"));
:
: 그런데, 이 함수를 사용하면, 로그인 이름 글자수가 5개 까지만 보입니다.
: 실제 입력은 더 길은데 말입니다.
:
: 아마도, 윈도우 사용자 폴더의 길이를 사용자이름 의 5개 글자까지 제한을 두었고, 이를 따르는 듯 합니다.
:
:
: 그래서, 다른 코드를 찾아 보았습니다.
:
: String AsUserName;
: TCHAR username[UNLEN + 1];
: DWORD size  = sizeof(username);
: AsUserName = ::GetUserName((TCHAR*)username, &size );
:
: GetUserName 함수를 사용하는 코드인데, 이를 사용하면, 사용자 이름이 1로 표시 됩니다.
:
: 로그인한 사용자의 전체 이름을 알고 싶은데, 어떻게 해야 할까요?

+ -

관련 글 리스트
76292 윈도우에 로그인한 사용자의 전체 이름을 알고 싶은데, 어떻게 해야 할까요? 하루종일 884 2022/04/25
76293     Re:윈도우에 로그인한 사용자의 전체 이름을 알고 싶은데, 어떻게 해야 할까요? raven90 1046 2022/04/25
76294         감사 합니다. ^^; 하루종일 901 2022/04/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.