Windows 操作系统提供不同的用户账户,所以每个用户可以登录到系统中并具有对他们的文件和设置的访问权。如果想要跟踪哪个用户运行了一个 Visual Basic 6 程序,那么你就需要确定当前用户的名称然后将其以某种方式存储起来。这个技巧将告诉你如何去实现这一需要。
API 函数GetUserName就是专门为这一用途而设计的。该函数的声明为:
Declare
Function GetUserName Lib "advapi32.dll"
Alias "GetUserNameA" _
(ByVallpBuffer
As String, nSize As Long) As Long
第一个参数是一个字符串,用来返回用户名;第二个参数是一个数字,表示返回的字符串的长度。在函数成功时返回值是非零(True),失败时返回值为0(False)。我还从来没有碰到过个函数失败的情况,所以我总是忽略检查返回值。
要使用这个函数,你必须创建一个字符串并用空格填充该字符串。空格的数目由字符串的长度确定,也就是能作为用户名返回的字符串的最大长度。因为人们从来不选择长用户名,所以我发现40个字符长就足够用了。下面是代码。
Dim UserName As String
UserName = Space(40)
然而就是简单地调用GetUserName函数,如下所示:
GetUserNameUserName, Len(UserName)
在这个调用之后,变量UserName将包含当前用户的名称。在需要时你可以在程序中使用这个方法(例如,将其存储到一个日志文件或者存储到注册表中以跟踪谁在使用这个程序)。