Jump to content
Sign in to follow this  

Adobe Reader - Installer/Updater

Recommended Posts


Thought someone might find this useful

All you have to do is download AdbeRdr930_en_US.exe and AdbeRdrUpd932_all_incr.msp from Adobe put them and this program in the same directory and run this file. Afterward you should have Adobe reader installed and at version 9.3.2.

I've just done a rewrite on it from a more basic version so if you find any problems please let me know.

It's only been tested on Windows XP and Windows 7 32 bit. If you have a different OS and it doesn't work give me some details and if you've worked it out the solution. :idea:

If I find any problems I'll release an upgrade.

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_Description=Adobe Reader Installer/Updater
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;   Adobe Reader Installer/Updater
; Description:   Checks the version of the Adobe Reader you have installed and loads
;                the apporpriate file to upgrade it to the most recent.
; Author(s):     John Morrison aka Storm-E

Local $installer = @ScriptDir & "\AdbeRdr930_en_US.exe"
Local $installerCommandLine = '/sPB /rs /l /msi"/qb-! /norestart ALLUSERS=2 EULA_ACCEPT=YES SUPPRESS_APP_LAUNCH=YES"'
Local $installerVersion = "9.3" ; Use to override reading version of installer file

Local $program = @ProgramFilesDir & "\Adobe\Reader 9.0\Reader\AcroRd32.exe"

;main program
installProgram($installer, $installerCommandLine, $program, $installerVersion)

installProgram(@ScriptDir & "\AdbeRdrUpd932_all_incr.msp", "/quiet /norestart", $program, "9.3.2")

RegWrite('HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\9.0\AdobeViewer', 'TrustedMode', 'REG_DWORD', '00000000')
RegWrite('HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\9.0\AdobeViewer', 'EULA', 'REG_DWORD', '00000001')
RegWrite('HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\9.0\AdobeViewer', 'Launched', 'REG_DWORD', '00000001')
RegWrite('HKEY_LOCAL_MACHINE\Software\Adobe\Acrobat Reader\9.0\AdobeViewer', 'EULA', 'REG_DWORD', '00000001')
RegWrite('HKEY_LOCAL_MACHINE\Software\Adobe\Acrobat Reader\9.0\AdobeViewer', 'Launched', 'REG_DWORD', '00000001')
RegDelete('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 'Adobe Reader Speed Launcher')


Func installProgram($installer, $installerCommandLine, $program, $installerVersion)
    Local $verInstaller
    If $installerVersion = "" Then
        $verInstaller = FileGetVersion($installer)
        $verInstaller = $installerVersion

    Local $verProgram = FileGetVersion($program)

    Local $LoadUpdate = False
    If $verProgram = "" Or _CompareVersions($verInstaller, $verProgram) = 1 Then
        ;ConsoleWrite("LOAD installer " & $installer & @CR)
        Return ShellExecuteWait($installer, $installerCommandLine, @TempDir, "open")
    Return 0
EndFunc   ;==>installProgram

; FunctionName:   _CompareVersions()
; Description:   Compare 2 strings in FileGetVersion format [a.b.c.d].
; Syntax:         _CompareVersions( $s_Version1, $s_Version2)
; Parameter(s):  $s_Version1  - Version 1 string to be compared
;                $s_Version2  - Version 1 string to be compared
; Requirement(s):   None
; Return Value(s):
;                   0 - Verions are the same with the same length
;                  -1 - First string is lower than second string
;                   1 - First string is higher than than second string
;                  If versions aren't the same length but all existing sections match (eg 9.3 - 9.3.2)
;                  -1 - First string is shorter than second string (9.3 < 9.3.2)
;                   1 - First string is Longer than than second string (9.3.2 > 9.3)
; Author(s):        John Morrison aka Storm-E
; Note(s):        Will compare versions in numeric (9.3) or alpha format (9.c)
Func _CompareVersions($sVersion1, $sVersion2)

    ;Split strings into component version parts
    Local $asVersion1 = StringSplit($sVersion1, ".")
    Local $asVersion2 = StringSplit($sVersion2, ".")

    Local $iElements = $asVersion1[0]
    If $asVersion1[0] > $asVersion2[0] Then
        $iElements = $asVersion2[0]

    For $iElement = 1 To $iElements
        ;ConsoleWrite("Ver1[" & $iElement &"] = " & $asVersion1[$iElement] & "Ver2[" & $iElement &"] = " & $asVersion2[$iElement] & @CR)
        ;Check if numeric version numbers (assume both verions follwo same pattern)
        If StringIsDigit($asVersion1[$iElement]) Then
            If Number($asVersion1[$iElement]) < Number($asVersion2[$iElement]) Then
                Return -1
            ElseIf Number($asVersion1[$iElement]) > Number($asVersion2[$iElement]) Then
                Return 1
            ; Alpher version system (ie A-Z)
            If $asVersion1[$iElement] < $asVersion2[$iElement] Then
                Return -1
            ElseIf $asVersion1[$iElement] > $asVersion2[$iElement] Then
                Return 1
    ;Version numbers are equal
    ;Compare version lengths (eg 9.3 < 9.3.2)
    If $asVersion1[0] > $asVersion2[0] Then
        Return 1
    ElseIf $asVersion1[0] < $asVersion2[0] Then
        Return -1
    Return 0 ; versions are equal

EndFunc   ;==>_CompareVersions

Have fun!

John Morrison



Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.