Sur MACOS en Basic comment récupérer le nom d'utilisateur (UserName)

Bonjour,
Lors de l’ouverture de mon document, J’ai besoin de récupérer le nom de l’utilisateur (username" pour pouvoir l’utiliser lors de sauvegardes spécifiques à partir de Calc.
Il existe la fonction Environ mais elle retourne toujours des chaines vides…

J’utilise LibreOffice 7.4.5.1. et MacOS 13.0

Merci de votre aide

Bonsoir,
L’utilisateur qui a créé le document ?
S’il est renseigné, bien sûr…
Cordialement,

Bonjour JohnHerve et bienvenue !

comme dit par @jeanmi2403, tout dépend de quel utilisateur il est question : l’utilisateur du document actuellement ouvert ou l’utilisateur au sens système (celui qui a ouvert la session de travail).

Je suppose que vous parlez de l’utilisateur “système” mais ci-dessous vous trouverez comment accéder aux deux informations, grâce aux macros du document joint (
TestUser.ods (13.0 KB)
)

  1. L’utilisateur du document (à condition que les paramètrres ad hoc aient été inscrits dans LibreOffice [1]). La démo (Module1) montre l’accès au prénom, extraite à partir de GetUserLastName() (d’autres possibilités sont montrées dans le code du Module1). La fonction de base est ReadConfigurationKeyContent().
  2. L’utilisateur qui a ouvert la session système. Le Module2 montre comment obtenir cette information, parmi bien d’autres. J’ai exploré deux méthodes : le “macroexpander” et le service “pathsubstitution”. Seul ce dernier permet d’obtenir l’information, voir GetUserName_Subst(). La fonction de base est GetPathSustitutionStr().

Tests réalisés sous LinuxMint 20.3 Cinnamon, LibreOffice 7.3.6 officiel.

[1] Outils > Options, LibreOffice > Données d'identité

Bon week-end,

Bonjour Messieurs et merci de vos réponses.

Le problème que j’avais etait que la fonction "Environ (“VariableSysteme”) comme Environ(“Username”) retournait systématiquement une chaine vide … Tout simplement parce que sur MacOs les variables système sont différentes. Au lieu de Environ(“Username”) (pour PC) j’ai utilisé Environ(“USER”) et tout fonctionne parfaitement maintenant.

Ci dessous les variables systèmes MacOS obtenus par la commande “env” dans “Terminal”

Encore merci de votre aide.

TERM_PROGRAM=Apple_Terminal
SHELL=/bin/bash
TERM=xterm-256color
TMPDIR=/var/folders/wb/nvy70ytd35gcw97n4y7cj85c0000gn/T/
TERM_PROGRAM_VERSION=447
TERM_SESSION_ID=69207DBC-23C6-44CA-9B20-701A8F9A7C74
USER=[nom]
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.UMlfrZvjZF/Listeners
PATH=/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
__CFBundleIdentifier=com.apple.Terminal
PWD=/Users/hervebaudesson
LANG=fr_FR.UTF-8
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
SHLVL=1
HOME=/Users/[nom]
LOGNAME=[nom]

Bravo pour avoir trouvé !

Une remarque cependant : votre solution ne s’applique qu’à MacOS puisque, comme vous l’avez expérimenté, les variables d’environnement portent des noms différents entre systèmes.

Pour résumer, si vous n’avez pas besoin de portabilité, votre solution interrogeant Environ() fonctionne. Si vous avez besoin de portabilité éventuelle, il faut adopter une autre stratégie.

La solution vous a été donnée ici :
https://forum.openoffice.org/fr/forum/viewtopic.php?t=66810
Il faudrait sans doute remercier les bonnes personnes.

Etant nouveau sur ce forum, comment fait-on pour marqué ce sujet comme résolu et le fermer? Merci.

Il doit y avoir une icone “coche” à cliquer en regard de la réponse qui répond le mieux à votre question initiale. Je ne sais pas si cette coche icone s’affiche sur nos propres réponses en fait, non).