Pagina 1 di 1

[RISOLTO] Pacchetto semplice per il mirroring dello schermo

Pubblicato: 15 maggio 2024 - 10:02
di gaelds
Buongiorno,
Per consentire agli utenti che hanno dimenticato la combinazione "Windows + P" di ripristinare il mirroring dello schermo sul proiettore (1 o 2 ticket a settimana!), ho creato un pacchetto molto semplice basato sul modello "Applicazione Windows portatile". Il pacchetto copia un file eseguibile in Programmi e aggiunge un collegamento sul desktop. Questo file eseguibile è un file batch convertito in un eseguibile che esegue il comando "C:\Windows\System32\DisplaySwitch.exe /clone".
Il pacchetto si installa correttamente su 80 macchine, ma 4 di esse visualizzano ancora questo errore:

Codice: Seleziona tutto

Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 4096, in install_wapt
    packagetempdir = entry.unzip_package(cabundle=self.cabundle, target_dir = tempfile.mkdtemp(prefix='wapt',dir=self.wapt_temp_dir))
  File "C:\Program Files (x86)\wapt\waptpackage.py", line 2658, in unzip_package
    raise e
  File "C:\Program Files (x86)\wapt\waptpackage.py", line 2650, in unzip_package
    verified_by = self.check_package_signature(cabundle,ignore_missing_files=ignore_missing_files)
  File "C:\Program Files (x86)\wapt\waptpackage.py", line 2601, in check_package_signature
    errors = self.list_corrupted_files(ignore_missing_files=ignore_missing_files)
  File "C:\Program Files (x86)\wapt\waptpackage.py", line 2482, in list_corrupted_files
    elif hexdigest != _hash_file(fullpath, hash_func=hashlib.sha256):
  File "C:\Program Files (x86)\wapt\waptutils.py", line 758, in _hash_file
    buff_open = open(fname, 'rb')
OSError: [Errno 22] Invalid argument: 'C:\\Windows\\TEMP\\waptpkctalnb\\ClonerEcran\\ClonerEcran.exe'

22 : Invalid argument

Il codice per setup.py:

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *
dir_name = 'ClonerEcran'
app_name = 'ClonerEcran'
app_exe = 'ClonerEcran.exe'
app_dir = makepath(programfiles32, dir_name)
app_path = makepath(app_dir, app_exe)
shortcut_name = "Cloner l'écran"

def install():
    # Installing software
    print("Installing: dst-cloner_ecran")
    killalltasks(control.get_impacted_process_list())
    mkdirs(app_dir)
    if isdir(app_dir):
        remove_tree(app_dir)
    mkdirs(app_dir)
    print("Copying directory: %s to: %s" % (dir_name, app_dir))
    copytree2(dir_name, app_dir)

    # Creating shortcuts
    create_desktop_shortcut(shortcut_name, app_path)
    create_programs_menu_shortcut(shortcut_name, app_path)

def uninstall():
    # Uninstalling software
    killalltasks(control.get_impacted_process_list())
    if isdir(app_dir):
        remove_tree(app_dir)

    # Removing shortcuts
    remove_desktop_shortcut(shortcut_name)
    remove_programs_menu_shortcut(shortcut_name)

def audit():
    # Getting installed software version
    if isfile(app_path):
        return "OK"
    else :
        return "ERROR"
Ho ricaricato il pacchetto più volte senza successo.

PS: Nel modello del pacchetto, ho sostituito %% con % nelle istruzioni Print, altrimenti si bloccava in fase di esecuzione.

[Risolto] Pacchetto semplice per il mirroring dello schermo

Pubblicato: 15 maggio 2024 - 10:14
di gaelds
Mi dispiace, ho appena trovato la risposta alla mia domanda eseguendo `wapt-upgrade` su uno dei quattro computer. A quanto pare, l'antivirus Apex One non funziona più correttamente su questi computer ed era Windows Defender a bloccare l'installazione del pacchetto...