Page 1 sur 1

[RESOLU] fonction session-setup ne s'exécute pas automatiquement

Posté : 24 déc. 2024 - 15:20
par brice73
Bonjour,

Je rencontre un problème avec la fonction session_setup() qui ne s'exécute pas automatiquement. Nous sommes montés à jour sur la dernière version de WAPT entreprise 2.6.0.016613, et je n'ai pour le moment testé que le paquet en question qui fonctionne hormis le lancement de la fonction session_setup(). Le comportement est en fait étrange :

- s'il y a un utilisateur connecté lors de l'installation du paquet, la fonction session_setup s'exécute bien pour l'utilisateur en question seulement, après installation du paquet. Mais elle ne s'exécute pas à l'ouverture de session d'autres utilisateurs.

- s'il n'y a pas d'utilisateur connecté, après installation du paquet et ouverture d'une session sur le poste, la fonction ne s'exécute pas (j'ai pu pourtant voir l'icône WAPT s'afficher brièvement dans la barre des tâches lors de l'ouverture de session). Pourtant, si j'ouvre une invite de commande que je lance wapt-get session-setup "nom du paquet", la fonction session-setup s'exécute alors sans problème! Je ne comprends pas pourquoi elle ne s'exécute pas automatiquement à l'ouverture de session alors qu'on arrive à l'exécuter manuellement.

Dans les 2 cas, le comportement est le même que l'utilisateur qui ouvre une session soit administrateur ou utilisateur standard. Le comportement est aussi le même sous Windows 11 ou Windows 10.

J'ai essayé de regarder sur les paramètres de l'agent WAPT mais n'ai pas vu dans la documentation de paramètres agissant sur la fonction session-setup, aussi je n'ai rien remarqué de particulier dans le paramétrage de l'agent des postes (fichier wapt-get.ini).

La fonction session_setup() qui est lancée est la suivante :

Code : Tout sélectionner

def session_setup():

    import os

    mkdirs(makepath(user_home_directory(),'.arduinoIDE'))

    with open(r'C:\cachefileWAPT\arduino-ide\arduino-cli.yaml', "r", encoding='utf-8') as fichier:
        data = fichier.read()

    data_modified=data.replace('username',os.environ['USERNAME'])

    with open(makepath(user_home_directory(),'.arduinoIDE','arduino-cli.yaml'), "w", encoding='utf-8') as fichier:
        fichier.write(data_modified)

    filecopyto(r'C:\cachefileWAPT\arduino-ide\settings.json',makepath(user_home_directory(),'.arduinoIDE'))

En dehors de ce seul problème du non lancement automatique de la fonction session_setup lors d'une ouverture de session, le paquet fonctionne et l'application installée et paramétrée par celui-ci est fonctionnelle (si fonction session_setup exécutée manuellement).

Pourriez-vous m'aider à résoudre ce problème ?
Cdlt

Re: fonction session-setup ne s'exécute pas automatiquement

Posté : 26 déc. 2024 - 08:43
par jlepiquet
Bonjour,

C'est un bug connu de notre côté, il y le paramètre --hide dans la commande lancé qui fonctionne mal.

Ce soucis est corrigé dans la version 2.6.16714 sur laquelle vous pouvez upgrader.

Sinon voici la processus à suivre :
Dans

Code : Tout sélectionner

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\WAPT session setup
Retirer le --hide du chemin du raccourci

Code : Tout sélectionner

"C:\Program Files (x86)\wapt\wapt-get.exe" session-setup ALL --hide

Code : Tout sélectionner

"C:\Program Files (x86)\wapt\wapt-get.exe" session-setup ALL
Et le code python qui permet d'automatiser cela :

Code : Tout sélectionner

start_menu_path = start_menu(1) # C:\\ProgramData\\Microsoft\\Windows\\Start Menu 
wapt_session_setup_shortcut = makepath(start_menu_path, 'Programs', 'Startup', 'WAPT session setup.lnk') 
r = winshell.Shortcut(wapt_session_setup_shortcut) 
r.arguments = r.arguments.replace(' --hide', '') 
r.write()

Re: fonction session-setup ne s'exécute pas automatiquement

Posté : 26 déc. 2024 - 14:33
par brice73
Bonjour,

Merci beaucoup pour votre réponse rapide! :)

Je suis content de savoir que c'est un bug que vous avez identifié et qui est corrigé avec une nouvelle version de WAPT. On va donc procéder à celle-ci très prochainement. Merci aussi pour la solution de secours temporaire d'automatisation en python.

Cdlt