Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2010, 03:33   #1
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию Как получить имя текущего пользователя в windows?

все привет.пытаюсь получить имя пользователя,мне нужно составить путь программно C:\Documents and Settings\ и дальше идет имя юзера а так как у всех разное то я хотел как то получить это имя и присвоить переменной а потом путь записать примерно так: 'C:\Documents and Settings\'+user+'\AppData\Roaming' ... нашел тут на форуме функцию
Код:
 function GetCurrentUserName: string;
 const
   cnMaxUserNameLen = 254;
 var
   sUserName: string;
   dwUserNameLen: DWORD;
 begin
   dwUserNameLen := cnMaxUserNameLen - 1;
   SetLength(sUserName, cnMaxUserNameLen);
   GetUserName(PChar(sUserName), dwUserNameLen);
   SetLength(sUserName, dwUserNameLen);
   Result := sUserName;
 end;
потом использую ее вот так
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 user:=GetCurrentUserName;
end;
но прога выдает ошибку не удалось открыть файл.нет доступа C:\Documents and Settings\betirsolt

а в переменной user в результате выполнения функции GetCurrentUserName оказывается 'betirsolt'#0
почему #0??по моему из за этого и возникает ошибка....также я пытался из реестра получить но все не получается.вобщем помогите разобраться.буду очень благодарен и всем поставлю +)))
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 04.04.2010, 03:38   #2
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

а когда я переменной user присваиваю betirsolt
Код:
user:='betirsolt'
то все работает отлично,но может этот путь можно получить гораздо легче?

извините,разобрался.вот функция
Код:
 Function GetUserFromWindows: string;
Var
  UserName    : string;
  UserNameLen : Dword;
Begin
  UserNameLen := 255;
  SetLength(userName, UserNameLen);
  If GetUserName(PChar(UserName), UserNameLen) Then
    Result := Copy(UserName,1,UserNameLen - 1)
  Else
    Result := 'admin';
End;
но тему думаю можно оставить как пример....а то тут я не нашел нормальных примеров
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось betirsolt; 04.04.2010 в 04:09.
betirsolt вне форума Ответить с цитированием
Старый 30.08.2011, 06:27   #3
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> тему думаю можно оставить как пример

как пример решения простой задачи через задницу. SHGetSpecialFolderPath() для кого ввели?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
узнать имя пользователя и пароль windows D1AVOL Общие вопросы Delphi 7 09.01.2010 12:16
Узнать имя текущего пользователя и букву диска с запущенной Windows Vistar Общие вопросы .NET 1 02.12.2009 18:16
Как узнать имя залогинившегося пользователя? Stilet JavaScript, Ajax 5 13.08.2009 23:02
Как средствами VBA получить доменное имя пользователя? Прохожий Microsoft Office Excel 3 04.10.2008 18:28
Как программно достать пароль текущего пользователя? masterdela Безопасность, Шифрование 2 22.08.2008 11:44