Difference between revisions of "PureEdge Viewer"

From WPKG | Open Source Software Deployment and Distribution
Jump to: navigation, search
m (Reverted edits by 128.187.217.21 (Talk) to last revision by 63.237.125.100)
(Add silent uninstaller)
Line 1: Line 1:
 +
PureEdge Viewer has been superseded by [[Lotus Forms Viewer]].
 +
 
Silent installer for PureEdge Viewer. http://www.e-publishing.af.mil/viewerdownload.asp
 
Silent installer for PureEdge Viewer. http://www.e-publishing.af.mil/viewerdownload.asp
  
Line 17: Line 19:
 
         id="pureedge"
 
         id="pureedge"
 
         name="PureEdge Viewer"
 
         name="PureEdge Viewer"
         revision="65"
+
         revision="65.1"
 
         reboot="false"
 
         reboot="false"
 
         priority="1">
 
         priority="1">
 
         <check type="uninstall" condition="exists" path="PureEdge Viewer 6.5" />
 
         <check type="uninstall" condition="exists" path="PureEdge Viewer 6.5" />
 
         <depends package-id="7zip" />
 
         <depends package-id="7zip" />
 +
        <depends package-id="activeperl" />
  
         <install cmd='"%SOFTWARE%\pureedge\PEViewer650DODJ12.exe" /s /a /s /sms /f1"%SOFTWARE%\pureedge\setup.iss" /f2"%TEMP%\setup.log"' />
+
         <install cmd='"%SOFTWARE%\pureedge\PEViewer650DODJ12.exe" /s /a /s /sms /f1"%SOFTWARE%\pureedge\setup.iss" /f2"%TEMP%\pureedge_setup.log"' />
 
         <install cmd='%COMSPEC% /c start "7-zip" /wait "%PROGRAMFILES%\7-zip\7z.exe" x -o"%ALLUSERSPROFILE%\Desktop\PureEdge Forms" -y "%SOFTWARE%\pureedge\forms.zip"' />
 
         <install cmd='%COMSPEC% /c start "7-zip" /wait "%PROGRAMFILES%\7-zip\7z.exe" x -o"%ALLUSERSPROFILE%\Desktop\PureEdge Forms" -y "%SOFTWARE%\pureedge\forms.zip"' />
  
         <upgrade cmd='"%SOFTWARE%\pureedge\PEViewer650DODJ12.exe" /s /a /s /sms /f1"%SOFTWARE%\pureedge\setup.iss" /f2"%TEMP%\setup.log"' />
+
        <upgrade cmd='"%SOFTWARE%\pureedge\silence.pl" "%PROGRAMFILES%\InstallShield Installation Information\{E0000650-0650-0650-0650-000000000650}\Setup.exe"' />
 +
        <upgrade cmd='%COMSPEC% /c start "Uninstaller" /wait "%WINDIR%\System32\rundll32.exe" "%COMMONPROGRAMFILES%\InstallShield\Engine\6\Intel 32\Ctor.dll",LaunchSetup "%PROGRAMFILES%\InstallShield Installation Information\{E0000650-0650-0650-0650-000000000650}\Setup.exe" -l0x9 -uninst /s /a /s /sms' />
 +
         <upgrade cmd='"%SOFTWARE%\pureedge\PEViewer650DODJ12.exe" /s /a /s /sms /f1"%SOFTWARE%\pureedge\setup.iss" /f2"%TEMP%\pureedge_setup.log"' />
  
         <remove cmd='%COMSPEC% /c start "Uninstaller" /wait "%WINDIR%\System32\rundll32.exe" "%COMMONPROGRAMFILES%\InstallShield\Engine\6\Intel 32\Ctor.dll",LaunchSetup "%PROGRAMFILES%\InstallShield Installation Information\{E0000650-0650-0650-0650-000000000650}\Setup.exe" -l0x9 -uninst' />
+
        <remove cmd='"%SOFTWARE%\pureedge\silence.pl" "%PROGRAMFILES%\InstallShield Installation Information\{E0000650-0650-0650-0650-000000000650}\Setup.exe"' />
 +
         <remove cmd='%COMSPEC% /c start "Uninstaller" /wait "%WINDIR%\System32\rundll32.exe" "%COMMONPROGRAMFILES%\InstallShield\Engine\6\Intel 32\Ctor.dll",LaunchSetup "%PROGRAMFILES%\InstallShield Installation Information\{E0000650-0650-0650-0650-000000000650}\Setup.exe" -l0x9 -uninst /s /a /s /sms' />
 
     </package>
 
     </package>
 
</packages>
 
</packages>
 +
</source>
 +
 +
=== Silent Uninstall ===
 +
 +
The uninstaller will ''not'' run silently. The only way to silence it is patching the uninstaller executable to bypass the message boxes. Here is a Perl script that will apply the appropriate patches.
 +
 +
silence.pl:
 +
<source lang="perl">
 +
#!/bin/perl
 +
 +
use warnings;
 +
use strict;
 +
 +
