Compare commits

...
5 Commits
Author SHA1 Message Date
Disyer fd447b7b95 test 2022-08-02 18:21:47 +03:00
Disyer 420aa8ac66 processes: Only kill processes that contain loaded Flash modules 2022-06-17 12:44:02 +03:00
Disyer 3a2615c988 cleanflash: Recommend Waterfox when installing 2022-06-17 09:43:17 +03:00
Disyer 961500f2d6 readme: Recommend Waterfox Classic 2022-06-17 09:41:19 +03:00
Disyer 68448e704b cleanflash: Update to 34.0.0.251 2022-06-17 09:28:52 +03:00
23 changed files with 363 additions and 207 deletions
+2
View File
@@ -1,6 +1,8 @@
.vs/ .vs/
packages/ packages/
cleanflash/
bin bin
obj obj
+15
View File
@@ -0,0 +1,15 @@
stages:
- build
build_job:
stage: build
image: mcr.microsoft.com/dotnet/framework/sdk:3.5
tags:
- shared-windows
- windows
script:
- '& msbuild /p:Configuration=Release /p:Platform="Any CPU" /p:OutputPath=bin CleanFlashUninstaller/CleanFlashUninstaller.csproj'
artifacts:
expire_in: 1 week # save gitlab server space, we copy the files we need to deploy folder later on
paths:
- 'bin\CleanFlashUninstaller.exe'
+1 -1
View File
@@ -57,7 +57,7 @@
</Compile> </Compile>
<Compile Include="InstallException.cs" /> <Compile Include="InstallException.cs" />
<Compile Include="IProgressForm.cs" /> <Compile Include="IProgressForm.cs" />
<Compile Include="ProcessRunner.cs" /> <Compile Include="ProcessUtils.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs"> <Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
-46
View File
@@ -1,46 +0,0 @@
using System.Diagnostics;
using System.Text;
namespace CleanFlashCommon {
public class ProcessRunner {
public static ExitedProcess RunProcess(ProcessStartInfo startInfo) {
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
StringBuilder outputBuilder = new StringBuilder();
Process process = new Process {
StartInfo = startInfo
};
DataReceivedEventHandler outputHandler = new DataReceivedEventHandler(
delegate (object sender, DataReceivedEventArgs e) {
outputBuilder.AppendLine(e.Data);
}
);
process.OutputDataReceived += outputHandler;
process.ErrorDataReceived += outputHandler;
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
process.WaitForExit();
process.CancelOutputRead();
process.CancelErrorRead();
return new ExitedProcess {
ExitCode = process.ExitCode,
Output = outputBuilder.ToString().Trim()
};
}
public static Process RunUnmanagedProcess(ProcessStartInfo startInfo) {
Process process = new Process {
StartInfo = startInfo
};
process.Start();
process.WaitForExit();
return process;
}
}
}
+115
View File
@@ -0,0 +1,115 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
namespace CleanFlashCommon {
public class ProcessUtils {
class Native {
internal enum ModuleFilter {
ListModulesDefault = 0x0,
ListModules32Bit = 0x01,
ListModules64Bit = 0x02,
ListModulesAll = 0x03,
}
[DllImport("psapi.dll")]
public static extern bool EnumProcessModulesEx(IntPtr hProcess, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U4)][In][Out] IntPtr[] lphModule, int cb, [MarshalAs(UnmanagedType.U4)] out int lpcbNeeded, uint dwFilterFlag);
[DllImport("psapi.dll")]
public static extern bool EnumProcessModules(IntPtr hProcess, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U4)][In][Out] IntPtr[] lphModule, int cb, [MarshalAs(UnmanagedType.U4)] out int lpcbNeeded);
[DllImport("psapi.dll")]
public static extern uint GetModuleFileNameEx(IntPtr hProcess, IntPtr hModule, [Out] StringBuilder lpBaseName, [In][MarshalAs(UnmanagedType.U4)] uint nSize);
}
public static List<string> CollectModules(Process process) {
List<string> collectedModules = new List<string>();
bool ex = true;
IntPtr[] modulePointers = new IntPtr[0];
int bytesNeeded;
// Determine number of modules
try {
if (!Native.EnumProcessModulesEx(process.Handle, modulePointers, 0, out bytesNeeded, (uint)Native.ModuleFilter.ListModulesAll)) {
return collectedModules;
}
} catch (EntryPointNotFoundException) {
if (!Native.EnumProcessModules(process.Handle, modulePointers, 0, out bytesNeeded)) {
return collectedModules;
}
ex = false;
} catch {
return collectedModules;
}
int totalModules = bytesNeeded / IntPtr.Size;
modulePointers = new IntPtr[totalModules];
// Collect modules from the process
if ((ex && !Native.EnumProcessModulesEx(process.Handle, modulePointers, bytesNeeded, out bytesNeeded, (uint) Native.ModuleFilter.ListModulesAll)) || (!ex && !Native.EnumProcessModules(process.Handle, modulePointers, bytesNeeded, out bytesNeeded))) {
return collectedModules;
}
for (int i = 0; i < totalModules; ++i) {
StringBuilder moduleFilePath = new StringBuilder(1024);
Native.GetModuleFileNameEx(process.Handle, modulePointers[i], moduleFilePath, (uint) moduleFilePath.Capacity);
string moduleName = Path.GetFileName(moduleFilePath.ToString());
collectedModules.Add(moduleName);
}
return collectedModules;
}
public static ExitedProcess RunProcess(ProcessStartInfo startInfo)
{
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
StringBuilder outputBuilder = new StringBuilder();
Process process = new Process
{
StartInfo = startInfo
};
DataReceivedEventHandler outputHandler = new DataReceivedEventHandler(
delegate (object sender, DataReceivedEventArgs e) {
outputBuilder.AppendLine(e.Data);
}
);
process.OutputDataReceived += outputHandler;
process.ErrorDataReceived += outputHandler;
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
process.WaitForExit();
process.CancelOutputRead();
process.CancelErrorRead();
return new ExitedProcess
{
ExitCode = process.ExitCode,
Output = outputBuilder.ToString().Trim()
};
}
public static Process RunUnmanagedProcess(ProcessStartInfo startInfo)
{
Process process = new Process
{
StartInfo = startInfo
};
process.Start();
process.WaitForExit();
return process;
}
}
}
+1 -1
View File
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")] [assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CleanFlashCommon")] [assembly: AssemblyProduct("CleanFlashCommon")]
[assembly: AssemblyCopyright("Copyright © 2021")] [assembly: AssemblyCopyright("Copyright © 2022")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
+1 -1
View File
@@ -14,7 +14,7 @@ namespace CleanFlashCommon {
Directory.SetCurrentDirectory(Path.GetDirectoryName(filename)); Directory.SetCurrentDirectory(Path.GetDirectoryName(filename));
ExitedProcess process = ProcessRunner.RunProcess( ExitedProcess process = ProcessUtils.RunProcess(
new ProcessStartInfo { new ProcessStartInfo {
FileName = "reg.exe", FileName = "reg.exe",
Arguments = "import " + Path.GetFileName(filename), Arguments = "import " + Path.GetFileName(filename),
+32 -8
View File
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text.RegularExpressions;
namespace CleanFlashCommon { namespace CleanFlashCommon {
public class Uninstaller { public class Uninstaller {
@@ -12,10 +13,14 @@ namespace CleanFlashCommon {
"flashcenterservice", "flashcenteruninst", "flashplay", "update", "wow_helper", "flashcenterservice", "flashcenteruninst", "flashplay", "update", "wow_helper",
"dummy_cmd", "flashhelperservice", "dummy_cmd", "flashhelperservice",
// Flash Player-related processes // Flash Player-related processes
"flashplayerapp", "flashplayer_sa", "flashplayer_sa_debug", "flashplayerapp", "flashplayer_sa", "flashplayer_sa_debug"
};
private static string[] CONDITIONAL_PROCESSES = new string[]
{
// Plugin container for Firefox
"plugin-container",
// Browsers that might be using Flash Player right now // Browsers that might be using Flash Player right now
"opera", "iexplore", "chrome", "chromium", "brave", "vivaldi", "basilisk", "msedge", "opera", "iexplore", "chrome", "chromium", "brave", "vivaldi", "msedge"
"seamonkey", "palemoon", "k-meleon", "plugin-container", "waterfox"
}; };
static Uninstaller() { static Uninstaller() {
@@ -31,7 +36,7 @@ namespace CleanFlashCommon {
} }
public static void DeleteTask(string task) { public static void DeleteTask(string task) {
ProcessRunner.RunUnmanagedProcess( ProcessUtils.RunUnmanagedProcess(
new ProcessStartInfo { new ProcessStartInfo {
FileName = "schtasks.exe", FileName = "schtasks.exe",
Arguments = "/delete /tn \"" + task + "\" /f", Arguments = "/delete /tn \"" + task + "\" /f",
@@ -42,7 +47,7 @@ namespace CleanFlashCommon {
} }
public static void StopService(string service) { public static void StopService(string service) {
ProcessRunner.RunUnmanagedProcess( ProcessUtils.RunUnmanagedProcess(
new ProcessStartInfo { new ProcessStartInfo {
FileName = "net.exe", FileName = "net.exe",
Arguments = "stop \"" + service + "\"", Arguments = "stop \"" + service + "\"",
@@ -56,7 +61,7 @@ namespace CleanFlashCommon {
// First, stop the service. // First, stop the service.
StopService(service); StopService(service);
ProcessRunner.RunUnmanagedProcess( ProcessUtils.RunUnmanagedProcess(
new ProcessStartInfo { new ProcessStartInfo {
FileName = "sc.exe", FileName = "sc.exe",
Arguments = "delete \"" + service + "\"", Arguments = "delete \"" + service + "\"",
@@ -100,7 +105,11 @@ namespace CleanFlashCommon {
string parentName = Path.GetFileName(dir); string parentName = Path.GetFileName(dir);
if (parentName.Length == 11 && parentName.EndsWith(".tmp")) { if (parentName.Length == 11 && parentName.EndsWith(".tmp")) {
FileUtil.WipeFolder(dir); try {
FileUtil.WipeFolder(dir);
} catch {
// Oh well...
}
} }
} }
@@ -121,10 +130,25 @@ namespace CleanFlashCommon {
} }
} }
public static bool ShouldKillConditionalProcess(Process process) {
if (!CONDITIONAL_PROCESSES.Contains(process.ProcessName.ToLower())) {
return false;
}
foreach (string module in ProcessUtils.CollectModules(process)) {
if (Regex.IsMatch(module, "^(flash(32|64)|libpepflash|npswf)", RegexOptions.Compiled | RegexOptions.IgnoreCase)) {
return true;
}
}
return false;
}
public static void StopProcesses() { public static void StopProcesses() {
// Stop all processes that might interfere with the install process // Stop all processes that might interfere with the install process
List<Process> processes = Process.GetProcesses() List<Process> processes = Process.GetProcesses()
.Where(process => PROCESSES_TO_KILL.Contains(process.ProcessName.ToLower())) .Where(process => PROCESSES_TO_KILL.Contains(process.ProcessName.ToLower()) || ShouldKillConditionalProcess(process))
.OrderBy(o => o.StartTime) .OrderBy(o => o.StartTime)
.ToList(); .ToList();
+3 -3
View File
@@ -32,11 +32,11 @@ namespace CleanFlashCommon {
} }
public class UpdateChecker { public class UpdateChecker {
private static readonly string FLASH_VERSION = "34.0.0.192"; private static readonly string FLASH_VERSION = "34.0.0.251";
private static readonly string VERSION = "v34.0.0.192"; private static readonly string VERSION = "v34.0.0.251";
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/92.0.4515.159 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/101.0.4951.41 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";
+2 -3
View File
@@ -174,7 +174,7 @@ namespace CleanFlashInstaller {
this.netscapeLabel.Name = "netscapeLabel"; this.netscapeLabel.Name = "netscapeLabel";
this.netscapeLabel.Size = new System.Drawing.Size(131, 34); this.netscapeLabel.Size = new System.Drawing.Size(131, 34);
this.netscapeLabel.TabIndex = 6; this.netscapeLabel.TabIndex = 6;
this.netscapeLabel.Text = "Netscape API (NPAPI)\r\n(Firefox/ESR/Basilisk)\r\n"; this.netscapeLabel.Text = "Netscape API (NPAPI)\r\n(Firefox/ESR/Waterfox)\r\n";
this.netscapeLabel.Click += new System.EventHandler(this.netscapeLabel_Click); this.netscapeLabel.Click += new System.EventHandler(this.netscapeLabel_Click);
// //
// pepperLabel // pepperLabel
@@ -593,7 +593,7 @@ namespace CleanFlashInstaller {
// //
// InstallForm // InstallForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
this.ClientSize = new System.Drawing.Size(712, 329); this.ClientSize = new System.Drawing.Size(712, 329);
@@ -688,4 +688,3 @@ namespace CleanFlashInstaller {
private System.Windows.Forms.Label debugAskLabel; private System.Windows.Forms.Label debugAskLabel;
} }
} }
+3 -3
View File
@@ -95,10 +95,10 @@ If you ever change your mind, check out Clean Flash Player's website!";
browsers.Add("Internet Explorer"); browsers.Add("Internet Explorer");
} }
text = string.Format("You are about to install Clean Flash Player.\nPlease close all browsers, including Google Chrome, Mozilla Firefox and Internet Explorer.\n\nThe installer will close all browser windows, uninstall previous versions of Flash Player and\nFlash Center, and install Flash for {0}.", JoinStringsWithAnd(browsers)); text = string.Format("You are about to install Clean Flash Player.\nPlease close any browser windows running Flash content before you continue.\n\nThe installer will close all browser windows running Flash, uninstall previous versions of Flash Player and\nFlash Center, and install Flash for {0}.", JoinStringsWithAnd(browsers));
nextButton.Text = "INSTALL"; nextButton.Text = "INSTALL";
} else { } else {
text = "You are about to uninstall Clean Flash Player.\nPlease close all browsers, including Google Chrome, Mozilla Firefox and Internet Explorer.\n\nThe installer will completely remove all versions of Flash Player from this computer,\nincluding Clean Flash Player and older versions of Adobe Flash Player."; text = "You are about to uninstall Clean Flash Player.\nPlease close any browser windows running Flash content before you continue.\n\nThe installer will completely remove all versions of Flash Player from this computer,\nincluding Clean Flash Player and older versions of Adobe Flash Player.";
nextButton.Text = "UNINSTALL"; nextButton.Text = "UNINSTALL";
} }
@@ -284,7 +284,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) { if (e.Link.Start == 212) {
Process.Start("https://waterfox.net"); Process.Start("https://classic.waterfox.net");
} else { } else {
Process.Start("https://cleanflash.github.io"); Process.Start("https://cleanflash.github.io");
} }
+2 -2
View File
@@ -119,8 +119,8 @@
</resheader> </resheader>
<data name="disclaimerLabel.Text" xml:space="preserve"> <data name="disclaimerLabel.Text" xml:space="preserve">
<value>I am aware that Adobe Flash Player is no longer supported, nor provided by Adobe Inc. <value>I am aware that Adobe Flash Player is no longer supported, nor provided by Adobe Inc.
Clean Flash Player is a third-party version of Flash Player maintained by darktohka, Clean Flash Player is a third-party version of Flash Player built from the latest Flash Player
built from the latest Flash Player version by Adobe with adware removed. version with adware removed.
Adobe is not required by any means to provide support for this version of Flash Player. Adobe is not required by any means to provide support for this version of Flash Player.
</value> </value>
+1 -1
View File
@@ -13,7 +13,7 @@ namespace CleanFlashInstaller {
public class Installer { public class Installer {
public static void RegisterActiveX(string filename) { public static void RegisterActiveX(string filename) {
Directory.SetCurrentDirectory(Path.GetDirectoryName(filename)); Directory.SetCurrentDirectory(Path.GetDirectoryName(filename));
ExitedProcess process = ProcessRunner.RunProcess( ExitedProcess process = ProcessUtils.RunProcess(
new ProcessStartInfo { new ProcessStartInfo {
FileName = "regsvr32.exe", FileName = "regsvr32.exe",
Arguments = "/s " + Path.GetFileName(filename), Arguments = "/s " + Path.GetFileName(filename),
+10 -1
View File
@@ -1,16 +1,25 @@
using System; using System;
using System.Runtime.InteropServices;
using System.Windows.Forms; using System.Windows.Forms;
namespace CleanFlashInstaller { namespace CleanFlashInstaller {
static class Program { static class Program {
/// <summary> /// <summary>
/// The main entry point for the application. /// The main entry point for the application.
/// </summary> /// </summary>
[STAThread] [STAThread]
static void Main() { static void Main(string[] args) {
if (Environment.OSVersion.Version.Major >= 6) {
//SetProcessDPIAware();
}
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new InstallForm()); Application.Run(new InstallForm());
} }
[DllImport("user32.dll")]
private static extern bool SetProcessDPIAware();
} }
} }
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following // General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information // set of attributes. Change these attribute values to modify the information
// associated with an assembly. // associated with an assembly.
[assembly: AssemblyTitle("Clean Flash Player 34.0.0.192 Installer")] [assembly: AssemblyTitle("Clean Flash Player 34.0.0.251 Installer")]
[assembly: AssemblyDescription("The newest version of Flash Player, patched and ready to go beyond 2021.")] [assembly: AssemblyDescription("The newest version of Flash Player, patched and ready to go beyond 2021.")]
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("FlashPatch Team")] [assembly: AssemblyCompany("FlashPatch Team")]
[assembly: AssemblyProduct("Clean Flash Player 34.0.0.192 Installer")] [assembly: AssemblyProduct("Clean Flash Player 34.0.0.251 Installer")]
[assembly: AssemblyCopyright("")] [assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [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 // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("34.0.0.192")] [assembly: AssemblyVersion("34.0.0.251")]
[assembly: AssemblyFileVersion("34.0.0.192")] [assembly: AssemblyFileVersion("34.0.0.251")]
+22 -17
View File
@@ -1,20 +1,25 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="CleanFlashInstaller.app"/> <assemblyIdentity version="1.0.0.0" name="CleanFlashInstaller.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security> <security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges> </requestedPrivileges>
</security> </security>
</trustInfo> </trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <asmv3:application>
<application> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> <dpiAware>true</dpiAware>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> </asmv3:windowsSettings>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> </asmv3:application>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> <application>
</application> <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</compatibility> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
</application>
</compatibility>
</assembly> </assembly>
+7
View File
@@ -74,9 +74,16 @@ namespace CleanFlashUninstaller {
return; return;
} }
if (Environment.OSVersion.Version.Major >= 6) {
//SetProcessDPIAware();
}
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new UninstallForm()); Application.Run(new UninstallForm());
} }
[DllImport("user32.dll")]
private static extern bool SetProcessDPIAware();
} }
} }
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following // General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information // set of attributes. Change these attribute values to modify the information
// associated with an assembly. // associated with an assembly.
[assembly: AssemblyTitle("Clean Flash Player 34.0.0.192 Uninstaller")] [assembly: AssemblyTitle("Clean Flash Player 34.0.0.251 Uninstaller")]
[assembly: AssemblyDescription("The newest version of Flash Player, patched and ready to go beyond 2021.")] [assembly: AssemblyDescription("The newest version of Flash Player, patched and ready to go beyond 2021.")]
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("FlashPatch Team")] [assembly: AssemblyCompany("FlashPatch Team")]
[assembly: AssemblyProduct("Clean Flash Player 34.0.0.192 Uninstaller")] [assembly: AssemblyProduct("Clean Flash Player 34.0.0.251 Uninstaller")]
[assembly: AssemblyCopyright("")] [assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [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 // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("34.0.0.192")] [assembly: AssemblyVersion("34.0.0.251")]
[assembly: AssemblyFileVersion("34.0.0.192")] [assembly: AssemblyFileVersion("34.0.0.251")]
+1 -1
View File
@@ -115,7 +115,7 @@ namespace CleanFlashUninstaller {
private void completeLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { private void completeLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
if (e.Link.Start == 212) { if (e.Link.Start == 212) {
Process.Start("https://waterfox.net"); Process.Start("https://classic.waterfox.net");
} else { } else {
Process.Start("https://cleanflash.github.io"); Process.Start("https://cleanflash.github.io");
} }
+1 -1
View File
@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACY ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACY
CAAAAk1TRnQBSQFMAgEBAgEAAeABAQHgAQEBDwEAAQ8BAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CAAAAk1TRnQBSQFMAgEBAgEAAfABAQHwAQEBDwEAAQ8BAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABPAMAAQ8DAAEBAQABCAUAAYQBAxgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc AwABPAMAAQ8DAAEBAQABCAUAAYQBAxgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc
AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA
AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz
+22 -17
View File
@@ -1,20 +1,25 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="CleanFlashUninstaller.app"/> <assemblyIdentity version="1.0.0.0" name="CleanFlashUninstaller.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security> <security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges> </requestedPrivileges>
</security> </security>
</trustInfo> </trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <asmv3:application>
<application> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> <dpiAware>true</dpiAware>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> </asmv3:windowsSettings>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> </asmv3:application>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> <application>
</application> <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</compatibility> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
</application>
</compatibility>
</assembly> </assembly>
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 darktohka
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+5 -5
View File
@@ -1,10 +1,10 @@
# Clean Flash Player # Clean Flash Player
[![Patreon](https://img.shields.io/badge/Kofi-donate-purple.svg)](https://ko-fi.com/disyer) [![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/darktohka/FlashPatch/blob/master/LICENSE) [![Patreon](https://img.shields.io/badge/Kofi-donate-purple.svg)](https://ko-fi.com/disyer) [![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitlab.com/cleanflash/installer/-/blob/master/LICENSE)
![Image of Clean Flash Player](https://i.imgur.com/565LJBI.png) ![Image of Clean Flash Player](https://i.imgur.com/565LJBI.png)
[Download latest version](https://github.com/CleanFlash/installer/releases/latest) [Download latest version](https://gitlab.com/cleanflash/installer/-/releases)
## What's this? ## What's this?
@@ -24,14 +24,14 @@ Newer versions of Google Chrome and Mozilla Firefox do not support Flash Player
To keep using Flash Player on **Google Chrome**, install an older version of Chrome. The last supported version is Chrome 87.0.4280.168. To keep using Flash Player on **Google Chrome**, install an older version of Chrome. The last supported version is Chrome 87.0.4280.168.
To keep using Flash Player on **Mozilla Firefox**, install [**Waterfox**](https://waterfox.net) or [**Basilisk Browser**](https://basilisk-browser.org). Both of them are forks of Mozilla Firefox with built-in Flash Player support. To keep using Flash Player on **Mozilla Firefox**, install [**Waterfox Classic**](https://classic.waterfox.net), [**Pale Moon**](https://palemoon.org) or [**K-Meleon**](http://kmeleonbrowser.org/forum/read.php?19,154431). They are forks of Mozilla Firefox with built-in Flash Player support.
**Internet Explorer** still supports Flash Player on Windows. **Internet Explorer** still supports Flash Player on Windows 10.
## 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 [GitHub](https://github.com/CleanFlash/installer/releases/latest) - Download the latest version from [GitLab](https://gitlab.com/cleanflash/installer/-/releases)
- Extract the installer and run it - Extract the installer and run it
- Accept the disclaimer - Accept the disclaimer
- Choose which browser plugins to install - Choose which browser plugins to install