明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

確定當(dāng)前的用戶名

[摘要]Windows 操作系統(tǒng)提供不同的用戶賬戶,所以每個用戶可以登錄到系統(tǒng)中并具有對他們的文件和設(shè)置的訪問權(quán)。如果想要跟蹤哪個用戶運(yùn)行了一個 Visual Basic 6 程序,那么你就需要確定當(dāng)前用戶的名稱然后將其以某種方式存儲起來。這個技巧將告訴你如何去實(shí)現(xiàn)這一需要。 API 函數(shù)GetUs...

    Windows 操作系統(tǒng)提供不同的用戶賬戶,所以每個用戶可以登錄到系統(tǒng)中并具有對他們的文件和設(shè)置的訪問權(quán)。如果想要跟蹤哪個用戶運(yùn)行了一個 Visual Basic 6 程序,那么你就需要確定當(dāng)前用戶的名稱然后將其以某種方式存儲起來。這個技巧將告訴你如何去實(shí)現(xiàn)這一需要。

    API 函數(shù)GetUserName就是專門為這一用途而設(shè)計(jì)的。該函數(shù)的聲明為:

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

    第一個參數(shù)是一個字符串,用來返回用戶名;第二個參數(shù)是一個數(shù)字,表示返回的字符串的長度。在函數(shù)成功時(shí)返回值是非零(True),失敗時(shí)返回值為0(False)。我還從來沒有碰到過個函數(shù)失敗的情況,所以我總是忽略檢查返回值。

    要使用這個函數(shù),你必須創(chuàng)建一個字符串并用空格填充該字符串?崭竦臄(shù)目由字符串的長度確定,也就是能作為用戶名返回的字符串的最大長度。因?yàn)槿藗儚膩聿贿x擇長用戶名,所以我發(fā)現(xiàn)40個字符長就足夠用了。下面是代碼。

    Dim UserName As String
    UserName = Space(40)

    然而就是簡單地調(diào)用GetUserName函數(shù),如下所示:

    GetUserNameUserName, Len(UserName)

    在這個調(diào)用之后,變量UserName將包含當(dāng)前用戶的名稱。在需要時(shí)你可以在程序中使用這個方法(例如,將其存儲到一個日志文件或者存儲到注冊表中以跟蹤誰在使用這個程序)。




相關(guān)文章