Получить текущего пользователя в настройке Inno с примером кода

Чтобы получить текущего пользователя с помощью Inno Setup, вы можете использовать функцию GetUserNameStringиз модуля SysUtils. Вот пример фрагмента кода:

[Code]
function GetUserNameString(var UserName: string; var UserNameLength: DWORD): Boolean;
  external 'GetUserNameA@advapi32.dll stdcall';
function GetCurrentUserName: string;
var
  UserName: string;
  UserNameLength: DWORD;
begin
  UserNameLength := 256; // Set the buffer length
  SetLength(UserName, UserNameLength); // Allocate memory for the buffer
  if GetUserNameString(UserName, UserNameLength) then
    Result := Trim(UserName)
  else
    Result := 'Unknown';
  SetLength(UserName, UserNameLength); // Release the unused memory
end;
procedure InitializeWizard;
var
  CurrentUser: string;
begin
  CurrentUser := GetCurrentUserName;
  MsgBox('Current user: ' + CurrentUser, mbInformation, MB_OK);
end;

Этот код определяет функцию GetCurrentUserName, которая использует функцию GetUserNameStringиз advapi32.dllдля получения имени текущего пользователя. Процедура InitializeWizardиспользуется для вызова функции GetCurrentUserNameи отображения результата в окне сообщения.