Чтобы получить текущего пользователя с помощью 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и отображения результата в окне сообщения.