Используя VB6, как я получаю текущего пользователя и домен на Windows XP?

Сырая реализация, но:

#!/bin/bash

string=$(grep -o '".*"' my.csv | tr ',' ' ')

before=$(cat my.csv | cut -d',' -f1-9 | grep -v ',NA')
after=$(cat my.csv | cut -d',' -f12 | grep -v ',NA')
echo "${before},${string},${after}"

Вывод:

11/7/18,Jackson Pierce,3,3,3,3,4,3,7,"feeling alright same situation with the hip.",3.56

5
задан Jeff Yates 3 December 2008 в 14:19
поделиться

5 ответов

Один путь состоял бы в том, чтобы спросить среду:

Dim UserName As String
Dim UserDomain As String
UserName   = Environ("USERNAME")
UserDomain = Environ("USERDOMAIN")

(Работы над Windows NT и только, очевидно.)

15
ответ дан 18 December 2019 в 05:50
поделиться

И версия 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
8
ответ дан 18 December 2019 в 05:50
поделиться

Используйте следующие методы объекта WshNetwork, который доступен после ссылки на Windows Script Host Object Model в проекте:

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 возвращают то же самое - имя компьютера.

4
ответ дан 18 December 2019 в 05:50
поделиться

В основном необходимо сделать Windows API calls. Поиск vbnet.mvps.org я получаю следующие ответы.

2
ответ дан 18 December 2019 в 05:50
поделиться

Что относительно этого?

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
0
ответ дан 18 December 2019 в 05:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: