Compare commits

...

10 Commits

@ -21,7 +21,7 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net40" Version="1.0.2"> <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net40" Version="1.0.3">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>

@ -51,6 +51,10 @@ namespace CleanFlashCommon {
return; return;
} }
if (file.Extension.ToLower().Equals(".ocx")) {
Uninstaller.UnregisterActiveX(file.FullName);
}
try { try {
file.IsReadOnly = false; file.IsReadOnly = false;
file.Delete(); file.Delete();

@ -27,6 +27,24 @@ namespace CleanFlashCommon {
WinAPI.AllowModifications(); WinAPI.AllowModifications();
} }
public static void UnregisterActiveX(string filename) {
string relativeFilename = Path.GetFileName(filename);
ProcessStartInfo info = new ProcessStartInfo {
FileName = "regsvr32.exe",
UseShellExecute = false,
CreateNoWindow = true
};
Directory.SetCurrentDirectory(Path.GetDirectoryName(filename));
info.Arguments = "/s /u " + relativeFilename;
ExitedProcess process = ProcessUtils.RunProcess(info);
if (!process.IsSuccessful) {
throw new InstallException(string.Format("Failed to unregister ActiveX plugin: error code {0}\n\n{1}", process.ExitCode, process.Output));
}
}
public static void UninstallRegistry() { public static void UninstallRegistry() {
if (Environment.Is64BitOperatingSystem) { if (Environment.Is64BitOperatingSystem) {
RegistryManager.ApplyRegistry(Properties.Resources.uninstallRegistry, Properties.Resources.uninstallRegistry64); RegistryManager.ApplyRegistry(Properties.Resources.uninstallRegistry, Properties.Resources.uninstallRegistry64);

@ -32,14 +32,15 @@ namespace CleanFlashCommon {
} }
public class UpdateChecker { public class UpdateChecker {
private static readonly string FLASH_VERSION = "34.0.0.267"; private static readonly string FLASH_VERSION = "34.0.0.317";
private static readonly string VERSION = "34.0.0.267"; private static readonly string VERSION = "34.0.0.317";
private static readonly string AUTHOR = "cleanflash"; private static readonly string AUTHOR = "cleanflash";
private static readonly string REPO = "installer"; 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/104.0.0.0 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/120.0.0.0 Safari/537.36";
public static string GetAPILink() { public static string GetAPILink() {
return "https://api.github.com/repos/" + AUTHOR + "/" + REPO + "/releases/latest"; return "https://api.github.com/repos/" + AUTHOR + "/" + REPO + "/releases/latest";
// obsolete, todo: switch to new api
} }
public static string GetFlashVersion() { public static string GetFlashVersion() {

@ -7,11 +7,11 @@
<TargetFramework>net40</TargetFramework> <TargetFramework>net40</TargetFramework>
<ApplicationManifest>app.manifest</ApplicationManifest> <ApplicationManifest>app.manifest</ApplicationManifest>
<StartupObject></StartupObject> <StartupObject></StartupObject>
<Product>Clean Flash Player 34.0.0.267 Installer</Product> <Product>Clean Flash Player 34.0.0.317 Installer</Product>
<AssemblyTitle>Clean Flash Player 34.0.0.267 Installer</AssemblyTitle> <AssemblyTitle>Clean Flash Player 34.0.0.317 Installer</AssemblyTitle>
<FileVersion>34.0.0.267</FileVersion> <FileVersion>34.0.0.317</FileVersion>
<AssemblyVersion>34.0.0.267</AssemblyVersion> <AssemblyVersion>34.0.0.317</AssemblyVersion>
<Version>34.0.0.267</Version> <Version>34.0.0.317</Version>
<Authors>FlashPatch Team</Authors> <Authors>FlashPatch Team</Authors>
<Company>FlashPatch Team</Company> <Company>FlashPatch Team</Company>
<ApplicationIcon>icon.ico</ApplicationIcon> <ApplicationIcon>icon.ico</ApplicationIcon>
@ -19,17 +19,6 @@
<ItemGroup> <ItemGroup>
<None Remove="cleanflash.7z" /> <None Remove="cleanflash.7z" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<COMReference Include="IWshRuntimeLibrary">
<WrapperTool>tlbimp</WrapperTool>
<VersionMinor>0</VersionMinor>
<VersionMajor>1</VersionMajor>
<Guid>f935dc20-1cf0-11d0-adb9-00c04fd58a0b</Guid>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
<EmbedInteropTypes>true</EmbedInteropTypes>
</COMReference>
</ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="icon.ico" /> <Content Include="icon.ico" />
</ItemGroup> </ItemGroup>
@ -52,7 +41,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="ILRepack.Lib.MSBuild.Task" Version="2.0.18.2" /> <PackageReference Include="ILRepack.Lib.MSBuild.Task" Version="2.0.18.2" />
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net40" Version="1.0.2"> <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net40" Version="1.0.3">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>

@ -8,11 +8,10 @@ using System.Windows.Forms;
namespace CleanFlashInstaller { namespace CleanFlashInstaller {
public partial class InstallForm : Form, IProgressForm { public partial class InstallForm : Form, IProgressForm {
private static string COMPLETE_INSTALL_TEXT = @"Clean Flash Player has been successfully installed! 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: Don't forget, Flash Player is no longer compatible with new browsers.
Older Google Chrome 87
Older Mozilla Firefox 84 or Waterfox
For Flash Player updates, check out Clean Flash Player's website!"; For browser recommendations and Flash Player updates,
check out Clean Flash Player's website!";
private static string COMPLETE_UNINSTALL_TEXT = @" private static string COMPLETE_UNINSTALL_TEXT = @"
All versions of Flash Player have been successfully uninstalled. All versions of Flash Player have been successfully uninstalled.
@ -127,8 +126,7 @@ If you ever change your mind, check out Clean Flash Player's website!";
if (pepperBox.Checked || netscapeBox.Checked || activeXBox.Checked) { if (pepperBox.Checked || netscapeBox.Checked || activeXBox.Checked) {
completeLabel.Text = COMPLETE_INSTALL_TEXT; completeLabel.Text = COMPLETE_INSTALL_TEXT;
completeLabel.Links.Add(new LinkLabel.Link(212, 8)); completeLabel.Links.Add(new LinkLabel.Link(187, 28));
completeLabel.Links.Add(new LinkLabel.Link(260, 28));
} else { } else {
completeLabel.Text = COMPLETE_UNINSTALL_TEXT; completeLabel.Text = COMPLETE_UNINSTALL_TEXT;
completeLabel.Links.Add(new LinkLabel.Link(110, 28)); completeLabel.Links.Add(new LinkLabel.Link(110, 28));
@ -283,11 +281,7 @@ If you ever change your mind, check out Clean Flash Player's website!";
} }
private void completeLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { private void completeLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
if (e.Link.Start == 212) { Process.Start("https://gitlab.com/cleanflash/installer#clean-flash-player");
Process.Start("https://classic.waterfox.net");
} else {
Process.Start("https://cleanflash.github.io");
}
} }
private void copyErrorButton_Click(object sender, EventArgs e) { private void copyErrorButton_Click(object sender, EventArgs e) {

@ -1,5 +1,6 @@
using CleanFlashCommon; using CleanFlashCommon;
using System; using System;
using System.Text;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
@ -7,20 +8,29 @@ using System.Diagnostics;
using SharpCompress.Archives.SevenZip; using SharpCompress.Archives.SevenZip;
using SharpCompress.Common; using SharpCompress.Common;
using SharpCompress.Readers; using SharpCompress.Readers;
using IWshRuntimeLibrary; using System.Runtime.InteropServices;
namespace CleanFlashInstaller { namespace CleanFlashInstaller {
public class Installer { public class Installer {
public static void RegisterActiveX(string filename) { public static void RegisterActiveX(string filename) {
string relativeFilename = Path.GetFileName(filename);
ProcessStartInfo info = new ProcessStartInfo {
FileName = "regsvr32.exe",
UseShellExecute = false,
CreateNoWindow = true
};
Directory.SetCurrentDirectory(Path.GetDirectoryName(filename)); Directory.SetCurrentDirectory(Path.GetDirectoryName(filename));
ExitedProcess process = ProcessUtils.RunProcess(
new ProcessStartInfo { info.Arguments = "/s /u " + relativeFilename;
FileName = "regsvr32.exe", ExitedProcess process = ProcessUtils.RunProcess(info);
Arguments = "/s " + Path.GetFileName(filename),
UseShellExecute = false, if (!process.IsSuccessful) {
CreateNoWindow = true throw new InstallException(string.Format("Failed to unregister ActiveX plugin: error code {0}\n\n{1}", process.ExitCode, process.Output));
} }
);
info.Arguments = "/s " + relativeFilename;
process = ProcessUtils.RunProcess(info);
if (!process.IsSuccessful) { if (!process.IsSuccessful) {
throw new InstallException(string.Format("Failed to register ActiveX plugin: error code {0}\n\n{1}", process.ExitCode, process.Output)); throw new InstallException(string.Format("Failed to register ActiveX plugin: error code {0}\n\n{1}", process.ExitCode, process.Output));
@ -75,16 +85,24 @@ namespace CleanFlashInstaller {
} }
public static void CreateShortcut(string folder, string executable, string name, string description) { public static void CreateShortcut(string folder, string executable, string name, string description) {
WshShell wsh = new WshShell(); Type t = Type.GetTypeFromCLSID(new Guid("72C24DD5-D70A-438B-8A42-98424B88AFB8"));
IWshShortcut shortcut = wsh.CreateShortcut(Path.Combine(folder, name + ".lnk")) as IWshShortcut; dynamic shell = Activator.CreateInstance(t);
shortcut.Arguments = ""; try {
shortcut.TargetPath = executable; var lnk = shell.CreateShortcut(Path.Combine(folder, name + ".lnk"));
shortcut.WindowStyle = (int) WshWindowStyle.WshNormalFocus;
shortcut.Description = description; try {
shortcut.WorkingDirectory = Path.GetDirectoryName(executable); lnk.TargetPath = executable;
shortcut.IconLocation = executable; lnk.IconLocation = executable;
shortcut.Save(); lnk.Description = description;
lnk.WorkingDirectory = folder;
lnk.Save();
} finally {
Marshal.FinalReleaseComObject(lnk);
}
} finally {
Marshal.FinalReleaseComObject(shell);
}
} }
private static void InstallFromArchive(SevenZipArchive archive, IProgressForm form, InstallFlags flags) { private static void InstallFromArchive(SevenZipArchive archive, IProgressForm form, InstallFlags flags) {

@ -130,11 +130,11 @@
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Clean Flash Player] [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Clean Flash Player]
"DisplayName"="Clean Flash Player ${VERSION}" "DisplayName"="Clean Flash Player ${VERSION}"
"HelpLink"="https://cleanflash.github.io" "HelpLink"="https://gitlab.com/cleanflash/installer#clean-flash-player"
"NoModify"=dword:00000001 "NoModify"=dword:00000001
"NoRepair"=dword:00000001 "NoRepair"=dword:00000001
"URLInfoAbout"="https://cleanflash.github.io" "URLInfoAbout"="https://gitlab.com/cleanflash/installer#clean-flash-player"
"URLUpdateInfo"="https://cleanflash.github.io" "URLUpdateInfo"="https://gitlab.com/cleanflash/installer#clean-flash-player"
"VersionMajor"=dword:00000022 "VersionMajor"=dword:00000022
"VersionMinor"=dword:00000000 "VersionMinor"=dword:00000000
"Publisher"="CleanFlash Team" "Publisher"="CleanFlash Team"

@ -10,11 +10,11 @@
<ApplicationManifest>app.manifest</ApplicationManifest> <ApplicationManifest>app.manifest</ApplicationManifest>
<ApplicationIcon>icon.ico</ApplicationIcon> <ApplicationIcon>icon.ico</ApplicationIcon>
<StartupObject></StartupObject> <StartupObject></StartupObject>
<Product>Clean Flash Player 34.0.0.267 Uninstaller</Product> <Product>Clean Flash Player 34.0.0.317 Uninstaller</Product>
<AssemblyTitle>Clean Flash Player 34.0.0.267 Uninstaller</AssemblyTitle> <AssemblyTitle>Clean Flash Player 34.0.0.317 Uninstaller</AssemblyTitle>
<FileVersion>34.0.0.267</FileVersion> <FileVersion>34.0.0.317</FileVersion>
<AssemblyVersion>34.0.0.267</AssemblyVersion> <AssemblyVersion>34.0.0.317</AssemblyVersion>
<Version>34.0.0.267</Version> <Version>34.0.0.317</Version>
<Authors>FlashPatch Team</Authors> <Authors>FlashPatch Team</Authors>
<Company>FlashPatch Team</Company> <Company>FlashPatch Team</Company>
</PropertyGroup> </PropertyGroup>
@ -35,7 +35,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="ILRepack.Lib.MSBuild.Task" Version="2.0.18.2" /> <PackageReference Include="ILRepack.Lib.MSBuild.Task" Version="2.0.18.2" />
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net40" Version="1.0.2"> <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net40" Version="1.0.3">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>

@ -114,11 +114,7 @@ namespace CleanFlashUninstaller {
} }
private void completeLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { private void completeLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
if (e.Link.Start == 212) { Process.Start("https://gitlab.com/cleanflash/installer#clean-flash-player");
Process.Start("https://classic.waterfox.net");
} else {
Process.Start("https://cleanflash.github.io");
}
} }
private void copyErrorButton_Click(object sender, EventArgs e) { private void copyErrorButton_Click(object sender, EventArgs e) {

@ -28,14 +28,26 @@ To keep using Flash Player on **Mozilla Firefox**, install [**Waterfox Classic**
**Internet Explorer** still supports Flash Player on Windows 10. **Internet Explorer** still supports Flash Player on Windows 10.
<details><summary>Alternatives</summary>
- [Cent Browser 4.3.9.248](https://static.centbrowser.com/win_stable/4.3.9.248)
- [Chromium 88.0.4285.0](https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html): specify your platform and select/enter 814251
- [Basilisk](https://www.basilisk-browser.org)
- [Otter Browser](https://otter-browser.org)
- [roytam's XP-compatible browser builds](http://rtfreesoft.blogspot.com)
- [Portable old browser versions (guide)](https://www.raymond.cc/blog/how-to-enable-flash-support-in-firefox-portable)
</details>
## Usage ## Usage
- Make sure you have a compatible browser to use Flash Player with - Make sure you have a compatible browser to use Flash Player with
- Download the latest version from [GitLab](https://gitlab.com/cleanflash/installer/-/releases) - Download the latest version from [GitLab](https://gitlab.com/cleanflash/installer/-/releases)
- Extract the installer and run it - Launch installer
- Accept the disclaimer - Accept the disclaimer
- Choose which browser plugins to install - Choose which browser plugins to install
- Choose to install the standalone projector or not - Choose to install the standalone projector or not
- Choose to install the debug build or not
- Close all browser windows, or let the installer close them for you - Close all browser windows, or let the installer close them for you
- Press the "Install" button and wait for Flash Player to install - Press the "Install" button and wait for Flash Player to install
- Enjoy using Flash Player! - Enjoy using Flash Player!

Loading…
Cancel
Save