version: Update to 34.0.0.184, merge Debug and Release versions into one installer, use aggressive compression, install Legacy ActiveX on old systems

test-ci
Daniel 4 years ago
parent 5b374708c5
commit ede6826dc4

3
.gitignore vendored

@ -10,4 +10,5 @@ obj
*.user
*.suo
flash_*.zip
*.zip
*.7z

@ -83,6 +83,12 @@ namespace CleanFlashCommon {
return versionPath;
}
public static bool IsLegacyWindows() {
System.Version version = Environment.OSVersion.Version;
return version.Major <= 6 && (version.Major != 6 || version.Minor < 2);
}
public static Dictionary<string, string> GetReplacementStrings() {
return replacementStrings;
}

@ -15,7 +15,7 @@ namespace CleanFlashCommon {
"flashplayerapp", "flashplayer_sa", "flashplayer_sa_debug",
// Browsers that might be using Flash Player right now
"opera", "iexplore", "chrome", "chromium", "brave", "vivaldi", "basilisk", "msedge",
"seamonkey", "palemoon", "k-meleon", "plugin-container"
"seamonkey", "palemoon", "k-meleon", "plugin-container", "waterfox"
};
static Uninstaller() {

@ -32,13 +32,11 @@ namespace CleanFlashCommon {
}
public class UpdateChecker {
private static readonly bool DEBUG = true;
private static readonly string FLASH_VERSION = "34.0.0.175";
private static readonly string VERSION = "v34.0.0.175";
private static readonly string FLASH_PLAYER_EXECUTABLE = DEBUG ? "flashplayer_sa_debug.exe" : "flashplayer_sa.exe";
private static readonly string FLASH_VERSION = "34.0.0.184";
private static readonly string VERSION = "v34.0.0.184";
private static readonly string AUTHOR = "cleanflash";
private static readonly string REPO = "installer";
private static readonly string USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36";
private static readonly string USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36";
public static string GetAPILink() {
return "https://api.github.com/repos/" + AUTHOR + "/" + REPO + "/releases/latest";
@ -52,15 +50,6 @@ namespace CleanFlashCommon {
return VERSION;
}
public static string GetFlashPlayerExecutable() {
return FLASH_PLAYER_EXECUTABLE;
}
public static bool IsDebug()
{
return DEBUG;
}
private static Version GetLatestVersionUnsafe() {
using (WebClient client = new WebClient()) {
client.Headers.Add("user-agent", USER_AGENT);

@ -106,8 +106,8 @@
<StartupObject>CleanFlashInstaller.Program</StartupObject>
</PropertyGroup>
<ItemGroup>
<Reference Include="DotNetZip, Version=1.15.0.0, Culture=neutral, PublicKeyToken=6583c7c814667745, processorArchitecture=MSIL">
<HintPath>..\packages\DotNetZip.1.15.0\lib\net40\DotNetZip.dll</HintPath>
<Reference Include="SharpCompress, Version=0.24.0.0, Culture=neutral, PublicKeyToken=afb0a02973931d96, processorArchitecture=MSIL">
<HintPath>..\packages\SharpCompress.0.24.0\lib\net35\SharpCompress.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
@ -122,6 +122,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="InstallEntry.cs" />
<Compile Include="Installer.cs" />
<Compile Include="InstallFlags.cs" />
<Compile Include="InstallForm.cs">
@ -146,15 +147,7 @@
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.manifest" />
<EmbeddedResource Include="flash_np_32.zip" />
<EmbeddedResource Include="flash_np_64.zip" />
<EmbeddedResource Include="flash_ocx_32.zip" />
<EmbeddedResource Include="flash_ocx_64.zip" />
<EmbeddedResource Include="flash_pp_32.zip" />
<EmbeddedResource Include="flash_pp_64.zip" />
<EmbeddedResource Include="flash_gen_32.zip" />
<EmbeddedResource Include="flash_uninstaller.zip" />
<EmbeddedResource Include="flash_player_32.zip" />
<EmbeddedResource Include="cleanflash.7z" />
<None Include="ILMerge.props" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">

@ -0,0 +1,17 @@
namespace CleanFlashInstaller {
public class InstallEntry {
public string InstallText { get; }
public InstallFlags RequiredFlags { get; }
public string TargetDirectory { get; }
public string RegistryInstructions { get; }
public InstallEntry(string installText, int requiredFlags, string targetDirectory, string registryInstructions) {
InstallText = installText;
RequiredFlags = new InstallFlags(requiredFlags);
TargetDirectory = targetDirectory;
RegistryInstructions = registryInstructions;
}
public InstallEntry(string installText, int requiredFlags, string targetDirectory) : this(installText, requiredFlags, targetDirectory, null) { }
}
}

@ -2,26 +2,39 @@
namespace CleanFlashInstaller {
public class InstallFlags {
public static int NONE = 0;
public static int PEPPER = 1 << 0;
public static int NETSCAPE = 1 << 1;
public static int ACTIVEX = 1 << 2;
public static int PLAYER = 1 << 3;
public static int PLAYER_START_MENU = 1 << 4;
public static int PLAYER_DESKTOP = 1 << 5;
public static int X64 = 1 << 6;
public static int DEBUG = 1 << 7;
private static int UNINSTALL_TICKS = 9;
private static int INSTALL_GENERAL_TICKS = 2;
private static int INSTALL_GENERAL_TICKS = 5;
private int value = 0;
public InstallFlags() {
value = 0;
public InstallFlags(int value) {
this.value = value;
}
public InstallFlags() : this(0) { }
public int GetValue() {
return value;
}
public bool IsSet(int flag) {
return (value & flag) == flag;
}
public bool IsSet(InstallFlags flags) {
return IsSet(flags.GetValue());
}
public bool IsNoneSet() {
return value == 0;
}

@ -33,17 +33,12 @@ namespace CleanFlashInstaller {
this.titleLabel = new System.Windows.Forms.Label();
this.subtitleLabel = new System.Windows.Forms.Label();
this.disclaimerPanel = new System.Windows.Forms.Panel();
this.disclaimerBox = new CleanFlashCommon.ImageCheckBox();
this.choicePanel = new System.Windows.Forms.Panel();
this.activeXLabel = new System.Windows.Forms.Label();
this.activeXBox = new CleanFlashCommon.ImageCheckBox();
this.netscapeLabel = new System.Windows.Forms.Label();
this.netscapeBox = new CleanFlashCommon.ImageCheckBox();
this.pepperLabel = new System.Windows.Forms.Label();
this.pepperBox = new CleanFlashCommon.ImageCheckBox();
this.browserAskLabel = new System.Windows.Forms.Label();
this.installPanel = new System.Windows.Forms.Panel();
this.progressBar = new CleanFlashCommon.SmoothProgressBar();
this.progressLabel = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.beforeInstallPanel = new System.Windows.Forms.Panel();
@ -51,19 +46,27 @@ namespace CleanFlashInstaller {
this.completePanel = new System.Windows.Forms.Panel();
this.completeLabel = new System.Windows.Forms.LinkLabel();
this.failurePanel = new System.Windows.Forms.Panel();
this.copyErrorButton = new CleanFlashCommon.GradientButton();
this.failureBox = new System.Windows.Forms.TextBox();
this.failureText = new System.Windows.Forms.Label();
this.nextButton = new CleanFlashCommon.GradientButton();
this.prevButton = new CleanFlashCommon.GradientButton();
this.playerChoicePanel = new System.Windows.Forms.Panel();
this.playerStartMenuLabel = new System.Windows.Forms.Label();
this.playerStartMenuBox = new CleanFlashCommon.ImageCheckBox();
this.playerDesktopLabel = new System.Windows.Forms.Label();
this.playerDesktopBox = new CleanFlashCommon.ImageCheckBox();
this.playerLabel = new System.Windows.Forms.Label();
this.playerBox = new CleanFlashCommon.ImageCheckBox();
this.playerAskLabel = new System.Windows.Forms.Label();
this.nextButton = new CleanFlashCommon.GradientButton();
this.prevButton = new CleanFlashCommon.GradientButton();
this.playerStartMenuBox = new CleanFlashCommon.ImageCheckBox();
this.playerDesktopBox = new CleanFlashCommon.ImageCheckBox();
this.playerBox = new CleanFlashCommon.ImageCheckBox();
this.activeXBox = new CleanFlashCommon.ImageCheckBox();
this.netscapeBox = new CleanFlashCommon.ImageCheckBox();
this.pepperBox = new CleanFlashCommon.ImageCheckBox();
this.disclaimerBox = new CleanFlashCommon.ImageCheckBox();
this.copyErrorButton = new CleanFlashCommon.GradientButton();
this.progressBar = new CleanFlashCommon.SmoothProgressBar();
this.debugChoicePanel = new System.Windows.Forms.Panel();
this.debugAskLabel = new System.Windows.Forms.Label();
this.debugButton = new CleanFlashCommon.GradientButton();
((System.ComponentModel.ISupportInitialize)(this.flashLogo)).BeginInit();
this.disclaimerPanel.SuspendLayout();
this.choicePanel.SuspendLayout();
@ -72,6 +75,7 @@ namespace CleanFlashInstaller {
this.completePanel.SuspendLayout();
this.failurePanel.SuspendLayout();
this.playerChoicePanel.SuspendLayout();
this.debugChoicePanel.SuspendLayout();
this.SuspendLayout();
//
// disclaimerLabel
@ -139,26 +143,6 @@ namespace CleanFlashInstaller {
this.disclaimerPanel.Size = new System.Drawing.Size(545, 105);
this.disclaimerPanel.TabIndex = 8;
//
// disclaimerBox
//
this.disclaimerBox.Appearance = System.Windows.Forms.Appearance.Button;
this.disclaimerBox.AutoSize = true;
this.disclaimerBox.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.disclaimerBox.FlatAppearance.CheckedBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.disclaimerBox.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.disclaimerBox.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.disclaimerBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.disclaimerBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.disclaimerBox.ImageIndex = 0;
this.disclaimerBox.ImageList = this.checkboxImages;
this.disclaimerBox.Location = new System.Drawing.Point(0, 0);
this.disclaimerBox.Margin = new System.Windows.Forms.Padding(0);
this.disclaimerBox.Name = "disclaimerBox";
this.disclaimerBox.Size = new System.Drawing.Size(21, 21);
this.disclaimerBox.TabIndex = 2;
this.disclaimerBox.UseVisualStyleBackColor = true;
this.disclaimerBox.CheckedChanged += new System.EventHandler(this.disclaimerBox_CheckedChanged);
//
// choicePanel
//
this.choicePanel.Controls.Add(this.activeXLabel);
@ -183,27 +167,6 @@ namespace CleanFlashInstaller {
this.activeXLabel.Text = "ActiveX (OCX)\r\n(IE/Embedded/Desktop)";
this.activeXLabel.Click += new System.EventHandler(this.activeXLabel_Click);
//
// activeXBox
//
this.activeXBox.Appearance = System.Windows.Forms.Appearance.Button;
this.activeXBox.AutoSize = true;
this.activeXBox.Checked = true;
this.activeXBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.activeXBox.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.activeXBox.FlatAppearance.CheckedBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.activeXBox.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.activeXBox.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.activeXBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.activeXBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.activeXBox.ImageIndex = 1;
this.activeXBox.ImageList = this.checkboxImages;
this.activeXBox.Location = new System.Drawing.Point(365, 47);
this.activeXBox.Margin = new System.Windows.Forms.Padding(0);
this.activeXBox.Name = "activeXBox";
this.activeXBox.Size = new System.Drawing.Size(21, 21);
this.activeXBox.TabIndex = 7;
this.activeXBox.UseVisualStyleBackColor = true;
//
// netscapeLabel
//
this.netscapeLabel.AutoSize = true;
@ -214,27 +177,6 @@ namespace CleanFlashInstaller {
this.netscapeLabel.Text = "Netscape API (NPAPI)\r\n(Firefox/ESR/Basilisk)\r\n";
this.netscapeLabel.Click += new System.EventHandler(this.netscapeLabel_Click);
//
// netscapeBox
//
this.netscapeBox.Appearance = System.Windows.Forms.Appearance.Button;
this.netscapeBox.AutoSize = true;
this.netscapeBox.Checked = true;
this.netscapeBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.netscapeBox.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.netscapeBox.FlatAppearance.CheckedBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.netscapeBox.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.netscapeBox.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.netscapeBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.netscapeBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.netscapeBox.ImageIndex = 1;
this.netscapeBox.ImageList = this.checkboxImages;
this.netscapeBox.Location = new System.Drawing.Point(186, 47);
this.netscapeBox.Margin = new System.Windows.Forms.Padding(0);
this.netscapeBox.Name = "netscapeBox";
this.netscapeBox.Size = new System.Drawing.Size(21, 21);
this.netscapeBox.TabIndex = 5;
this.netscapeBox.UseVisualStyleBackColor = true;
//
// pepperLabel
//
this.pepperLabel.AutoSize = true;
@ -245,27 +187,6 @@ namespace CleanFlashInstaller {
this.pepperLabel.Text = "Pepper API (PPAPI)\r\n(Chrome/Opera/Brave)";
this.pepperLabel.Click += new System.EventHandler(this.pepperLabel_Click);
//
// pepperBox
//
this.pepperBox.Appearance = System.Windows.Forms.Appearance.Button;
this.pepperBox.AutoSize = true;
this.pepperBox.Checked = true;
this.pepperBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.pepperBox.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.pepperBox.FlatAppearance.CheckedBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.pepperBox.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.pepperBox.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.pepperBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.pepperBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.pepperBox.ImageIndex = 1;
this.pepperBox.ImageList = this.checkboxImages;
this.pepperBox.Location = new System.Drawing.Point(0, 47);
this.pepperBox.Margin = new System.Windows.Forms.Padding(0);
this.pepperBox.Name = "pepperBox";
this.pepperBox.Size = new System.Drawing.Size(21, 21);
this.pepperBox.TabIndex = 3;
this.pepperBox.UseVisualStyleBackColor = true;
//
// browserAskLabel
//
this.browserAskLabel.AutoSize = true;
@ -285,18 +206,6 @@ namespace CleanFlashInstaller {
this.installPanel.Size = new System.Drawing.Size(545, 105);
this.installPanel.TabIndex = 10;
//
// progressBar
//
this.progressBar.Location = new System.Drawing.Point(49, 58);
this.progressBar.Maximum = 100;
this.progressBar.Minimum = 0;
this.progressBar.Name = "progressBar";
this.progressBar.ProgressBarColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(97)))), ((int)(((byte)(147)))), ((int)(((byte)(232)))));
this.progressBar.ProgressBarColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(99)))), ((int)(((byte)(232)))));
this.progressBar.Size = new System.Drawing.Size(451, 23);
this.progressBar.TabIndex = 2;
this.progressBar.Value = 0;
//
// progressLabel
//
this.progressLabel.AutoSize = true;
@ -363,23 +272,6 @@ namespace CleanFlashInstaller {
this.failurePanel.Size = new System.Drawing.Size(545, 105);
this.failurePanel.TabIndex = 13;
//
// copyErrorButton
//
this.copyErrorButton.BackColor = System.Drawing.Color.Black;
this.copyErrorButton.Color1 = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(118)))), ((int)(((byte)(118)))));
this.copyErrorButton.Color2 = System.Drawing.Color.FromArgb(((int)(((byte)(81)))), ((int)(((byte)(81)))), ((int)(((byte)(81)))));
this.copyErrorButton.DisableAlpha = 0.644D;
this.copyErrorButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.copyErrorButton.ForeColor = System.Drawing.SystemColors.Control;
this.copyErrorButton.HoverAlpha = 0.875D;
this.copyErrorButton.Location = new System.Drawing.Point(441, 58);
this.copyErrorButton.Name = "copyErrorButton";
this.copyErrorButton.Size = new System.Drawing.Size(104, 31);
this.copyErrorButton.TabIndex = 14;
this.copyErrorButton.Text = "COPY";
this.copyErrorButton.UseVisualStyleBackColor = false;
this.copyErrorButton.Click += new System.EventHandler(this.copyErrorButton_Click);
//
// failureBox
//
this.failureBox.Location = new System.Drawing.Point(4, 44);
@ -398,6 +290,59 @@ namespace CleanFlashInstaller {
this.failureText.TabIndex = 14;
this.failureText.Text = "Oops! The installation process has encountered an unexpected problem.\r\nThe follow" +
"ing details could be useful. Press the Retry button to try again.";
//
// playerChoicePanel
//
this.playerChoicePanel.Controls.Add(this.playerStartMenuLabel);
this.playerChoicePanel.Controls.Add(this.playerStartMenuBox);
this.playerChoicePanel.Controls.Add(this.playerDesktopLabel);
this.playerChoicePanel.Controls.Add(this.playerDesktopBox);
this.playerChoicePanel.Controls.Add(this.playerLabel);
this.playerChoicePanel.Controls.Add(this.playerBox);
this.playerChoicePanel.Controls.Add(this.playerAskLabel);
this.playerChoicePanel.Location = new System.Drawing.Point(90, 162);
this.playerChoicePanel.Name = "playerChoicePanel";
this.playerChoicePanel.Size = new System.Drawing.Size(545, 105);
this.playerChoicePanel.TabIndex = 10;
//
// playerStartMenuLabel
//
this.playerStartMenuLabel.AutoSize = true;
this.playerStartMenuLabel.Location = new System.Drawing.Point(389, 47);
this.playerStartMenuLabel.Name = "playerStartMenuLabel";
this.playerStartMenuLabel.Size = new System.Drawing.Size(104, 34);
this.playerStartMenuLabel.TabIndex = 8;
this.playerStartMenuLabel.Text = "Create Shortcuts\r\nin Start Menu";
this.playerStartMenuLabel.Click += new System.EventHandler(this.playerStartMenuLabel_Click);
//
// playerDesktopLabel
//
this.playerDesktopLabel.AutoSize = true;
this.playerDesktopLabel.Location = new System.Drawing.Point(210, 47);
this.playerDesktopLabel.Name = "playerDesktopLabel";
this.playerDesktopLabel.Size = new System.Drawing.Size(104, 34);
this.playerDesktopLabel.TabIndex = 6;
this.playerDesktopLabel.Text = "Create Shortcuts\r\non Desktop";
this.playerDesktopLabel.Click += new System.EventHandler(this.playerDesktopLabel_Click);
//
// playerLabel
//
this.playerLabel.AutoSize = true;
this.playerLabel.Location = new System.Drawing.Point(24, 47);
this.playerLabel.Name = "playerLabel";
this.playerLabel.Size = new System.Drawing.Size(110, 34);
this.playerLabel.TabIndex = 4;
this.playerLabel.Text = "Install Standalone\r\nFlash Player";
this.playerLabel.Click += new System.EventHandler(this.playerLabel_Click);
//
// playerAskLabel
//
this.playerAskLabel.AutoSize = true;
this.playerAskLabel.Location = new System.Drawing.Point(-2, 2);
this.playerAskLabel.Name = "playerAskLabel";
this.playerAskLabel.Size = new System.Drawing.Size(314, 17);
this.playerAskLabel.TabIndex = 0;
this.playerAskLabel.Text = "Would you like to install the standalone Flash Player?";
//
// nextButton
//
@ -433,30 +378,6 @@ namespace CleanFlashInstaller {
this.prevButton.UseVisualStyleBackColor = false;
this.prevButton.Click += new System.EventHandler(this.prevButton_Click);
//
// playerChoicePanel
//
this.playerChoicePanel.Controls.Add(this.playerStartMenuLabel);
this.playerChoicePanel.Controls.Add(this.playerStartMenuBox);
this.playerChoicePanel.Controls.Add(this.playerDesktopLabel);
this.playerChoicePanel.Controls.Add(this.playerDesktopBox);
this.playerChoicePanel.Controls.Add(this.playerLabel);
this.playerChoicePanel.Controls.Add(this.playerBox);
this.playerChoicePanel.Controls.Add(this.playerAskLabel);
this.playerChoicePanel.Location = new System.Drawing.Point(90, 162);
this.playerChoicePanel.Name = "playerChoicePanel";
this.playerChoicePanel.Size = new System.Drawing.Size(545, 105);
this.playerChoicePanel.TabIndex = 10;
//
// playerStartMenuLabel
//
this.playerStartMenuLabel.AutoSize = true;
this.playerStartMenuLabel.Location = new System.Drawing.Point(389, 47);
this.playerStartMenuLabel.Name = "playerStartMenuLabel";
this.playerStartMenuLabel.Size = new System.Drawing.Size(104, 34);
this.playerStartMenuLabel.TabIndex = 8;
this.playerStartMenuLabel.Text = "Create Shortcuts\r\nin Start Menu";
this.playerStartMenuLabel.Click += new System.EventHandler(this.playerStartMenuLabel_Click);
//
// playerStartMenuBox
//
this.playerStartMenuBox.Appearance = System.Windows.Forms.Appearance.Button;
@ -478,16 +399,6 @@ namespace CleanFlashInstaller {
this.playerStartMenuBox.TabIndex = 7;
this.playerStartMenuBox.UseVisualStyleBackColor = true;
//
// playerDesktopLabel
//
this.playerDesktopLabel.AutoSize = true;
this.playerDesktopLabel.Location = new System.Drawing.Point(210, 47);
this.playerDesktopLabel.Name = "playerDesktopLabel";
this.playerDesktopLabel.Size = new System.Drawing.Size(104, 34);
this.playerDesktopLabel.TabIndex = 6;
this.playerDesktopLabel.Text = "Create Shortcuts\r\non Desktop";
this.playerDesktopLabel.Click += new System.EventHandler(this.playerDesktopLabel_Click);
//
// playerDesktopBox
//
this.playerDesktopBox.Appearance = System.Windows.Forms.Appearance.Button;
@ -509,16 +420,6 @@ namespace CleanFlashInstaller {
this.playerDesktopBox.TabIndex = 5;
this.playerDesktopBox.UseVisualStyleBackColor = true;
//
// playerLabel
//
this.playerLabel.AutoSize = true;
this.playerLabel.Location = new System.Drawing.Point(24, 47);
this.playerLabel.Name = "playerLabel";
this.playerLabel.Size = new System.Drawing.Size(110, 34);
this.playerLabel.TabIndex = 4;
this.playerLabel.Text = "Install Standalone\r\nFlash Player";
this.playerLabel.Click += new System.EventHandler(this.playerLabel_Click);
//
// playerBox
//
this.playerBox.Appearance = System.Windows.Forms.Appearance.Button;
@ -541,14 +442,154 @@ namespace CleanFlashInstaller {
this.playerBox.UseVisualStyleBackColor = true;
this.playerBox.CheckedChanged += new System.EventHandler(this.playerBox_CheckedChanged);
//
// playerAskLabel
// activeXBox
//
this.playerAskLabel.AutoSize = true;
this.playerAskLabel.Location = new System.Drawing.Point(-2, 2);
this.playerAskLabel.Name = "playerAskLabel";
this.playerAskLabel.Size = new System.Drawing.Size(314, 17);
this.playerAskLabel.TabIndex = 0;
this.playerAskLabel.Text = "Would you like to install the standalone Flash Player?";
this.activeXBox.Appearance = System.Windows.Forms.Appearance.Button;
this.activeXBox.AutoSize = true;
this.activeXBox.Checked = true;
this.activeXBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.activeXBox.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.activeXBox.FlatAppearance.CheckedBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.activeXBox.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.activeXBox.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.activeXBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.activeXBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.activeXBox.ImageIndex = 1;
this.activeXBox.ImageList = this.checkboxImages;
this.activeXBox.Location = new System.Drawing.Point(365, 47);
this.activeXBox.Margin = new System.Windows.Forms.Padding(0);
this.activeXBox.Name = "activeXBox";
this.activeXBox.Size = new System.Drawing.Size(21, 21);
this.activeXBox.TabIndex = 7;
this.activeXBox.UseVisualStyleBackColor = true;
//
// netscapeBox
//
this.netscapeBox.Appearance = System.Windows.Forms.Appearance.Button;
this.netscapeBox.AutoSize = true;
this.netscapeBox.Checked = true;
this.netscapeBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.netscapeBox.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.netscapeBox.FlatAppearance.CheckedBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.netscapeBox.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.netscapeBox.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.netscapeBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.netscapeBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.netscapeBox.ImageIndex = 1;
this.netscapeBox.ImageList = this.checkboxImages;
this.netscapeBox.Location = new System.Drawing.Point(186, 47);
this.netscapeBox.Margin = new System.Windows.Forms.Padding(0);
this.netscapeBox.Name = "netscapeBox";
this.netscapeBox.Size = new System.Drawing.Size(21, 21);
this.netscapeBox.TabIndex = 5;
this.netscapeBox.UseVisualStyleBackColor = true;
//
// pepperBox
//
this.pepperBox.Appearance = System.Windows.Forms.Appearance.Button;
this.pepperBox.AutoSize = true;
this.pepperBox.Checked = true;
this.pepperBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.pepperBox.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.pepperBox.FlatAppearance.CheckedBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.pepperBox.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.pepperBox.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.pepperBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.pepperBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.pepperBox.ImageIndex = 1;
this.pepperBox.ImageList = this.checkboxImages;
this.pepperBox.Location = new System.Drawing.Point(0, 47);
this.pepperBox.Margin = new System.Windows.Forms.Padding(0);
this.pepperBox.Name = "pepperBox";
this.pepperBox.Size = new System.Drawing.Size(21, 21);
this.pepperBox.TabIndex = 3;
this.pepperBox.UseVisualStyleBackColor = true;
//
// disclaimerBox
//
this.disclaimerBox.Appearance = System.Windows.Forms.Appearance.Button;
this.disclaimerBox.AutoSize = true;
this.disclaimerBox.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.disclaimerBox.FlatAppearance.CheckedBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.disclaimerBox.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.disclaimerBox.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.disclaimerBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.disclaimerBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.disclaimerBox.ImageIndex = 0;
this.disclaimerBox.ImageList = this.checkboxImages;
this.disclaimerBox.Location = new System.Drawing.Point(0, 0);
this.disclaimerBox.Margin = new System.Windows.Forms.Padding(0);
this.disclaimerBox.Name = "disclaimerBox";
this.disclaimerBox.Size = new System.Drawing.Size(21, 21);
this.disclaimerBox.TabIndex = 2;
this.disclaimerBox.UseVisualStyleBackColor = true;
this.disclaimerBox.CheckedChanged += new System.EventHandler(this.disclaimerBox_CheckedChanged);
//
// copyErrorButton
//
this.copyErrorButton.BackColor = System.Drawing.Color.Black;
this.copyErrorButton.Color1 = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(118)))), ((int)(((byte)(118)))));
this.copyErrorButton.Color2 = System.Drawing.Color.FromArgb(((int)(((byte)(81)))), ((int)(((byte)(81)))), ((int)(((byte)(81)))));
this.copyErrorButton.DisableAlpha = 0.644D;
this.copyErrorButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.copyErrorButton.ForeColor = System.Drawing.SystemColors.Control;
this.copyErrorButton.HoverAlpha = 0.875D;
this.copyErrorButton.Location = new System.Drawing.Point(441, 58);
this.copyErrorButton.Name = "copyErrorButton";
this.copyErrorButton.Size = new System.Drawing.Size(104, 31);
this.copyErrorButton.TabIndex = 14;
this.copyErrorButton.Text = "COPY";
this.copyErrorButton.UseVisualStyleBackColor = false;
this.copyErrorButton.Click += new System.EventHandler(this.copyErrorButton_Click);
//
// progressBar
//
this.progressBar.Location = new System.Drawing.Point(49, 58);
this.progressBar.Maximum = 100;
this.progressBar.Minimum = 0;
this.progressBar.Name = "progressBar";
this.progressBar.ProgressBarColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(97)))), ((int)(((byte)(147)))), ((int)(((byte)(232)))));
this.progressBar.ProgressBarColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(99)))), ((int)(((byte)(232)))));
this.progressBar.Size = new System.Drawing.Size(451, 23);
this.progressBar.TabIndex = 2;
this.progressBar.Value = 0;
//
// debugChoicePanel
//
this.debugChoicePanel.Controls.Add(this.debugButton);
this.debugChoicePanel.Controls.Add(this.debugAskLabel);
this.debugChoicePanel.Location = new System.Drawing.Point(90, 163);
this.debugChoicePanel.Name = "debugChoicePanel";
this.debugChoicePanel.Size = new System.Drawing.Size(545, 105);
this.debugChoicePanel.TabIndex = 11;
//
// debugAskLabel
//
this.debugAskLabel.AutoSize = true;
this.debugAskLabel.Location = new System.Drawing.Point(-2, 2);
this.debugAskLabel.Name = "debugAskLabel";
this.debugAskLabel.Size = new System.Drawing.Size(535, 51);
this.debugAskLabel.TabIndex = 0;
this.debugAskLabel.Text = "Would you like to install the debug version of Clean Flash Player?\r\nYou should on" +
"ly choose the debug version if you are planning to create Flash applications.\r\nI" +
"f you are not sure, simply press NEXT.";
//
// debugButton
//
this.debugButton.BackColor = System.Drawing.Color.Black;
this.debugButton.Color1 = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(118)))), ((int)(((byte)(118)))));
this.debugButton.Color2 = System.Drawing.Color.FromArgb(((int)(((byte)(81)))), ((int)(((byte)(81)))), ((int)(((byte)(81)))));
this.debugButton.DisableAlpha = 0.644D;
this.debugButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.debugButton.ForeColor = System.Drawing.SystemColors.Control;
this.debugButton.HoverAlpha = 0.875D;
this.debugButton.Location = new System.Drawing.Point(186, 65);
this.debugButton.Name = "debugButton";
this.debugButton.Size = new System.Drawing.Size(176, 31);
this.debugButton.TabIndex = 8;
this.debugButton.Text = "INSTALL DEBUG VERSION";
this.debugButton.UseVisualStyleBackColor = false;
this.debugButton.Click += new System.EventHandler(this.debugButton_Click);
//
// InstallForm
//
@ -562,13 +603,14 @@ namespace CleanFlashInstaller {
this.Controls.Add(this.flashLogo);
this.Controls.Add(this.prevButton);
this.Controls.Add(this.separator);
this.Controls.Add(this.completePanel);
this.Controls.Add(this.beforeInstallPanel);
this.Controls.Add(this.installPanel);
this.Controls.Add(this.debugChoicePanel);
this.Controls.Add(this.playerChoicePanel);
this.Controls.Add(this.choicePanel);
this.Controls.Add(this.disclaimerPanel);
this.Controls.Add(this.failurePanel);
this.Controls.Add(this.completePanel);
this.Controls.Add(this.beforeInstallPanel);
this.Controls.Add(this.installPanel);
this.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.ForeColor = System.Drawing.SystemColors.ControlLightLight;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
@ -594,6 +636,8 @@ namespace CleanFlashInstaller {
this.failurePanel.PerformLayout();
this.playerChoicePanel.ResumeLayout(false);
this.playerChoicePanel.PerformLayout();
this.debugChoicePanel.ResumeLayout(false);
this.debugChoicePanel.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@ -639,6 +683,9 @@ namespace CleanFlashInstaller {
private System.Windows.Forms.Label playerLabel;
private CleanFlashCommon.ImageCheckBox playerBox;
private System.Windows.Forms.Label playerAskLabel;
private System.Windows.Forms.Panel debugChoicePanel;
private CleanFlashCommon.GradientButton debugButton;
private System.Windows.Forms.Label debugAskLabel;
}
}

@ -10,13 +10,14 @@ namespace CleanFlashInstaller {
private static string COMPLETE_INSTALL_TEXT = @"Clean Flash Player has been successfully installed!
Don't forget, Flash Player is no longer compatible with new browsers. We recommend using:
Older Google Chrome 87
Older Mozilla Firefox 84 or Basilisk Browser
Older Mozilla Firefox 84 or Waterfox
For Flash Player updates, check out Clean Flash Player's website!";
private static string COMPLETE_UNINSTALL_TEXT = @"
All versions of Flash Player have been successfully uninstalled.
If you ever change your mind, check out Clean Flash Player's website!";
private bool debugChosen = false;
public InstallForm() {
InitializeComponent();
@ -30,6 +31,7 @@ If you ever change your mind, check out Clean Flash Player's website!";
disclaimerPanel.Visible = false;
choicePanel.Visible = false;
playerChoicePanel.Visible = false;
debugChoicePanel.Visible = false;
beforeInstallPanel.Visible = false;
installPanel.Visible = false;
completePanel.Visible = false;
@ -57,6 +59,14 @@ If you ever change your mind, check out Clean Flash Player's website!";
nextButton.Text = "NEXT";
}
private void OpenDebugChoicePanel() {
HideAllPanels();
debugChoicePanel.Visible = true;
debugChosen = false;
prevButton.Text = "BACK";
nextButton.Text = "NEXT";
}
private string JoinStringsWithAnd(List<string> strings) {
string text = string.Join(", ", strings);
int index = text.LastIndexOf(", ");
@ -117,8 +127,8 @@ If you ever change your mind, check out Clean Flash Player's website!";
if (pepperBox.Checked || netscapeBox.Checked || activeXBox.Checked) {
completeLabel.Text = COMPLETE_INSTALL_TEXT;
completeLabel.Links.Add(new LinkLabel.Link(212, 16));
completeLabel.Links.Add(new LinkLabel.Link(268, 28));
completeLabel.Links.Add(new LinkLabel.Link(212, 8));
completeLabel.Links.Add(new LinkLabel.Link(260, 28));
} else {
completeLabel.Text = COMPLETE_UNINSTALL_TEXT;
completeLabel.Links.Add(new LinkLabel.Link(110, 28));
@ -143,6 +153,7 @@ If you ever change your mind, check out Clean Flash Player's website!";
flags.SetConditionally(playerBox.Checked, InstallFlags.PLAYER);
flags.SetConditionally(playerDesktopBox.Checked, InstallFlags.PLAYER_DESKTOP);
flags.SetConditionally(playerStartMenuBox.Checked, InstallFlags.PLAYER_START_MENU);
flags.SetConditionally(debugChosen, InstallFlags.DEBUG);
progressBar.Value = 0;
progressBar.Maximum = flags.GetTicks();
@ -173,7 +184,7 @@ If you ever change your mind, check out Clean Flash Player's website!";
private void InstallForm_Load(object sender, EventArgs e) {
string version = UpdateChecker.GetFlashVersion();
subtitleLabel.Text = string.Format("built from version {0} ({1})", version, UpdateChecker.IsDebug() ? "DEBUG" : "China");
subtitleLabel.Text = string.Format("built from version {0} ({1})", version, "China");
Text = string.Format("Clean Flash Player {0} Installer", version);
OpenDisclaimerPanel();
@ -186,9 +197,11 @@ If you ever change your mind, check out Clean Flash Player's website!";
} else if (choicePanel.Visible) {
OpenDisclaimerPanel();
} else if (beforeInstallPanel.Visible) {
OpenPlayerChoicePanel();
OpenDebugChoicePanel();
} else if (playerChoicePanel.Visible) {
OpenChoicePanel();
} else if (debugChoicePanel.Visible) {
OpenPlayerChoicePanel();
}
}
@ -198,6 +211,8 @@ If you ever change your mind, check out Clean Flash Player's website!";
} else if (choicePanel.Visible) {
OpenPlayerChoicePanel();
} else if (playerChoicePanel.Visible) {
OpenDebugChoicePanel();
} else if (debugChoicePanel.Visible) {
OpenBeforeInstall();
} else if (beforeInstallPanel.Visible || failurePanel.Visible) {
OpenInstall();
@ -269,7 +284,7 @@ If you ever change your mind, check out Clean Flash Player's website!";
private void completeLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
if (e.Link.Start == 212) {
Process.Start("https://www.basilisk-browser.org");
Process.Start("https://waterfox.net");
} else {
Process.Start("https://cleanflash.github.io");
}
@ -279,5 +294,10 @@ If you ever change your mind, check out Clean Flash Player's website!";
Clipboard.SetText(failureBox.Text);
MessageBox.Show("Copied error message to clipboard!", "Clean Flash Installer", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void debugButton_Click(object sender, EventArgs e) {
debugChosen = MessageBox.Show("Are you sure you want to install the debug version?\n\nThis version is only meant to be used by experienced developers!\nIf you are not sure, choose No.", "Clean Flash Installer", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes;
OpenBeforeInstall();
}
}
}

@ -133,7 +133,7 @@ Adobe is not required by any means to provide support for this version of Flash
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACY
CAAAAk1TRnQBSQFMAgEBAgEAAegBAQHoAQEBDwEAAQ8BAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CAAAAk1TRnQBSQFMAgEBAgEAAQgBAgEIAQIBDwEAAQ8BAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABPAMAAQ8DAAEBAQABCAUAAYQBAxgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc
AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA
AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz

@ -4,7 +4,9 @@ using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Diagnostics;
using Ionic.Zip;
using SharpCompress.Archives.SevenZip;
using SharpCompress.Common;
using SharpCompress.Readers;
using IWshRuntimeLibrary;
namespace CleanFlashInstaller {
@ -25,11 +27,50 @@ namespace CleanFlashInstaller {
}
}
public static void ExtractArchive(string archiveName, string targetDirectory) {
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("CleanFlashInstaller." + archiveName)) {
using (ZipFile archive = ZipFile.Read(stream)) {
archive.ExtractAll(targetDirectory, ExtractExistingFileAction.OverwriteSilently);
public static void ExtractArchive(SevenZipArchive archive, Dictionary<string, InstallEntry> entries, IProgressForm form, InstallFlags flags) {
IReader reader = archive.ExtractAllEntries();
bool legacy = SystemInfo.IsLegacyWindows();
string lastKey = null;
while (reader.MoveToNextEntry()) {
if (reader.Entry.IsDirectory) {
continue;
}
string filename = reader.Entry.Key.Split('/')[0];
string installKey = filename.Split('-')[0];
InstallEntry installEntry = entries[installKey];
if (installEntry.RequiredFlags.GetValue() != InstallFlags.NONE) {
if (!flags.IsSet(installEntry.RequiredFlags)) {
continue;
}
if (flags.IsSet(InstallFlags.DEBUG) != filename.Contains("-debug")) {
continue;
}
}
if (installEntry.RequiredFlags.IsSet(InstallFlags.ACTIVEX)) {
if (legacy != filename.Contains("-legacy")) {
continue;
}
}
if (!installKey.Equals(lastKey)) {
form.UpdateProgressLabel(installEntry.InstallText, true);
if (!Directory.Exists(installEntry.TargetDirectory)) {
Directory.CreateDirectory(installEntry.TargetDirectory);
}
lastKey = installKey;
}
reader.WriteEntryToDirectory(installEntry.TargetDirectory, new ExtractionOptions() {
ExtractFullPath = false,
Overwrite = true
});
}
}
@ -46,12 +87,7 @@ namespace CleanFlashInstaller {
shortcut.Save();
}
public static void Install(IProgressForm form, InstallFlags flags) {
if (flags.IsNoneSet()) {
// No packages should be installed.
return;
}
private static void InstallFromArchive(SevenZipArchive archive, IProgressForm form, InstallFlags flags) {
string flash32Path = SystemInfo.GetFlash32Path();
string flash64Path = SystemInfo.GetFlash64Path();
string system32Path = SystemInfo.GetSystem32Path();
@ -59,37 +95,31 @@ namespace CleanFlashInstaller {
List<string> registryToApply = new List<string>() { Properties.Resources.installGeneral };
if (Environment.Is64BitOperatingSystem) {
flags.SetFlag(InstallFlags.X64);
registryToApply.Add(Properties.Resources.installGeneral64);
}
form.UpdateProgressLabel("Installing Flash Player utilities...", true);
ExtractArchive("flash_gen_32.zip", system32Path);
form.UpdateProgressLabel("Extracting uninstaller..", true);
ExtractArchive("flash_uninstaller.zip", flashProgram32Path);
Dictionary<string, InstallEntry> entries = new Dictionary<string, InstallEntry>() {
{ "controlpanel", new InstallEntry("Installing Flash Player utilities...", InstallFlags.NONE, system32Path) },
{ "uninstaller", new InstallEntry("Extracting uninstaller...", InstallFlags.NONE, flashProgram32Path) },
{ "standalone", new InstallEntry("Installing 32-bit Standalone Flash Player...", InstallFlags.PLAYER, flashProgram32Path) },
{ "ocx32", new InstallEntry("Installing 32-bit Flash Player for Internet Explorer...", InstallFlags.ACTIVEX, flash32Path) },
{ "np32", new InstallEntry("Installing 32-bit Flash Player for Firefox...", InstallFlags.NETSCAPE, flash32Path, Properties.Resources.installNP) },
{ "pp32", new InstallEntry("Installing 32-bit Flash Player for Chrome...", InstallFlags.PEPPER, flash32Path, Properties.Resources.installPP) },
{ "ocx64", new InstallEntry("Installing 64-bit Flash Player for Internet Explorer...", InstallFlags.ACTIVEX | InstallFlags.X64, flash64Path) },
{ "np64", new InstallEntry("Installing 64-bit Flash Player for Firefox...", InstallFlags.NETSCAPE | InstallFlags.X64, flash64Path, Properties.Resources.installNP64) },
{ "pp64", new InstallEntry("Installing 64-bit Flash Player for Chrome...", InstallFlags.PEPPER | InstallFlags.X64, flash64Path, Properties.Resources.installPP64) },
};
if (flags.IsSet(InstallFlags.PEPPER)) {
form.UpdateProgressLabel("Installing 32-bit Flash Player for Chrome...", true);
ExtractArchive("flash_pp_32.zip", flash32Path);
registryToApply.Add(Properties.Resources.installPP);
}
if (flags.IsSet(InstallFlags.NETSCAPE)) {
form.UpdateProgressLabel("Installing 32-bit Flash Player for Firefox...", true);
ExtractArchive("flash_np_32.zip", flash32Path);
registryToApply.Add(Properties.Resources.installNP);
}
if (flags.IsSet(InstallFlags.ACTIVEX)) {
form.UpdateProgressLabel("Installing 32-bit Flash Player for Internet Explorer...", true);
ExtractArchive("flash_ocx_32.zip", flash32Path);
}
if (flags.IsSet(InstallFlags.PLAYER)) {
form.UpdateProgressLabel("Installing 32-bit Standalone Flash Player...", true);
ExtractArchive("flash_player_32.zip", flashProgram32Path);
ExtractArchive(archive, entries, form, flags);
if (flags.IsSet(InstallFlags.PLAYER)) {
bool debug = flags.IsSet(InstallFlags.DEBUG);
string name = "Flash Player";
string description = "Standalone Flash Player " + UpdateChecker.GetFlashVersion();
string executable = Path.Combine(flashProgram32Path, UpdateChecker.GetFlashPlayerExecutable());
string executable = Path.Combine(flashProgram32Path, debug ? "flashplayer_sa_debug.exe" : "flashplayer_sa.exe");
if (UpdateChecker.IsDebug()) {
if (debug) {
name += " (Debug)";
description += " (Debug)";
}
@ -103,20 +133,9 @@ namespace CleanFlashInstaller {
}
}
if (Environment.Is64BitOperatingSystem) {
if (flags.IsSet(InstallFlags.PEPPER)) {
form.UpdateProgressLabel("Installing 64-bit Flash Player for Chrome...", true);
ExtractArchive("flash_pp_64.zip", flash64Path);
registryToApply.Add(Properties.Resources.installPP64);
}
if (flags.IsSet(InstallFlags.NETSCAPE)) {
form.UpdateProgressLabel("Installing 64-bit Flash Player for Firefox...", true);
ExtractArchive("flash_np_64.zip", flash64Path);
registryToApply.Add(Properties.Resources.installNP64);
}
if (flags.IsSet(InstallFlags.ACTIVEX)) {
form.UpdateProgressLabel("Installing 64-bit Flash Player for Internet Explorer...", true);
ExtractArchive("flash_ocx_64.zip", flash64Path);
foreach (InstallEntry entry in entries.Values) {
if (flags.IsSet(entry.RequiredFlags) && entry.RegistryInstructions != null) {
registryToApply.Add(entry.RegistryInstructions);
}
}
@ -133,5 +152,18 @@ namespace CleanFlashInstaller {
}
}
}
public static void Install(IProgressForm form, InstallFlags flags) {
if (flags.IsNoneSet()) {
// No packages should be installed.
return;
}
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("CleanFlashInstaller.cleanflash.7z")) {
using (SevenZipArchive archive = SevenZipArchive.Open(stream)) {
InstallFromArchive(archive, form, flags);
}
}
}
}
}

@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Clean Flash Player 34.0.0.175 Installer")]
[assembly: AssemblyTitle("Clean Flash Player 34.0.0.184 Installer")]
[assembly: AssemblyDescription("The newest version of Flash Player, patched and ready to go beyond 2021.")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("FlashPatch Team")]
[assembly: AssemblyProduct("Clean Flash Player 34.0.0.175 Installer")]
[assembly: AssemblyProduct("Clean Flash Player 34.0.0.184 Installer")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("34.0.0.175")]
[assembly: AssemblyFileVersion("34.0.0.175")]
[assembly: AssemblyVersion("34.0.0.184")]
[assembly: AssemblyFileVersion("34.0.0.184")]

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="DotNetZip" version="1.15.0" targetFramework="net40-client" />
<package id="ILMerge" version="3.0.41" targetFramework="net40" />
<package id="MSBuild.ILMerge.Task" version="1.1.3" targetFramework="net40-client" />
<package id="SharpCompress" version="0.24.0" targetFramework="net40" />
</packages>

@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Clean Flash Player 34.0.0.175 Uninstaller")]
[assembly: AssemblyTitle("Clean Flash Player 34.0.0.184 Uninstaller")]
[assembly: AssemblyDescription("The newest version of Flash Player, patched and ready to go beyond 2021.")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("FlashPatch Team")]
[assembly: AssemblyProduct("Clean Flash Player 34.0.0.175 Uninstaller")]
[assembly: AssemblyProduct("Clean Flash Player 34.0.0.184 Uninstaller")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("34.0.0.175")]
[assembly: AssemblyFileVersion("34.0.0.175")]
[assembly: AssemblyVersion("34.0.0.184")]
[assembly: AssemblyFileVersion("34.0.0.184")]

@ -115,7 +115,7 @@ namespace CleanFlashUninstaller {
private void completeLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
if (e.Link.Start == 212) {
Process.Start("https://www.basilisk-browser.org");
Process.Start("https://waterfox.net");
} else {
Process.Start("https://cleanflash.github.io");
}

Loading…
Cancel
Save