uses ComObj;
function GetCurrentUser: string;
var UserList: Variant;
begin
UserList := CreateOleObject('Shell.Users');
Result := UserList.currentUser.setting['DisplayName'];
if Result = '' then
Result := UserList.currentUser.setting['LoginName'];
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Caption := GetCurrentUser;
end;