Das Pronote 2023-Paket deinstalliert Version 2022 nicht
Veröffentlicht: 30. August 2023 - 11:02 Uhr
Guten Morgen,
Ich habe das Pronote 2023-Installationspaket aus dem Forum heruntergeladen, kann aber nicht herausfinden, wie ich es so modifizieren kann, dass die vorherige Version deinstalliert wird.
Hier ist der verwendete Code
Ich habe das Pronote 2023-Installationspaket aus dem Forum heruntergeladen, kann aber nicht herausfinden, wie ich es so modifizieren kann, dass die vorherige Version deinstalliert wird.
Code: Alle auswählen
# -*- coding: utf-8 -*-
from setuphelpers import *
import platform
uninstallkey = []
# Defining variables
bin_contains = "Install_PRNclient_FR_"
app_uninstallkey = "{02871376-45F6-4642-9D84-C7681ABE361F}"
edition = "v2023.0"
SERVERNAME = "RNE.index-education.net" # Le nom DNS du serveur pronote
SERVERPORT = "49300" # Le port TCP du serveur pronote
NOMETAB = "MonETAB" # Utilisé pour personnaliser le nom du raccourci sur le bureau
def install():
# Initializing variables
package_version = control.version.split("-", 1)[0]
bin_name = glob.glob("*%s*.exe" % bin_contains)[0]
edition_old = str(int(edition[1:5]) - 1)
print("Installing: %s" % bin_name)
import tempfile
import codecs
pathinstallfile = makepath(tempfile.gettempdir(), "Setup.iss")
if installed_softwares("INDEX EDUCATION - Client PRONOTE %s - 64bit" % edition_old):
data = r"""[InstallShield Silent]
Version=v7.00
File=Response File
[File Transfer]
OverwrittenReadOnly=NoToAll
[%s-DlgOrder]
Dlg0=%s-SdLicense2Rtf-0
Count=6
Dlg1=%s-SdAskDestPath-0
Dlg2=%s-AskOptions-0
Dlg3=%s-AskOptions-1
Dlg4=%s-AskOptions-2
Dlg5=%s-SdFinish-0
[%s-SdLicense2Rtf-0]
Result=1
[%s-SdAskDestPath-0]
szDir=C:\Program Files\Index Education\Pronote %s\Réseau\Client
Result=1
[%s-AskOptions-0]
Result=1
Sel-0=0
[%s-AskOptions-1]
Result=1
Sel-0=1
Sel-1=0
Sel-2=0
Sel-3=0
[%s-AskOptions-2]
Result=1
Sel-0=0
[%s-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
""" % (
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
edition[1:5],
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
)
else:
data = r"""[InstallShield Silent]
Version=v7.00
File=Response File
[File Transfer]
OverwrittenReadOnly=NoToAll
[%s-DlgOrder]
Dlg0=%s-SdLicense2Rtf-0
Count=5
Dlg1=%s-SdAskDestPath-0
Dlg2=%s-AskOptions-0
Dlg3=%s-AskOptions-1
Dlg4=%s-SdFinish-0
[%s-SdLicense2Rtf-0]
Result=1
[%s-SdAskDestPath-0]
szDir=C:\Program Files\Index Education\Pronote %s\Réseau\Client
Result=1
[%s-AskOptions-0]
Result=1
Sel-0=1
Sel-1=0
Sel-2=0
Sel-3=0
[%s-AskOptions-1]
Result=1
Sel-0=0
[%s-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
""" % (
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
edition[1:5],
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
)
fichier = codecs.open(pathinstallfile, "w", encoding="mbcs")
fichier.write(data)
fichier.close()
install_exe_if_needed(
bin_name, silentflags="-s -f1%s" % pathinstallfile, key=app_uninstallkey, min_version=package_version, killbefore="Client PRONOTE.exe"
)
uninstallkey.remove(app_uninstallkey)
# Deleting response file
remove_file(pathinstallfile)
# Creating desktop shortcut for all users
create_desktop_shortcut(
r"Pronote%s - %s" % (edition[1:5], NOMETAB),
target="C:\Program Files\Index Education\Pronote %s\Réseau\Client\Client PRONOTE.exe" % edition[1:5],
arguments=r'-Adresse "%s" -PortTcp "%s"' % (SERVERNAME, SERVERPORT),
)
def audit():
if not installed_softwares("Mise à jour automatique"):
print("Module de Mise à jour automatique manquant")
return "ERROR"
if not isfile(r"%s\InstallShield Installation Information\%s\setup.exe" % (programfiles32, app_uninstallkey)):
print("Binaire de désinstallation manquant")
return "WARNING"
else:
for soft in installed_softwares("Mise à jour automatique"):
print(soft["name"] + " : " + soft["version"])
return "OK"
def update_package():
print("Downloading/Updating package content from upstream binary sources")
# Initializing variables
bin_name_string = "Install_PRNclient_FR_%s.%s_win64.exe"
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
app_name = control.name
url = control.sources
app_arch = control.architecture
if app_arch == "x64":
dl_arch = "win64"
else:
dl_arch = "win32"
# Getting latest version from official website
page = wgets(control.sources, proxies=proxies)
for line in page.splitlines():
if ("CLIENT EDT %s - 0." % edition[1:5]) in line:
version = line.split('-')[-1].split('<')[0].replace(" ","")
break
latest_bin = bin_name_string % (edition[1:5], version)
url_dl = "https://tele3.index-education.com/telechargement/pn/%s/exe/Install_PRNclient_FR_%s.%s_%s.exe" % (
edition,
edition[1:5],
version,
dl_arch,
)
print("Latest %s version is: %s" % (app_name, version))
print("Download url is: %s" % url_dl)
# Downloading latest binaries
if not isfile(latest_bin):
print("Downloading: %s" % latest_bin)
wget(url_dl, latest_bin, proxies=proxies)
# Checking version from file
version_from_file = get_version_from_binary(latest_bin)
if version != version_from_file:
os.rename(latest_bin, bin_name_string % (edition[1:5], version_from_file))
version = version_from_file
# Changing version of the package
control.version = "%s-%s" % (version, int(control.version.split("-")[-1]) + 1)
control.save_control_to_wapt()
print("Changing version to: %s in WAPT\\control" % control.version)
# Deleting outdated binaries
remove_outdated_binaries(version)
def uninstall():
print("uninstalling: %s" % control.package)
import tempfile
pathuninstallfile = makepath(tempfile.gettempdir(), "Uninstall.iss")
data = r"""[InstallShield Silent]
Version=v7.00
File=Response File
[File Transfer]
OverwrittenReadOnly=NoToAll
[%s-DlgOrder]
Dlg0=%s-MessageBox-0
Count=2
Dlg1=%s-SdFinishReboot-0
[%s-MessageBox-0]
Result=6
[%s-SdFinishReboot-0]
Result=1
BootOption=0
""" % (
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
app_uninstallkey,
)
fichier = open(pathuninstallfile, "w")
fichier.write(data)
fichier.close()
run(r'"%s\InstallShield Installation Information\%s\setup.exe" -s -uninst -f1%s' % (programfiles32, app_uninstallkey, pathuninstallfile))
# Deleting response file
remove_file(pathuninstallfile)
# Removing desktop shortcut for all users
remove_desktop_shortcut("Pronote%s - %s.lnk" % (edition[1:5], NOMETAB))
# Uninstalling Auto Update Agent
if uninstall_key_exists("{775E087D-A428-428C-A5FD-000010010000}"):
run('"MsiExec.exe" /X{775E087D-A428-428C-A5FD-000010010000} /qn')