确定当前的用户名

ZDNet软件频道 时间:2004-10-28 作者:Builder.com |  我要评论()
本文关键词:vbtips PeterAitken
Windows 操作系统提供不同的用户账户,所以每个用户可以登录到系统中并具有对他们的文件和设置的访问权。如果想要跟踪哪个用户运行了一个 Visual Basic 6 程序,那么你就需要确定当前用户的名称然后将其以某种方式存储起来。
本文译自Builder.com,未经许可请勿转载

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将包含当前用户的名称。在需要时你可以在程序中使用这个方法(例如,将其存储到一个日志文件或者存储到注册表中以跟踪谁在使用这个程序)。


本文作者:Peter Aitken自从 Visual Basic 1.0 以来就一直在使用 Visual Basic 编程。他编写过很多关于 Visual Basic 以及其他计算机和编程的书以及杂志文章。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134