From 415e500ffba085b71532f0d9f7c679223106d797 Mon Sep 17 00:00:00 2001 From: Smaltin Date: Tue, 4 May 2021 11:09:12 -0700 Subject: [PATCH 1/2] Bug fix, code cleanup, icon added Zoom changed their window name to "Zoom Meeting" so I added support to that Cleaned up the code using Rider's autoformat Added zoom logo into the rich presence --- ZoomInClass/Form1.cs | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/ZoomInClass/Form1.cs b/ZoomInClass/Form1.cs index b6fb4ec..23c85fd 100644 --- a/ZoomInClass/Form1.cs +++ b/ZoomInClass/Form1.cs @@ -10,8 +10,10 @@ namespace ZoomInClass public partial class Form1 : Form { public DiscordRpcClient client; + [DllImport("user32")] private static extern bool IsWindowVisible(IntPtr hWnd); + public Form1() { InitializeComponent(); @@ -20,19 +22,13 @@ public Form1() Hide(); ShowInTaskbar = false; - client = new DiscordRpcClient("762930592865714216"); - client.Logger = new ConsoleLogger() { Level = LogLevel.Warning }; + client = new DiscordRpcClient("839191670145679400"); + client.Logger = new ConsoleLogger() {Level = LogLevel.Warning}; //Subscribe to events - client.OnReady += (_sender, _e) => - { - Console.WriteLine("Received Ready from user {0}", _e.User.Username); - }; + client.OnReady += (_sender, _e) => { Console.WriteLine("Received Ready from user {0}", _e.User.Username); }; - client.OnPresenceUpdate += (_sender, _e) => - { - Console.WriteLine("Received Update! {0}", _e.Presence); - }; + client.OnPresenceUpdate += (_sender, _e) => { Console.WriteLine("Received Update! {0}", _e.Presence); }; //Connect to the RPC client.Initialize(); @@ -40,17 +36,19 @@ public Form1() timer1.Start(); } + void Deinitialize() { client.Dispose(); } Timestamps ts; + private void timer1_Tick(object sender, EventArgs e) { Process[] ps = Process.GetProcesses(); Boolean isZoomClassing = false; - foreach(Process p in ps) + foreach (Process p in ps) { try { @@ -58,13 +56,16 @@ private void timer1_Tick(object sender, EventArgs e) { continue; } - if (!p.MainWindowTitle.Equals("Zoom ミーティング") && !p.MainWindowTitle.Equals("Zoom Meetings") && !p.MainWindowTitle.Equals("Zoom")) + + if (!p.MainWindowTitle.Equals("Zoom ミーティング") && !p.MainWindowTitle.Equals("Zoom Meetings") && + !p.MainWindowTitle.Equals("Zoom Meeting") && !p.MainWindowTitle.Equals("Zoom")) { continue; } + isZoomClassing = true; } - catch(Exception ex) + catch (Exception ex) { Console.WriteLine("Error: {0}", ex.Message); } @@ -72,13 +73,18 @@ private void timer1_Tick(object sender, EventArgs e) if (isZoomClassing) { - if(ts == null) + if (ts == null) { ts = Timestamps.Now; } + client.SetPresence(new RichPresence() { - Details = "Watching Zoom", + Details = "In Meeting", + Assets = new Assets() + { + LargeImageKey = "logo", + }, Timestamps = ts }); } @@ -88,6 +94,5 @@ private void timer1_Tick(object sender, EventArgs e) ts = null; } } - } -} +} \ No newline at end of file From 1dfffc165d20cefba920de2c5f1e7a507a4f8ecf Mon Sep 17 00:00:00 2001 From: Smaltin Date: Tue, 4 May 2021 11:21:51 -0700 Subject: [PATCH 2/2] Updated look and feel (in English) --- sample.png | Bin 7446 -> 11368 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/sample.png b/sample.png index 775e0a844b09a7d68a9e6c829aee801e34be22f0..2be291d742cd056dff17b890f5419c364ce48a7e 100644 GIT binary patch literal 11368 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 F{|^PkTsr^& literal 7446 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