From 19058c40047ade4ece747207ceb5786c45fee575 Mon Sep 17 00:00:00 2001
From: David Gerson <84614495+pogrammerX@users.noreply.github.com>
Date: Thu, 28 Sep 2023 16:55:38 +0200
Subject: [PATCH] Console Only source
---
DiscordIconChanger.sln | 25 ++++
DiscordIconChanger/DIC.cs | 57 ++++++++
DiscordIconChanger/DiscordIconChanger.csproj | 43 ++++++
DiscordIconChanger/Program.cs | 50 +++++++
.../Properties/Resources.Designer.cs | 73 +++++++++++
DiscordIconChanger/Properties/Resources.resx | 124 ++++++++++++++++++
DiscordIconChanger/Resources/normal.ico | Bin 0 -> 270398 bytes
DiscordIconChanger/app.manifest | 79 +++++++++++
8 files changed, 451 insertions(+)
create mode 100644 DiscordIconChanger.sln
create mode 100644 DiscordIconChanger/DIC.cs
create mode 100644 DiscordIconChanger/DiscordIconChanger.csproj
create mode 100644 DiscordIconChanger/Program.cs
create mode 100644 DiscordIconChanger/Properties/Resources.Designer.cs
create mode 100644 DiscordIconChanger/Properties/Resources.resx
create mode 100644 DiscordIconChanger/Resources/normal.ico
create mode 100644 DiscordIconChanger/app.manifest
diff --git a/DiscordIconChanger.sln b/DiscordIconChanger.sln
new file mode 100644
index 0000000..4b4ce00
--- /dev/null
+++ b/DiscordIconChanger.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.6.33829.357
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscordIconChanger", "DiscordIconChanger\DiscordIconChanger.csproj", "{6B2F12C8-FC2B-4D97-988D-C2BBDB00B3AF}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {6B2F12C8-FC2B-4D97-988D-C2BBDB00B3AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6B2F12C8-FC2B-4D97-988D-C2BBDB00B3AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6B2F12C8-FC2B-4D97-988D-C2BBDB00B3AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6B2F12C8-FC2B-4D97-988D-C2BBDB00B3AF}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {7D6DC67B-41D3-4145-BE06-6B64DE3622CC}
+ EndGlobalSection
+EndGlobal
diff --git a/DiscordIconChanger/DIC.cs b/DiscordIconChanger/DIC.cs
new file mode 100644
index 0000000..fc774c0
--- /dev/null
+++ b/DiscordIconChanger/DIC.cs
@@ -0,0 +1,57 @@
+using IWshRuntimeLibrary;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Drawing;
+using System.Linq;
+using System.Net.Http.Headers;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+
+// DIC!!! (DiscordIconChanger)
+
+namespace DiscordIconChanger
+{
+ internal class DIC
+ {
+ [DllImport("shell32.dll", CharSet = CharSet.Unicode)]
+ public static extern int SHChangeNotify(int wEventId, int uFlags, IntPtr dwItem1, IntPtr dwItem2);
+
+ public static void Perform(string discordRoot, string discordAppDir, string icoPath)
+ {
+ string shortcutPath = "C:\\Users\\" + Environment.UserName + "\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Discord Inc\\Discord.lnk";
+ if(!Directory.Exists("C:\\Users\\" + Environment.UserName + "\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Discord Inc"))
+ Directory.CreateDirectory("C:\\Users\\" + Environment.UserName + "\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Discord Inc");
+ string[] appIcoPaths = { discordRoot + "\\app.ico", discordAppDir + "\\app.ico" };
+
+ Console.WriteLine("Replacing old icon files...");
+ foreach (var appIco in appIcoPaths)
+ {
+ System.IO.File.Move(appIco, Path.GetDirectoryName(appIco) + "\\old_appIco.ico", true);
+ System.IO.File.Copy(icoPath, appIco, true);
+ }
+
+ // Create a Shell object
+ WshShell shell = new WshShell();
+
+ // Load the existing shortcut
+ IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutPath);
+
+ // Set the new icon path
+ shortcut.IconLocation = appIcoPaths[0];
+ shortcut.TargetPath = discordRoot + "\\Update.exe --processStart Discord.exe";
+
+ Console.WriteLine("Creating new Shortcut");
+ // Save the shortcut
+ shortcut.Save();
+
+ Console.WriteLine("Copying Shortcut...");
+ System.IO.File.Copy(shortcutPath, "C:\\users\\" + Environment.UserName + "\\desktop\\Discord.lnk", true);
+
+ Console.WriteLine("Notifying Shell about Change");
+ // Notify the shell about the change
+ SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
+ }
+ }
+}
\ No newline at end of file
diff --git a/DiscordIconChanger/DiscordIconChanger.csproj b/DiscordIconChanger/DiscordIconChanger.csproj
new file mode 100644
index 0000000..4294b85
--- /dev/null
+++ b/DiscordIconChanger/DiscordIconChanger.csproj
@@ -0,0 +1,43 @@
+
+
+
+ Exe
+ net6.0
+ enable
+ enable
+ app.manifest
+
+
+
+
+ tlbimp
+ 0
+ 1
+ f935dc20-1cf0-11d0-adb9-00c04fd58a0b
+ 0
+ false
+ true
+
+
+
+
+
+
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
+
diff --git a/DiscordIconChanger/Program.cs b/DiscordIconChanger/Program.cs
new file mode 100644
index 0000000..612e32a
--- /dev/null
+++ b/DiscordIconChanger/Program.cs
@@ -0,0 +1,50 @@
+using DiscordIconChanger;
+using System.Drawing;
+
+class Prpgram
+{
+ static void Main(string[] args)
+ {
+ Console.WriteLine("DiscordIconChanger by pogrammerX (https://github.com/pogrammerX/discord-icon-changer)");
+
+ if (args.Length != 1)
+ {
+ Console.WriteLine("Syntax Error!");
+ Console.WriteLine("Usage:");
+ Console.WriteLine("\tdiscordiconchanger ");
+ Console.WriteLine("Or");
+ Console.WriteLine("\tdiscordiconchanger --restore (Restores the default Discord Icon)");
+ return;
+ }
+
+ Console.WriteLine("Locating Discord...");
+ string discordRoot = "C:\\Users\\" + Environment.UserName + "\\AppData\\Local\\Discord";
+
+ string discordAppDir = "";
+ foreach (var dir in Directory.GetDirectories(discordRoot))
+ {
+ if (Path.GetFileName(dir).StartsWith("app-"))
+ discordAppDir = dir;
+ }
+
+ if(string.IsNullOrWhiteSpace(discordAppDir))
+ {
+ Console.WriteLine("Discord not found!");
+ Console.WriteLine("We've searched in " + discordRoot + " but didn't find it, have you installed Discord?");
+ return;
+ }
+
+ if (args[0] == "--restore")
+ {
+ File.WriteAllBytes(Environment.CurrentDirectory + "\\normal.ico", DiscordIconChanger.Properties.Resources.normal);
+ DIC.Perform(discordRoot, discordAppDir, Environment.CurrentDirectory + "\\normal.ico");
+ File.Delete(Environment.CurrentDirectory + "\\normal.ico");
+ Console.WriteLine("Restored!");
+ return;
+ }
+
+ Console.WriteLine("Changing Icon...");
+ DIC.Perform(discordRoot, discordAppDir, args[0]);
+ Console.WriteLine("Finished!");
+ }
+}
\ No newline at end of file
diff --git a/DiscordIconChanger/Properties/Resources.Designer.cs b/DiscordIconChanger/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..b511407
--- /dev/null
+++ b/DiscordIconChanger/Properties/Resources.Designer.cs
@@ -0,0 +1,73 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace DiscordIconChanger.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DiscordIconChanger.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Byte[].
+ ///
+ internal static byte[] normal {
+ get {
+ object obj = ResourceManager.GetObject("normal", resourceCulture);
+ return ((byte[])(obj));
+ }
+ }
+ }
+}
diff --git a/DiscordIconChanger/Properties/Resources.resx b/DiscordIconChanger/Properties/Resources.resx
new file mode 100644
index 0000000..05d3529
--- /dev/null
+++ b/DiscordIconChanger/Properties/Resources.resx
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\Resources\normal.ico;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/DiscordIconChanger/Resources/normal.ico b/DiscordIconChanger/Resources/normal.ico
new file mode 100644
index 0000000000000000000000000000000000000000..5418e0ae7130daa2be038c0d8aadf56f1c597f48
GIT binary patch
literal 270398
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
literal 0
HcmV?d00001
diff --git a/DiscordIconChanger/app.manifest b/DiscordIconChanger/app.manifest
new file mode 100644
index 0000000..6a39c83
--- /dev/null
+++ b/DiscordIconChanger/app.manifest
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+