
Adobe Acrobat Pro
Paquet d’installation silencieuse pour Adobe Acrobat Pro
2024.2.20687-84
- package: tis-adobe-acrobat-pro
- name: Adobe Acrobat Pro
- version: 2024.2.20687-84
- categories: Office,Utilities
- maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ,Simon Fonteneau
- editor: Adobe Inc.
- licence: proprietary_restricted,wapt_public
- locale: all
- target_os: windows
- impacted_process: Acrobat
- architecture: all
- signature_date:
- size: 1.18 Go
- installed_size: 1.45 Go
- homepage : https://adobe.com/
- depends:
- conflicts :
package : tis-adobe-acrobat-pro
version : 2024.2.20687-84
architecture : all
section : base
priority : optional
name : Adobe Acrobat Pro
categories : Office,Utilities
maintainer : WAPT Team,Tranquil IT,Jimmy PELÉ,Simon Fonteneau
description : Adobe Acrobat is a family of application software and Web services developed by Adobe Inc. to view, create, manipulate, print and manage Portable Document Format (PDF) files
depends : tis-vcredist
conflicts : tis-adobereader
maturity : PROD
locale : all
target_os : windows
min_wapt_version : 2.3
sources : https://get.adobe.com/reader/
installed_size : 1451963598
impacted_process : Acrobat
description_fr : Adobe Acrobat est une famille de logiciels d'application et de services web développés par Adobe Inc. pour visualiser, créer, manipuler, imprimer et gérer des fichiers Portable Document Format (PDF)
description_pl : Adobe Acrobat to rodzina aplikacji i usług internetowych opracowanych przez firmę Adobe Inc. do przeglądania, tworzenia, obróbki, drukowania i zarządzania plikami w formacie Portable Document Format (PDF)
description_de : Adobe Acrobat ist eine von Adobe Inc. entwickelte Familie von Anwendungssoftware und Webdiensten zum Anzeigen, Erstellen, Bearbeiten, Drucken und Verwalten von Dateien im Portable Document Format (PDF)
description_es : Adobe Acrobat es una familia de aplicaciones y servicios web desarrollados por Adobe Inc. para visualizar, crear, manipular, imprimir y gestionar archivos en formato PDF (Portable Document Format)
description_pt : O Adobe Acrobat é uma família de software de aplicação e serviços Web desenvolvidos pela Adobe Inc. para visualizar, criar, manipular, imprimir e gerir ficheiros Portable Document Format (PDF)
description_it : Adobe Acrobat è una famiglia di software applicativi e servizi Web sviluppati da Adobe Inc. per visualizzare, creare, manipolare, stampare e gestire file in formato PDF (Portable Document Format)
description_nl : Adobe Acrobat is een reeks applicatiesoftware en webservices ontwikkeld door Adobe Inc. voor het bekijken, maken, manipuleren, afdrukken en beheren van Portable Document Format (PDF)-bestanden
description_ru : Adobe Acrobat - это семейство прикладного программного обеспечения и веб-сервисов, разработанных компанией Adobe Inc. для просмотра, создания, манипулирования, печати и управления файлами Portable Document Format (PDF)
audit_schedule :
editor : Adobe Inc.
keywords : adobe,reader,acrobat,dc,pdf,portable,document,format,print,view
licence : proprietary_restricted,wapt_public
homepage : https://adobe.com/
package_uuid : e3dd1a87-515b-45e5-8f63-03da8239bacc
valid_from :
valid_until :
forced_install_on :
changelog : https://helpx.adobe.com/acrobat/release-note/release-notes-acrobat-reader.html
min_os_version : 6.1
max_os_version : 10.0
icon_sha256sum : e08ef23b951752553b93f621e169cbb918ded4eb56c504ed32f7da48d7e31b7c
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature : k/J3IJFc8lGGPRejps2/6iLcasps6lbLDDTfPM3HVKqrHV6tIpSHLGq4VuDdM9ee6WlW4Gq8EfpcVN61QH+A6poTuqPwqI/RDhdu2BYCfhiS7yVAt+QcXykg0ApAqF1jzYjBo5n2Z689R69NE4Kv4l/jtV9AimItCSQLvyw2KexUiaVhoCG3NnCqkIqzzLsqfrQ6lHDlB81tkYbBmvocT0WK6rAiY3Qsz5PvWf4hU3K99/gPxpZqhGbZnl3T9N5bZ4tO4WP9w1g1PlR5ElIVdLxAtrCSPowseqhnmHed3CGqDtQ9F8etmVslnmPiFLIaS0fRuv1TD28Mav90YGYj+A==
signature_date : 2024-05-08T08:00:47.573638
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
# -*- coding: utf-8 -*-
from setuphelpers import *
import os
import chardet
r"""
https://silentinstallhq.com/adobe-reader-dc-silent-install-how-to-guide/
AcroRdrDC2300320215_en_US.exe /sAll /rs /msi EULA_ACCEPT=YES /L*V "%WINDIR%\Temp\AdobeReader-Install.log"
MsiExec.exe /i "%~dp0AcroRead.msi" PATCH="%~dp0AcroRdrDCUpd2300320215.msp" /qn /L*V "%WINDIR%\Temp\AdobeReader-Install.log"
https://www.adobe.com/devnet-docs/acrobatetk/tools/DesktopDeployment/cmdline.html
Installation 9.0 & later ENABLE_CACHE_FILES 1 (the default) enables setup file caching of the installer files on the local system. The opposite of DISABLE_CACHE.
Installation 10.0 & later DISABLE_CACHE 1 disables setup file caching. The opposite of ENABLE_CACHE_FILES.
"C:\Windows\system32\msiexec.exe" /i {AC76BA86-7AD7-FFFF-7B44-AC0F074E4100} /L*V "C:\Windows\Temp\AdobeReader-Install.log DISABLE_CACHE=1 REBOOT="ReallySuppress" PATCH="C:\Program Files (x86)\Common Files\Adobe\Acrobat\Setup\{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}\RDC\AcroRdrDCUpd2300320215_MUI.msp" /qn
"C:\Program Files (x86)\Common Files\Adobe\Acrobat\Setup\{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}\RDC\setup.exe" /sAll /rs /msi /L*V "C:\Windows\Temp\AdobeReader-Install.log DISABLE_CACHE=1
"C:\Program Files (x86)\Common Files\Adobe\Acrobat\Setup\{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}\setup.exe" /sAll /rs /msi DISABLE_CACHE=1
"C:\Windows\system32\msiexec.exe" /i "C:\Program Files (x86)\Common Files\Adobe\Acrobat\Setup\{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}\AcroRead.msi" TRANSFORMS="" DISABLE_CACHE=1 REBOOT="ReallySuppress" PATCH="C:\Program Files (x86)\Common Files\Adobe\Acrobat\Setup\{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}\AcroRdrDCUpd2300320215_MUI.msp" /qn
some keys examples: https://github.com/bmrf/standalone_scripts/blob/master/tron_guid_whitelist.txt
# 32bit app
{
"key":"{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}",
"name":"Adobe Acrobat Reader MUI",
"version":"23.003.20215",
"install_date":"2023-07-04 00:00:00",
"install_location":"C:\\Program Files (x86)\\Adobe\\Acrobat Reader DC\\",
"uninstall_string":"MsiExec.exe /I{AC76BA86-7AD7-FFFF-7B44-AC0F074E4100}",
"publisher":"Adobe Systems Incorporated",
"system_component":0,
"win64":false
}
# 64bit app
{
"key":"{AC76BA86-1033-FF00-7760-BC15014EA700}",
"name":"Adobe Acrobat (64-bit)",
"version":"23.003.20215",
"install_date":"2023-07-04 00:00:00",
"install_location":"C:\\Program Files\\Adobe\\Acrobat DC\\",
"uninstall_string":"MsiExec.exe /I{AC76BA86-1033-FF00-7760-BC15014EA700}",
"publisher":"Adobe",
"system_component":0,
"win64":true
}
"""
app_scheduled_tasks = ["Adobe Acrobat Update Task"]
app_services = ["AdobeARMservice"]
def install():
software_version = control.get_software_version().split("20", 1)[-1] # correcting version
log_path = makepath(r"C:\Windows\Temp", "AdobeAcrobatPro-Install.log")
upgrade_log_path = makepath(r"C:\Windows\Temp", "AdobeReader-Upgrade.log")
silentflags = f'/sAll /rs /msi EULA_ACCEPT=YES /L*V "{log_path}"'
if ensure_list(control.architecture)[0] == "x64":
app_uninstallkey = "{AC76BA86-1033-FFFF-7760-BC15014EA700}"
else:
app_uninstallkey = "{AC76BA86-1033-FFFF-7760-0C0F074E4100}"
# Uninstalling old products and app if install is forced
for to_uninstall in installed_softwares("Adobe Acrobat "):
do_uninstall = False
# *7B44-AC0F074E4100} => Adobe Acrobat Reader DC*
# *7760-BC15014EA700} => Adobe Acrobat (64-bit)
# *7760-BC15014EA700} => Adobe Acrobat DC (64-bit) => Pro version ?
if not "Pro" in to_uninstall["name"] or not "MUI" in to_uninstall["name"]:
if to_uninstall["key"].endswith("7B44-AC0F074E4100}") or to_uninstall["key"].endswith("7760-BC15014EA700}"):
if not "Adobe Acrobat DC (64-bit)" in to_uninstall["name"] and not "Adobe Acrobat (64-bit)" in to_uninstall["name"]:
do_uninstall = True
print(
f'INFO: {to_uninstall["name"]} ({to_uninstall["version"]}) may be a Pro version, in which case the installation will fail, but you can still remove it with a force install.'
)
if force:
print(f'DANGER: {to_uninstall["name"]} may be a Pro version and will be remove because the install is forced.')
do_uninstall = True
if do_uninstall:
print("Removing: %s (%s)" % (to_uninstall["name"], to_uninstall["version"]))
killalltasks(ensure_list(control.impacted_process))
run(uninstall_cmd(to_uninstall["key"]))
wait_uninstallkey_absent(to_uninstall["key"])
if Version(to_uninstall["version"]) == Version(control.get_software_version()) and iswin64() and not to_uninstall["win64"]:
print(
f'INFO: {to_uninstall["name"]} (32-bit) version is installed and up-to-date. You can force-install this package to migrate to the (64-bit) version after removing the "architecture : all" package from your repo.' # or changing his "max_os_version" to "10.0"
)
# else:
# print(
# f'INFO: {to_uninstall["name"]} version is installed. You can force-install this package to migrate to the (32-bit) version (not recommended) after removing the "architecture : x64" package from your repo and changing "max_os_version" to "". '
# )
# Removing application desktop shortcut if allowed
if params.get("remove_desktop_shortcuts"):
silentflags += " DISABLEDESKTOPSHORTCUT=1"
remove_desktop_shortcut("Acrobat Reader DC")
remove_desktop_shortcut("Adobe Acrobat")
# Check spooler service since installer will crash if spooler is Disabled
if get_service_start_mode("Spooler") == "Disabled":
set_service_start_mode("Spooler", "Manual")
# Installing software
# bin_name = glob.glob("AcroRdrDC*.exe")[0]
bin_name = r"Adobe Acrobat\setup.exe"
try:
install_exe_if_needed(
bin_name,
silentflags=silentflags,
key=app_uninstallkey,
# min_version="24.001.20615",
min_version=software_version,
timeout=1800,
)
except Exception as e:
print(e)
with open(log_path, "r", encoding=detect_file_encoding(log_path)) as f:
log_content = f.read()
error(log_content)
# # Upgrading software
# bin_name = glob.glob("AcroRdrDC*.msp")[0]
# if need_install(app_uninstallkey, min_version=software_version):
# print(r"Installing: %s (%s)" % (bin_name, software_version))
# try:
# run(f'msiexec.exe /p "{bin_name}" /norestart /quiet ALLUSERS=1 EULA_ACCEPT=YES /L*V "{upgrade_log_path}"', timeout=1200)
# except Exception as e:
# print(e)
# with open(upgrade_log_path, "r", encoding=detect_file_encoding(upgrade_log_path)) as f:
# log_content = f.read()
# error(log_content)
# else:
# print("MSP setup %s already installed. Skipping" % bin_name)
# if need_install(app_uninstallkey, min_version=software_version):
# error("%s upgrade failed." % bin_name)
# Disabling application scheduled tasks
for task_name in app_scheduled_tasks:
if task_exists(task_name):
try:
disable_task(task_name)
except:
print(f"Unable to disable the task_name: {task_name}")
# Changing default start mode of the application services
for service_name in app_services:
set_service_start_mode(service_name, "Disabled")
def uninstall():
# 64bit app
editor_dir = makepath(programfiles, "Adobe")
app_dir = makepath(editor_dir, "Acrobat DC", "Acrobat")
if isdir(app_dir):
remove_tree(app_dir)
if remove_empty_directories(editor_dir):
remove_tree(editor_dir)
# 32bit app
editor_dir = makepath(programfiles32, "Adobe")
app_dir = makepath(editor_dir, "Acrobat Reader DC", "Reader")
if isdir(app_dir):
remove_tree(app_dir)
if remove_empty_directories(editor_dir):
remove_tree(editor_dir)
def remove_empty_directories(root_directory):
if os.path.exists(root_directory):
for dirpath, dirnames, filenames in os.walk(root_directory, topdown=False):
if not any(os.scandir(dirpath)):
os.rmdir(dirpath)
print(f"Removed empty directory: {dirpath}")
def detect_file_encoding(file_path):
"""Detect the encoding of a file.
Args:
file_path (str): The path to the file to be analyzed.
Returns:
str: The detected character encoding of the file.
>>> detect_file_encoding(file_path)
'UTF-8-SIG'
"""
with open(file_path, "rb") as file:
raw_data = file.read()
result = chardet.detect(raw_data)
return result["encoding"]
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
import os
def update_package():
# Declaring local variables
package_updated = False
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
download_dict = {
"windows-x64": "https://trials.adobe.com/AdobeProducts/APRO/Acrobat_HelpX/win32/Acrobat_DC_Web_x64_WWMUI.zip",
"windows-all": "https://trials.adobe.com/AdobeProducts/APRO/Acrobat_HelpX/win32/Acrobat_DC_Web_WWMUI.zip",
}
download_url = download_dict[ensure_list(control.target_os)[0].split("(")[0] + "-" + ensure_list(control.architecture)[0]]
latest_bin = download_url.split("/")[-1]
# Getting latest version information from luti
if params.get("running_as_luti"):
luti_version = wgets("https://srvluti.ad.tranquil.it/check_update_result_update.json", proxies=proxies, as_json=True,verify_cert=False)["tis-adobereader"]
else:
luti_version = wgets("https://luti.tranquil.it/check_update_result_update.json", proxies=proxies, as_json=True)["tis-adobereader"]
# Deleting binaries if needed
dir_name = "Adobe Acrobat"
to_download = False
if isdir(dir_name):
version = convert_adobe_version(inifile_readstring(makepath(dir_name, "setup.ini"), "Product", "PATCH").split("Upd")[-1].split(".")[0])
elif isfile(latest_bin):
unzip(latest_bin, ".")
remove_file(latest_bin)
version = convert_adobe_version(inifile_readstring(makepath(dir_name, "setup.ini"), "Product", "PATCH").split("Upd")[-1].split(".")[0])
else:
version = "0"
if Version(version) < Version(luti_version):
remove_outdated_binaries("*")
if isdir(dir_name):
remove_tree(dir_name)
to_download = True
if to_download or force:
# Downloading latest binaries
print("Latest %s version is: %s" % (control.name, version))
print("Download URL is: %s" % download_url)
if not isfile(latest_bin):
print("Downloading: %s" % latest_bin)
wget(download_url, latest_bin, proxies=proxies)
else:
print("Binary is present: %s" % latest_bin)
unzip(latest_bin, ".")
version = convert_adobe_version(inifile_readstring(makepath(dir_name, "setup.ini"), "Product", "PATCH").split("Upd")[-1].split(".")[0])
remove_file(latest_bin)
# Changing version of the package
if Version(version, 4) > Version(control.get_software_version(), 4):
print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
package_updated = True
else:
print("Software version up-to-date (%s)" % Version(version))
control.set_software_version(version)
control.save_control_to_wapt()
# Validating update-package-sources
return package_updated
# # Changing version of the package and validating update-package-sources
# return complete_control_version(control, version)
def convert_adobe_version(adobe_version):
if not adobe_version.startswith("20"):
adobe_version = "20" + adobe_version
adobe_version.replace(".", "")
return f"{adobe_version[:4]}.{adobe_version[4:7]}.{adobe_version[7:]}"
9d0b8492205691760bb2e6d0721be7bdedc18b8be74e2fdb51f434025be770e3 : Adobe Acrobat/AcrobatDCUpd2400220687.msp
f0b4c6f70f57cca2c299fa3ad0b66d1c200695534b1fba82fe25722c065371a8 : Adobe Acrobat/Transforms/1053.mst
7fbd3712fa46b20959edd2085310661e7204ab8436aa31a8592adf3e292524c5 : Adobe Acrobat/Transforms/1060.mst
b27f12e4cbb77b6b4277fdd98eb77c447a861216a1de2fb065f80f86ae68e616 : Adobe Acrobat/Transforms/1049.mst
e942656ba5dad19ad32fbdb522146119c6b7b47cf90267e96f2feb17439e5254 : Adobe Acrobat/Transforms/2052.mst
a79f3c3caa9e199176802f55281b2d33c73a013200fa724d03f1900fc6ddafd8 : Adobe Acrobat/Transforms/1044.mst
53fb7caef42ec341825d6e4d1f9560e23f6906bffbc5c617094686eab3b5f69b : Adobe Acrobat/Transforms/1038.mst
b739b5bcf7c3df01e713d660e927e940411bfcc89faa0b60e9582670e3e66150 : Adobe Acrobat/Transforms/1037.mst
006bf230dc807422bd774d7056f1ce2f9c197c6e3bec9abcb7c6681380f8d8e7 : Adobe Acrobat/Transforms/1031.mst
873c223a3c5c33ca375edd5d8a1dcde704cc65a3927d35b52e41ce5003deccb0 : Adobe Acrobat/Transforms/1033.mst
a96f303f72416cece763fc7723e1283e51efdad2a20d6187b5ed648701b7356c : Adobe Acrobat/Transforms/1034.mst
757d1f69e84cba14ba93472829e37fb79f7d20d66355263cb5ae505ff2110190 : Adobe Acrobat/Transforms/1025.mst
e94868a8224e8f24fcc4646b5ced04fd28a51a67f7a78bb8814434952a5c3a3f : Adobe Acrobat/Transforms/1046.mst
712a7005e8582cedf0991e20f932a03f425cc8f84d9918958ef0233594162ac5 : Adobe Acrobat/Transforms/1042.mst
2489f43c330551ad7ff7c954dd177d60970b5d34b94928e81e8b08573b0170d1 : Adobe Acrobat/Transforms/1043.mst
08512dd9ea668a3e565d75128e8c9215ef23e83ba28697667fbab5fba91673f2 : Adobe Acrobat/Transforms/1036.mst
5d7b49027dcceacd1eaf26260eefbf8aebde333700ba4335c1d474d59d691fee : Adobe Acrobat/Transforms/1035.mst
356b650077eecb77e898a344d50cdc292620223f311743cc3b1252c4d8060f9e : Adobe Acrobat/Transforms/1058.mst
70c0ba0250ba5fe8a56e8722a3ce1b40ce2a009da1ea8f6b7e07bc658b3d76b4 : Adobe Acrobat/Transforms/1045.mst
e7433b582db5d9086fd8636884005cff102a4564b16d3e96b04587a26dc510e4 : Adobe Acrobat/Transforms/6156.mst
4b8715f7b7282357905bc4233f8a635f0c8a69e07569a63712525b21317af3a5 : Adobe Acrobat/Transforms/1051.mst
803e8b74b7d005b884925f925d8653310f7becadcaee31dff3c2a9983c882964 : Adobe Acrobat/Transforms/1040.mst
224e5fdd23dec9ac8e540d0d5bc4d1d370dfdd80536f6e112b1e322177a9e0f8 : Adobe Acrobat/Transforms/1041.mst
a18c0e1de044085cdb89f593ae8c95798fd2f1cc22bdc9ec727cc5aaff313b8a : Adobe Acrobat/Transforms/1028.mst
604a3a4427df2de7e1e7a8e55bf1aaae4ccf2315a859f90bc5021aaf1fd19d52 : Adobe Acrobat/Transforms/1055.mst
88e53ae2a6561fa3c8a3480abe09b68146af86f13ceb6057ceb3af669eb674b7 : Adobe Acrobat/Transforms/1030.mst
9eed454eae3772891a25cae073cf6225ffdffa42c9140f20afc08eb77342d5c6 : Adobe Acrobat/Transforms/1029.mst
69b61b2c00323cea3686315617d0f452e205dae10c47e02cbe1ea96fea38f582 : Adobe Acrobat/WindowsInstaller-KB893803-v2-x86.exe
6dc61f0d8075a74031fa1de501688bba1b1500acdcd24184fa4c41f8c5d6b819 : Adobe Acrobat/Data1.cab
d70276e38ea1d8a4a8efeb5686deec4085d0f76b437c679bc80f92d6375231a2 : Adobe Acrobat/ABCPY.INI
deea5371bfdb6b8318ee185a9df198cf66225dc890fef6fc254cbb8b3316aead : Adobe Acrobat/Setup.exe
0a562aeb4c97b1df4595532ba5ce69ba86e04501c975aa62261977dc66e43eb2 : Adobe Acrobat/setup.ini
92590359af3d87427a6ede99d627052737918be835279ba538fee3bb7d7c3020 : Adobe Acrobat/AcroPro.msi
1923cecc59c0da490dc4b75116c6f612f0492b4db3217ae0f3227e535fd9cde9 : setup.py
b5e741d6d4ebaf51baa3d172cc25777259b01ed30cf8faa5f1dbfaa7a3c55df9 : update_package.py
e08ef23b951752553b93f621e169cbb918ded4eb56c504ed32f7da48d7e31b7c : WAPT/icon.png
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
7ae36379a9353173d23b27e7877095a9eed6f00c227078ea46fa46e10cc9460c : WAPT/changelog.txt
b0b31f7b9886c09096356d6ba3c201083bc7b3b0db83111585c3a985ba6381c5 : luti.json
7b19b5305049d8bf17d08465210f623b422a926bdd4114a93dc139ac26ce1c0a : WAPT/control
https://helpx.adobe.com/acrobat/release-note/release-notes-acrobat-reader.html
84
===
- No longer use a base configuration, instead you should import and edit the package: tis-adobe-acrobat-config-template
- Logging file are now printed in WAPT Console when crashing.
- Uninstall code reduced.
- Fix update_package()
80
===
- Printing more information about Pro version workaround
79
===
- Major code improvement
- Switching to EXE (containing msi and msp file)
- Now printing what is happening in install
- Now uninstalling the software if install is forced (to fix: "Setup has detected that you already have a more functional product installed. Setup will now terminate")
- Windows 7 is still maintained as 32bit installer
- Code is unique for package architecture "all" and "x64", even if 64bit app is called Adobe Acrobat and 32bit app is called Acrobat Reader
- Disabling WelcomeScreen
- Disabling some pop-ups
- Disabling automatic updates, telemetry and intrusive services
- Zoom 100% by default
- Manipulating registry with dicts to handle multi architecture pathes
- Avoiding AdobeCollabSync.exe to run on startup
- Avoiding uninstallation on every installs
- We need further tests to determine if "Adobe Acrobat DC (64-bit)" is the only Pro version