Página 1 de 1

[RESUELTO] La función de configuración de sesión no se ejecuta automáticamente

Publicado: 24 de diciembre de 2024 - 15:20
por brice73
Buen día,

Tengo un problema con la función `session_setup()`, que no se ejecuta automáticamente. Hemos actualizado a la última versión de WAPT Enterprise 2.6.0.016613 y, hasta ahora, solo he probado el paquete en cuestión, que funciona excepto por la función `session_setup()`. El comportamiento es bastante extraño:

Si un usuario inicia sesión durante la instalación del paquete, la función session_setup se ejecutará correctamente solo para ese usuario después de la instalación del paquete. Sin embargo, no se ejecutará cuando otros usuarios inicien sesión.

Si ningún usuario ha iniciado sesión, tras instalar el paquete e iniciar sesión en el equipo, la función no se ejecuta (aunque vi aparecer brevemente el icono de WAPT en la barra de tareas al iniciar sesión). Sin embargo, si abro el símbolo del sistema y ejecuto `wapt-get session-setup "nombre del paquete"`, la función `session-setup` se ejecuta sin problemas. No entiendo por qué no se ejecuta automáticamente al iniciar sesión, mientras que se puede ejecutar manualmente.

En ambos casos, el comportamiento es el mismo que para un usuario que inicia sesión como administrador o usuario estándar. El comportamiento también es el mismo en Windows 11 o Windows 10.

Intenté ver la configuración del agente WAPT pero no vi ninguna configuración en la documentación que afecte la función de configuración de sesión, por lo que no noté nada especial en la configuración del agente en las estaciones de trabajo (archivo wapt-get.ini).

La función session_setup() que se llama es la siguiente:

Código: Seleccionar todo

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'))

Aparte de este único problema del lanzamiento no automático de la función session_setup cuando se abre una sesión, el paquete funciona y la aplicación instalada y configurada por él es funcional (si la función session_setup se ejecuta manualmente).

¿Podrías ayudarme a resolver este problema?
Atentamente

Re: La función de configuración de sesión no se ejecuta automáticamente

Publicado: 26 de diciembre de 2024 - 08:43
por jlepiquet
Buen día,

Este es un error conocido de nuestra parte; el parámetro --hide en el comando lanzado no funciona correctamente.

Este problema se solucionó en la versión 2.6.16714, a la que puedes actualizar.

De lo contrario, aquí está el proceso a seguir:
En

Código: Seleccionar todo

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\WAPT session setup
Eliminar --hide de la ruta de acceso directo

Código: Seleccionar todo

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

Código: Seleccionar todo

"C:\Program Files (x86)\wapt\wapt-get.exe" session-setup ALL
Y el código Python que automatiza esto:

Código: Seleccionar todo

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: La función de configuración de sesión no se ejecuta automáticamente

Publicado: 26 de diciembre de 2024 - 14:33
por brice73
Hola, ¡

muchísimas gracias por tu pronta respuesta! :)

Me alegra saber que identificaste este error y que ya está solucionado en la nueva versión de WAPT. La instalaremos muy pronto. Gracias también por la solución temporal de automatización con Python.

Saludos cordiales.