Привет, я использую delphi FM2 с XE3 в окнах 8.Как получить имя текущего пользователя в delphi?
Проблема, связанная с тем, что я хочу, чтобы пользователь нажал кнопку, а затем перейдите к подпапке, расположенной в appdata ex. C: \ Users \ Kobus \ AppData \ Roaming.minecraft
У каждого есть другое имя пользователя, поэтому это не будет работать.
Так я использую этот код, чтобы получить имя пользователя:
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;
username := GetCurrentUserName;
Тогда я говорю ShowMessage('C:\Users\'+username+'\AppData\Roaming\.minecraft\saves\');
проверить вывод.
И вывод, который я получаю, это: «C: \ Users \ Kobus» по какой-то причине остальная часть имени пути теряется.
Что мне нужно быть отображаемым: 'C: \ Users \' Кобус '\ AppData \ Roaming.minecraft \ сохраняет \'
Спасибо.
В системе под управлением Windows XP вы имеете в виду 'C: \ Documents and Settings \ <Политика конфиденциальности>' и т. Д. Возможно. Вы не знаете, что такое путь, даже если вы знаете имя пользователя. Используйте функцию ['SHGetSpecialFolderPath'] (http://msdn.microsoft.com/en-us/library/windows/desktop/bb762204 (v = vs.85) .aspx). –