6
A
回答
16
一種方法是問環境:
Dim UserName As String
Dim UserDomain As String
UserName = Environ("USERNAME")
UserDomain = Environ("USERDOMAIN")
0
這個什麼(在Windows NT工程和僅佔明顯。)?
Private Function IsAdmin() As Boolean
Dim groups As Object
Dim user As Object
Set groups = GetObject("WinNT://./administrators")
For Each user In groups.members
If UCase(Environ("USERNAME")) = UCase(user.Name) Then
IsAdmin = True
End If
Next user
End Function
2
基本上你需要進行Windows API調用。 正在搜索vbnet.mvps.org我得到以下答案。
8
和API版本:
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Declare Function LookupAccountName Lib "advapi32.dll" Alias "LookupAccountNameA" (lpSystemName As String, ByVal lpAccountName As String, sid As Any, cbSid As Long, ByVal ReferencedDomainName As String, cbReferencedDomainName As Long, peUse As Long) As Long
Private Sub Form_Load()
Dim sDomainName As String * 255
Dim lDomainNameLength As Long
Dim sUserName as String
Dim bUserSid(255) As Byte
Dim lSIDType As Long
Rem Create a buffer
sUserName = String(100, Chr$(0))
Rem Get the username
GetUserName sUserName, 100
Rem strip the rest of the buffer
sUserName = Left$(sUserName, InStr(sUserName, Chr$(0)) - 1)
rem Show the temppath and the username
MsgBox "Hello " + strUserName
lResult = LookupAccountName(vbNullString, sUserName, bUserSid(0), 255, sDomainName, lDomainNameLength, _
lSIDType)
if lResult <>0 then
msgbox sDomainName
end if
end sub
4
使用WshNetwork對象,引用後可用下列方法您的項目中的Windows腳本宿主對象模型:
Dim Network As WshNetwork
Set Network = New WshNetwork
Debug.Print "ComputerName: " & Network.ComputerName
Debug.Print "UserDomain: " & Network.UserDomain
Debug.Print "UserName: " & Network.UserName
爲了保持一致性,我將結果轉換爲大寫或小寫,但這些都是您需要的方法。
請注意,在沒有登錄到域的計算機上運行時,ComputerName和UserDomain都返回相同的東西 - 計算機名稱。
相關問題
- 1. 如何在Windows XP下使用C獲取當前系統IP
- 2. 在Windows上使用C++獲取當前用戶名
- 3. 如何使用NAnt獲取當前登錄的Windows用戶
- 4. 獲取windows XP,windows 7當前登錄VC中的用戶名稱
- 5. 獲取當前Windows用戶VB.net
- 6. 如何使用ASP.NET Core RC2 MVC6和IIS7獲取當前Windows用戶
- 7. 如何在Access VBA中獲取當前登錄的Windows用戶?
- 8. 如何在Windows中獲取當前用戶?
- 9. 如何在silverlight中獲取Windows的當前用戶名?
- 10. 如何在Windows中獲取當前用戶的主目錄
- 11. 如何在Windows 10 UWP上獲取用戶區域?
- 12. 如何從boto獲取當前用戶的區域?
- 13. 如何獲取當前用戶目錄?
- 14. 如何獲取當前用戶名?
- 15. 如何獲取用戶當前位置
- 16. 在Windows XP上Vb6 http發佈請求
- 17. 如何在Windows Phone的Google地圖上獲取用戶的當前位置
- 18. 獲取watchkit 2.0上用戶的當前區域
- 19. 如何使用C#在.NET中獲取當前用戶名?
- 20. 使用Spring @SubscribeMapping獲取當前用戶
- 21. 使用WMI獲取當前用戶名
- 22. 如何獲取用戶在android上的當前位置?
- 23. 獲取當前用戶名
- 24. Svn獲取當前用戶
- 25. 獲取當前用戶
- 26. 獲取當前用戶名
- 27. 在SharePoint 2007上獲取客戶端上的當前用戶名
- 28. 如何獲取當前用戶的當前日期?
- 29. 如何使用座標獲取當前區域名稱?
- 30. 如何使用Python/GAE獲取當前域名?
如果您需要根據當前用戶進行檢查,這是非常不安全的。修改環境變量就足夠了(在命令提示符中使用`SET USERNAME = pwned`並從該提示符運行應用程序)。 – Fulvio 2016-03-10 19:04:11
「不安全」一詞意味着它存在安全風險。事實並非如此。當然,流程的整個環境都可以寫入,但通常情況就是這樣 - 儘管如此,各種應用程序都是從環境中讀取它們的內容。如果任何人根據他們從環境中讀取的值確定需要適當授權的任務,那完全是他們的錯。 – Tomalak 2016-03-10 19:30:07