Page 1 sur 1

[RESOLU] tis-ultravnc - Amélioration installation fichier ini

Publié : 29 juin 2026 - 17:53
par STbar
Bonjour,

Je propose une modification du paquet tis-ultravnc (dernière version en date 1.8.2.4-38).

Aujourd'hui le setup est celui-ci :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *
import time


def install():
    # Declaring local variables
    package_version = control.get_software_version()
    bin_name = glob.glob("*.exe")[0]

    # Installing the software
    print("Installing: %s" % bin_name)
    install_exe_if_needed(
        bin_name,
        silentflags="/VERYSILENT /NORESTART /RESTARTEXITCODE=3010 /SP- /SUPPRESSMSGBOXES /CLOSEAPPLICATIONS /FORCECLOSEAPPLICATIONS",
        key="Ultravnc2_is1",
        min_version=package_version,
    )

    # Arbitrary server options (may be unsecure if the configuration remain untouched !)
    print("WARNING: Applying Arbitrary server options (may be unsecure if the configuration remain untouched !)")
    path_uvnc = makepath(install_location("Ultravnc2_is1"), "winvnc.exe")
    run('"%s" -install' % (path_uvnc))
    remove_file(makepath(path_uvnc, "ultravnc.ini"))
    filecopyto("ultravnc.ini", makepath(install_location("Ultravnc2_is1"), "ultravnc.ini"))
    run("regedit /s acl_vnc.reg")
    run_notfatal("net stop uvnc_service")
    time.sleep(5)
    run("net start uvnc_service")
Or depuis la version 1.8 le fichier de config ini ne doit plus être placé dans le dossier d’instillation mais dans %ProgramData%\UltraVNC\ (si installé comme service).

Je propose le setup suivant :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *
import time


def install():
    # Declaring local variables
    package_version = control.get_software_version()
    bin_name = glob.glob("*.exe")[0]

    # Installing the software
    print("Installing: %s" % bin_name)
    install_exe_if_needed(
        bin_name,
        silentflags="/VERYSILENT /NORESTART /RESTARTEXITCODE=3010 /SP- /SUPPRESSMSGBOXES /CLOSEAPPLICATIONS /FORCECLOSEAPPLICATIONS",
        key="Ultravnc2_is1",
        min_version=package_version,
    )

    # Arbitrary server options (may be unsecure if the configuration remain untouched !)
    print("WARNING: Applying Arbitrary server options (may be unsecure if the configuration remain untouched !)")
    path_uvnc_dir = install_location("Ultravnc2_is1")
    path_uvnc = makepath(path_uvnc_dir, "winvnc.exe")
    run('"%s" -install' % (path_uvnc))

    # Cleanup old config location (migration from pre-1.8)
    remove_file(makepath(path_uvnc_dir, "ultravnc.ini"))
    remove_file(makepath(path_uvnc_dir, "ultravnc.portable"))

    # Copy config to new ProgramData location
    path_programdata_uvnc = makepath(programdata(), "UltraVNC")
    mkdirs(path_programdata_uvnc)
    filecopyto("ultravnc.ini", makepath(path_programdata_uvnc, "ultravnc.ini"))

    # Registering ACL
    run("regedit /s acl_vnc.reg")

    # Service restart
    run_notfatal("net stop uvnc_service")
    time.sleep(5)
    run("net start uvnc_service")

Merci pour votre retour et vos commentaires

Re: tis-ultravnc - Amélioration installation fichier ini

Publié : 30 juin 2026 - 09:52
par gadam
Bonjour,

Merci pour le signalerment. Je l'ai intégré au paquet à notre store, il sera disponible en préprod dans quelques minutes et en prod dans 5 jours. J'ai juste ajouté la fonction uninstall() au setup.py afin de faire le ménage après la désinstallation. Pour info voici le setup.py final :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *
import time

def install():
    # Declaring local variables
    package_version = control.get_software_version()
    bin_name = glob.glob("*.exe")[0]

    # Installing the software
    print("Installing: %s" % bin_name)
    install_exe_if_needed(
        bin_name,
        silentflags="/VERYSILENT /NORESTART /RESTARTEXITCODE=3010 /SP- /SUPPRESSMSGBOXES /CLOSEAPPLICATIONS /FORCECLOSEAPPLICATIONS",
        key="Ultravnc2_is1",
        min_version=package_version,
    )

    # Arbitrary server options (may be unsecure if the configuration remain untouched !)
    print("WARNING: Applying Arbitrary server options (may be unsecure if the configuration remain untouched !)")
    path_uvnc_dir = install_location("Ultravnc2_is1")
    path_uvnc = makepath(path_uvnc_dir, "winvnc.exe")
    run('"%s" -install' % (path_uvnc))

    # Cleanup old config location (migration from pre-1.8)
    if isfile(makepath(path_uvnc_dir, "ultravnc.ini")):
        remove_file(makepath(path_uvnc_dir, "ultravnc.ini"))
    if isfile(makepath(path_uvnc_dir, "ultravnc.portable")):
        remove_file(makepath(path_uvnc_dir, "ultravnc.portable"))

    # Copy config to new ProgramData location
    path_programdata_uvnc = makepath(programdata(), "UltraVNC")
    mkdirs(path_programdata_uvnc)
    filecopyto("ultravnc.ini", makepath(path_programdata_uvnc, "ultravnc.ini"))

    # Registering ACL
    run("regedit /s acl_vnc.reg")

    # Restart service
    run_notfatal("net stop uvnc_service")
    time.sleep(5)
    run("net start uvnc_service")

def uninstall():
    # Define local variables
    path_programdata_uvnc = makepath(programdata(), "UltraVNC")
    path_programfiles_uvnc = makepath(programfiles, "uvnc bvba")

    # Uninstall
    for to_uninstall in installed_softwares("UltraVNC"):
        print(f"Removing: {to_uninstall['name']} ({to_uninstall['version']})")
        killalltasks(ensure_list(control.impacted_process))
        run(uninstall_cmd(to_uninstall["key"]))
        wait_uninstallkey_absent(to_uninstall["key"])
    
    # Cleanup
    if isdir(path_programdata_uvnc):
        remove_tree(path_programdata_uvnc)

    if isdir(path_programfiles_uvnc):
        remove_tree(path_programfiles_uvnc)
Cordialement
Gwenaël

Re: tis-ultravnc - Amélioration installation fichier ini

Publié : 30 juin 2026 - 11:00
par STbar
Merci pour le rapide retour.

Concernant la partie désinstallation, ne serait-il pas plus sage d'utiliser :

Code : Tout sélectionner

path_uvnc_dir = install_location("Ultravnc2_is1")
au lieu de

Code : Tout sélectionner

path_programfiles_uvnc = makepath(programfiles, "uvnc bvba")
Bonne journée,

Re: tis-ultravnc - Amélioration installation fichier ini

Publié : 30 juin 2026 - 11:44
par gadam
Bonjour,

Votre remarque est pertinente, j'ai mis ce chemin car le chemin fourni dans install_location est un sous-dossier de uvnc bvba : "C:\Program Files\uvnc bvba\UltraVNC\" de celui-ci et je préfère supprimer le dossier complet. La fonctionne de désinstallation seule supprime bien le dossier C:\Program Files\uvnc bvba\UltraVNC\ mais le dossier parent uvnc bvba reste s'il n'est pas vide.

Pour info le paquet publié en préprod est disponible à ce lien : https://wapt.tranquil.it/store/fr/detai ... EPROD.wapt. La publication en prod est prévue pour le 05/07 en fin de matinée.

Cordialement
Gwenaël