powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как узнать имя пользователя Windows?
11 сообщений из 11, страница 1 из 1
Как узнать имя пользователя Windows?
    #32636241
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно сабж.
Где-то читал это:
Код: plaintext
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long)
Не помогло.

Это:
Код: plaintext
Environ("username")
не работает в Win98.

Есть ли универсальный вариант?

Помогите, плиз.
...
Рейтинг: 0 / 0
Как узнать имя пользователя Windows?
    #32636245
Gotar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В VBA это выглядит так...
Dim iName as String
iName = Application.UserName
дальше делать мона что хошь...
...
Рейтинг: 0 / 0
Как узнать имя пользователя Windows?
    #32636252
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в Access (на VBA)?
...
Рейтинг: 0 / 0
Как узнать имя пользователя Windows?
    #32636288
Gotar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну, чтонть типа этого, хелп посмотри...
...
Рейтинг: 0 / 0
Как узнать имя пользователя Windows?
    #32636299
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как узнать имя пользователя Windows?
    #32636344
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S. FedorenkoСобственно сабж.
Где-то читал это:
Код: plaintext
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long)
Не помогло.

Это:
Код: plaintext
Environ("username")
не работает в Win98.

Есть ли универсальный вариант?

Помогите, плиз.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Declare Function GetUserNameAPI Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Function GetUserName() As String
  Dim sBuffer As String
  Dim lSize As Long
  sBuffer = Space$( 255 )
  lSize = Len(sBuffer)
  Call GetUserNameAPI(sBuffer, lSize)
  If lSize >  0  Then
     'GetUserName = Left$(sBuffer, lSize) 
    GetUserName = left$(sBuffer, InStr(sBuffer, Chr( 0 )) -  1 )
  Else
    GetUserName = vbNullString
  End If
End Function
весьма надежно работает, если не ошибаюсь, еще с 95 винды...
...
Рейтинг: 0 / 0
Как узнать имя пользователя Windows?
    #32671338
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hibernate
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Declare Function GetUserNameAPI Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Function GetUserName() As String
  Dim sBuffer As String
  Dim lSize As Long
  sBuffer = Space$( 255 )
  lSize = Len(sBuffer)
  Call GetUserNameAPI(sBuffer, lSize)
  If lSize >  0  Then
     'GetUserName = Left$(sBuffer, lSize) 
    GetUserName = left$(sBuffer, InStr(sBuffer, Chr( 0 )) -  1 )
  Else
    GetUserName = vbNullString
  End If
End Function
весьма надежно работает, если не ошибаюсь, еще с 95 винды...
Windows 2000 + Office 2000 = Bad DLL calling convention
...
Рейтинг: 0 / 0
Как узнать имя пользователя Windows?
    #32671465
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно...
выдрал этот пример из живого проекта, который в настоящий момент прекрасно работает под Win98Se, WinNT4 с любым sp, Win2k с любыми sp, под WinXP prof, во всевозможных кобинациях с офисами чуть ли не всех версий...

слушай, а ты не из под VBA это все пытаешься заюзать? - мож в VBA как-то по-другому - просто никогда им не занимался плотно, не знаю...
...
Рейтинг: 0 / 0
Как узнать имя пользователя Windows?
    #32671497
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я проверил пример под Win2000 professional Eng 5.00.2195 SP4
Office 2000
Пример работает.
...
Рейтинг: 0 / 0
Как узнать имя пользователя Windows?
    #32672615
S. Fedorenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все работает. Был какой-то глюк.
...
Рейтинг: 0 / 0
Как узнать имя пользователя Windows?
    #32673558
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к стати, может у кого наблюдается глюк при использовании
GetUserName = Left$(sBuffer, lSize)
вместо
GetUserName = left$(sBuffer, InStr(sBuffer, Chr(0)) - 1)
?

в оригинале - первый вариант, но у меня был случай, когда после
Call GetUserNameAPI(sBuffer, lSize)
lSize оставался равным Len(sBuffer), а не длине возвращенной строки. Поэтому пришлось писать более надежный, но и более тормозной вариант с InStr. К стати, самое неприятное в этом варианте - что если вдруг Microsoft в своих DLL начнет трактовать конец строки как-то по другому (а не Chr(0)) то опять придется что-то придумывать. :-(
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как узнать имя пользователя Windows?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]