首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么取的XP系统的用户名

2012-04-22 
如何取的XP系统的用户名?如何取的XP系统的用户名?我这个函数有点问题,在DELPHI5.0上可以编译运行,取不出来

如何取的XP系统的用户名?
如何取的XP系统的用户名?
我这个函数有点问题,在DELPHI5.0上可以编译运行,取不出来,但又不报错,不知道怎么回事,各位高手帮忙改改

function   GetUserName:   AnsiString;       //得到用户名
var
    lpName:   PAnsiChar;
    lpUserName:   PAnsiChar;
    lpnLength:   DWORD;
begin
        Result   :=   ' ';
        lpnLength   :=   0;
        WNetGetUser(nil,   nil,   lpnLength);   //   取得字串长度
        if   lpnLength   >   0   then   begin
              GetMem(lpUserName,   lpnLength);
              if   WNetGetUser(lpName,   lpUserName,   lpnLength)   =   NO_ERROR   then
                  Result   :=   lpUserName;
                  FreeMem(lpUserName,   lpnLength);
        end;
end;


[解决办法]
function GetName: string;
const
MAX = MAX_COMPUTERNAME_LENGTH;
var
Computer: array[0..MAX]of Char;
Size: DWORD;
Str : String;
begin
Size := MAX;
FillChar(Computer, MAX, 0);
GetComputerName(Computer, Size);
Str := Computer;
Result := Str;
end;

上面这个函数可以获取计算机用户名
[解决办法]
function GetUserName: AnsiString; //得到用户名
var
lpName: PAnsiChar;
lpUserName: PAnsiChar;
lpnLength: DWORD;
begin
Result := ' ';
lpnLength := 0;
WNetGetUser(nil, nil, lpnLength); // 取得字串长度
if lpnLength > 0 then begin
GetMem(lpUserName, lpnLength+1);
if WNetGetUser(nil, lpUserName, lpnLength) = NO_ERROR then
Result := lpUserName;
FreeMem(lpUserName);
end;
end;

热点排行