Q&A

  • GetuserName API 함수 사용에 대해서
안녕하세요..
GetuserName API 함수를 사용해서 로긴정보를 얻으려고 하는데
계속 에러가 나서요.. 컴파일 에러는 아니고 실행시 에러가 납니다
현재 환경은
ActiveX Form에 사용자 로긴정보를 그냥 ShowMessage로 테스트로
출력시키려고 하는데..
계속.. 그부분에서..에러가 나네요..

procedure TPostSetup.FileRegister;
var
   str  : String;
   username : String;
   len  : DWORD;
begin
   // 사용자 프로파일 디렉토리에 자바 설정 파일을 등록해야 한다
   // .keystore   .java_policy
   SetLength(str, 80);
   GetSystemDirectory(PChar(str), 80);
   SetLength(str, StrLen(PChar(str)));
   ShowMessage(str);
   // --> 아래부분을 주석처리하면 위의 부분은 실행이 됩니다.
   len := 128;
   SetLength(username, len);
   //username := 'test';
   GetuserName(PChar(username), len);   // 이부분에서 에러가 발생합니다..
   ShowMessage(username);
end;
1  COMMENTS
  • Profile
    최용일 2004.04.17 08:03
    안녕하세요. 최용일입니다.

    API함수 호출할 때는 되도록이면 string형은 안쓰는게 좋습니다. 대신 버퍼 잡아서 PChar로 쓰세요...

    var
        UserName: array[0..255] of Char;
        UserNameLength: LongWord;
    begin
        GetUserName(UserName, UserNameLength);
        ShowMessage(UserName);
    end;

    ^^ 항상 즐코하세요...