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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2016, 11:18   #1
alex0097
Форумчанин
 
Аватар для alex0097
 
Регистрация: 06.07.2010
Сообщений: 123
По умолчанию узнать user

ребят привет. Подскажите в чем ошибка

Код:

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.Button1Click(Sender: TObject);
var
 user:string; 
begin
user:='C:\Users\'+GetCurrentUserName+'\AppData';
 
  ShowMessage(user); 
end;
Но выдает вот что Windows 10:
alex0097 вне форума Ответить с цитированием
Старый 11.09.2016, 11:37   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
function GetCurrentUserName: string;
 const
   cnMaxUserNameLen = 254;
 var
   sUserName: string;
   dwUserNameLen: DWORD;
 begin
   dwUserNameLen := cnMaxUserNameLen;
   SetLength(sUserName, cnMaxUserNameLen);
   GetUserName(PChar(sUserName), dwUserNameLen);
   SetLength(sUserName, dwUserNameLen-1);
   Result := sUserName;
 end;
там терминальный ноль иначе остается.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.09.2016, 06:50   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Зачем Вам такое извращение? Если ищите папку AppData, то уж лучше её и получать, чем имя пользователя. Например так:
Код:
var
  c   : array [0..MAX_PATH] of char;
***************************************
  SHGetFolderPath(0, CSIDL_APPDATA, 0, 0, c);
FaTaL вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
User control ts-alan ASP.NET 0 02.04.2015 16:19
Узнать user-agent dim5 C++ Builder 1 31.05.2014 09:32
DateTime(Now()) for User Madmaxisss SQL, базы данных 8 09.05.2013 10:03
User Form gena777 Microsoft Office Excel 3 19.03.2012 00:47
User list RKS Работа с сетью в Delphi 8 10.09.2007 13:42