Pagina 1 di 1

[RISOLTO] tis-ultravnc - Installazione del file ini migliorata

Pubblicato: 29 giugno 2026 - 17:53
di STbar
Buongiorno,

Propongo una modifica del pacchetto tis-ultravnc (ultima versione 1.8.2.4-38).

La configurazione odierna è la seguente:

Codice: Seleziona tutto

# -*- 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")
Tuttavia, a partire dalla versione 1.8, il file di configurazione ini non deve più essere posizionato nella cartella di installazione, bensì in %ProgramData%\UltraVNC\ (se installato come servizio).

Propongo la seguente configurazione:

Codice: Seleziona tutto

# -*- 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")

Grazie per il vostro feedback e i vostri commenti

Oggetto: Re: tis-ultravnc - Miglioramento dell'installazione del file ini

Pubblicato: 30 giugno 2026 - 09:52
di gadam
Buongiorno,

Grazie per la segnalazione. L'ho aggiunta al pacchetto nel nostro store; sarà disponibile in pre-produzione tra pochi minuti e in produzione tra 5 giorni. Ho semplicemente aggiunto la funzione `uninstall()` a `setup.py` per ripulire tutto dopo la disinstallazione. Per tua informazione, ecco il codice finale di `setup.py`:

Codice: Seleziona tutto

# -*- 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)
Sinceramente
Gwenaël

Oggetto: Re: tis-ultravnc - Miglioramento dell'installazione del file ini

Pubblicato: 30 giugno 2026 - ore 11:00
di STbar
Grazie per la rapida risposta.

Per quanto riguarda il processo di disinstallazione, non sarebbe più saggio utilizzare:

Codice: Seleziona tutto

path_uvnc_dir = install_location("Ultravnc2_is1")
invece di

Codice: Seleziona tutto

path_programfiles_uvnc = makepath(programfiles, "uvnc bvba")
Buona giornata,

Oggetto: Re: tis-ultravnc - Miglioramento dell'installazione del file ini

Pubblicato: 30 giugno 2026 - 11:44
di gadam
Salve,

il suo commento è pertinente. Ho utilizzato quel percorso perché il percorso fornito in install_location è una sottocartella di uvnc bvba: "C:\Program Files\uvnc bvba\UltraVNC\", e preferisco eliminare l'intera cartella. La sola funzione di disinstallazione elimina la cartella C:\Program Files\uvnc bvba\UltraVNC\, ma la cartella principale uvnc bvba rimane se non è vuota.

Per sua informazione, il pacchetto rilasciato in pre-produzione è disponibile a questo link: https://wapt.tranquil.it/store/fr/detai ... EPROD.wapt. Il rilascio in produzione è previsto per il 5 luglio, in tarda mattinata.

Cordiali saluti,
Gwenaël