请输入您要查询的百科知识:

 

词条 GetUserName
释义

随着系统安全性的加强,每个系统里越来越多不同的帐号登录。假如你正在开发一个上网安全软件,让不同的用户有不同的上网权限,这样就需要识别当前的用户是什么帐号登录了,然后再作出权限分配。还有出错时,也需要对当前帐号进行记录下来,因为不同的帐号有不同的权限,有些磁盘是不允许操作的。面对这些需求,就需要使用函数GetUserName。

GetUserName概述

声明

VB声明

Declare Function GetUserName Lib "advapi32.dll " Alias "GetUserNameA " (ByVal lpBuffer As String, nSize As Long) As Long

定义

GetUserName(

lpBuffer: PChar; {缓冲区}

var nSize: DWORD {缓冲区大小}

): BOOL;

WINADVAPI BOOL WINAPI GetUserNameA (

__out_ecount_part(*pcbBuffer, *pcbBuffer) LPSTR lpBuffer,

__inout LPDWORD pcbBuffer

);

WINADVAPI BOOL WINAPI GetUserNameW (

__out_ecount_part(*pcbBuffer, *pcbBuffer) LPWSTR lpBuffer,

__inout LPDWORD pcbBuffer

);

#ifdef UNICODE

#define GetUserName GetUserNameW

#else

#define GetUserName GetUserNameA

#endif // !UNICODE

说明

取得当前用户的名字

返回值

Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError

参数表

参数 类型及说明

lpBuffer String,一个字串缓冲区,预先初始化成由nSize指定的长度。它将用于容纳用户名,是获取名称缓冲区。

nSize Long,初始化成lpBuffer的长度。返回以后,它会包含载入lpBuffer的字符数量 ,是缓冲区的大小和返回帐号的大小。

注解

1、lpBuffer和nSize需要赋初值。

2、库名:advapi32.dll

3、分类:硬件与系统函数

4、Long,TRUE(非零)表示成功,否则返回零。会设置GetLastErrorlpBuffer(String),一个字串缓冲区,预先初始化成由nSize指定的长度。它将用于容纳用户名

nSize Long,初始化成lpBuffer的长度。返回以后,它会包含载入lpBuffer的字符数量

例子

Dim s$, cnt&, dl&

cnt& = 199

s$ = String$(200,0)

dl& = GetUserName(s$, cnt)

Debug.Print Left$(s$, cnt); cnt

例一:

var

arr: array[0..254] of Char;

d: DWORD;

begin

d := SizeOf(arr);

GetUserName(arr, d);

ShowMessage(arr); {wy}

end;

例二:

var

p: PChar;

num: DWORD;

begin

num := 0;

GetUserName(nil, num);

ShowMessage(IntToStr(num));

GetMem(p, num);

GetUserName(p, num);

ShowMessage(p); {wy}

FreeMem(p);

end;

例三:

var

p: PChar;

num: DWORD;

begin

num := 0;

GetUserName(nil, num);

p := StrAlloc(num);

if GetUserName(p,num) then

ShowMessage(p) {wy}

else ShowMessage(‘无‘);

StrDispose(p);

end;

例四:如何获得当前Windows登录的用户名?

Private Sub Form_Load()

Dim s As String,cnt As Long ,dl As Long,CurUser As String cnt = 199

s = String$(200, 0)

dl = GetUserName(s, cnt)

Debug.Print(dl <> 0,"当前用户=" & Left$(s,cnt),"当前用户=")

End Sub

参考资料

1、《MSDN》

2、书库亚洲(shuku asia)编程频道

3、书库亚洲知识中心

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/24 4:12:56