词条 | 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。