# Command arguments
 +
$#ARGV == 0 or die "Usage:\n$^X <file>\n";
 +
 +
# Open and validate file
 +
open my $fh, '+<', $ARGV[0] or die $!;
 +
seek $fh, 0, 2;
 +
if (tell $fh != 56320) {
 +
    close $fh;
 +
    die "File size does not look right.\n";
 +
}
 +
 +
# Disable first message box, "Are you sure you want to uninstall..."
 +
seek $fh, 0x2A03, 0;
 +
print $fh "\x90" x 20;
 +
 +
seek $fh, 0x2A1D, 0;
 +
print $fh "\x90" x 9;
 +
 +
# Disable second message box, "Uninstall completed..."
 +
seek $fh, 0x2CE0, 0;
 +
print $fh "\x90" x 22;
 +
 +
print "File patched successfully.\n";
 +
close $fh;
 +
0;
 
</source>
 
</source>
  
 
[[Category:Silent Installers]]
 
[[Category:Silent Installers]]

Revision as of 17:05, 2 December 2010

PureEdge Viewer has been superseded by Lotus Forms Viewer.

Silent installer for PureEdge Viewer. http://www.e-publishing.af.mil/viewerdownload.asp

PureEdge Viewer 6.5 Installer

This installer uses InstallShield. You need to first create a silent installer script by running the following command:

PEViewer650DODJ12.exe /s /a /r /f1C:\setup.iss

This creates the silent installer answer script in C:\setup.iss

I've also added an install line for unzipping all of the forms to the All Users Desktop. You can remove this line and the "7zip" depends line, if this step is not needed.

<?xml version="1.0" encoding="UTF-8"?>
<packages>
    <package
        id="pureedge"
        name="PureEdge Viewer"
        revision="65.1"
        reboot="false"
        priority="1">
        <check type="uninstall" condition="exists" path="PureEdge Viewer 6.5" />
        <depends package-id="7zip" />
        <depends package-id="activeperl" />

        <install cmd='"%SOFTWARE%\pureedge\PEViewer650DODJ12.exe" /s /a /s /sms /f1"%SOFTWARE%\pureedge\setup.iss" /f2"%TEMP%\pureedge_setup.log"' />
        <install cmd='%COMSPEC% /c start "7-zip" /wait "%PROGRAMFILES%\7-zip\7z.exe" x -o"%ALLUSERSPROFILE%\Desktop\PureEdge Forms" -y "%SOFTWARE%\pureedge\forms.zip"' />

        <upgrade cmd='"%SOFTWARE%\pureedge\silence.pl" "%PROGRAMFILES%\InstallShield Installation Information\{E0000650-0650-0650-0650-000000000650}\Setup.exe"' />
        <upgrade cmd='%COMSPEC% /c start "Uninstaller" /wait "%WINDIR%\System32\rundll32.exe" "%COMMONPROGRAMFILES%\InstallShield\Engine\6\Intel 32\Ctor.dll",LaunchSetup "%PROGRAMFILES%\InstallShield Installation Information\{E0000650-0650-0650-0650-000000000650}\Setup.exe" -l0x9 -uninst /s /a /s /sms' />
        <upgrade cmd='"%SOFTWARE%\pureedge\PEViewer650DODJ12.exe" /s /a /s /sms /f1"%SOFTWARE%\pureedge\setup.iss" /f2"%TEMP%\pureedge_setup.log"' />

        <remove cmd='"%SOFTWARE%\pureedge\silence.pl" "%PROGRAMFILES%\InstallShield Installation Information\{E0000650-0650-0650-0650-000000000650}\Setup.exe"' />
        <remove cmd='%COMSPEC% /c start "Uninstaller" /wait "%WINDIR%\System32\rundll32.exe" "%COMMONPROGRAMFILES%\InstallShield\Engine\6\Intel 32\Ctor.dll",LaunchSetup "%PROGRAMFILES%\InstallShield Installation Information\{E0000650-0650-0650-0650-000000000650}\Setup.exe" -l0x9 -uninst /s /a /s /sms' />
    </package>
</packages>

Silent Uninstall

The uninstaller will not run silently. The only way to silence it is patching the uninstaller executable to bypass the message boxes. Here is a Perl script that will apply the appropriate patches.

silence.pl:

#!/bin/perl

use warnings;
use strict;

# Command arguments
$#ARGV == 0 or die "Usage:\n$^X <file>\n";

# Open and validate file
open my $fh, '+<', $ARGV[0] or die $!;
seek $fh, 0, 2;
if (tell $fh != 56320) {
    close $fh;
    die "File size does not look right.\n";
}

# Disable first message box, "Are you sure you want to uninstall..."
seek $fh, 0x2A03, 0;
print $fh "\x90" x 20;

seek $fh, 0x2A1D, 0;
print $fh "\x90" x 9;

# Disable second message box, "Uninstall completed..."
seek $fh, 0x2CE0, 0;
print $fh "\x90" x 22;

print "File patched successfully.\n";
close $fh;
0;