From 39076e47200a90e7bbddfa793f11f8d2e6e9382d Mon Sep 17 00:00:00 2001 From: "Tomachi [ICHIGO]" Date: Sat, 10 Jul 2021 20:14:16 +0900 Subject: [PATCH] chore: supported ja wnd title, changed client id, add assembly info --- README-ja.md | 4 ++-- README.md | 4 ++-- ZoomInClass/Form1.Designer.cs | 6 ++++-- ZoomInClass/Form1.cs | 26 +++++++++++++++---------- ZoomInClass/Properties/AssemblyInfo.cs | 4 ++-- img/in-meeting.png | Bin 0 -> 7915 bytes sample2.gif => img/usage.gif | Bin sample.png | Bin 11368 -> 0 bytes 8 files changed, 26 insertions(+), 18 deletions(-) create mode 100644 img/in-meeting.png rename sample2.gif => img/usage.gif (100%) delete mode 100644 sample.png diff --git a/README-ja.md b/README-ja.md index 48b3c11..b864564 100644 --- a/README-ja.md +++ b/README-ja.md @@ -2,7 +2,7 @@ [Click here for English README](README.md) -![sample](sample.png) +![in-meeting-sample](img/in-meeting.png) [Zoom](https://zoom.us/) でミーティングを行っている時に、[Discord Rich Presence](https://discord.com/developers/docs/rich-presence/how-to) を使用して表示します。 @@ -26,7 +26,7 @@ ## Usage -![sample2](sample2.gif) +![usage](img/usage.gif) `ZoomInClass.exe` の実行中にZoomミーティングを開始すると、Discordで表示されます。 diff --git a/README.md b/README.md index 256ae69..cf53ed7 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [日本語のREADMEはこちらから](README-ja.md) -![sample](sample.png) +![in-meeting-sample](img/in-meeting.png) If you are having a meeting in [Zoom](https://zoom.us/), use [Discord Rich Presence](https://discord.com/developers/docs/rich-presence/how-to) to view it in Discord. @@ -26,7 +26,7 @@ Also, whether or not you are having a meeting is determined every 10 seconds bas ## Usage -![sample2](sample2.gif) +![usage](img/usage.gif) If you start a Zoom Meeting while `ZoomInClass.exe` is running, it will be displayed in Discord. diff --git a/ZoomInClass/Form1.Designer.cs b/ZoomInClass/Form1.Designer.cs index 2b530b1..0bdc59c 100644 --- a/ZoomInClass/Form1.Designer.cs +++ b/ZoomInClass/Form1.Designer.cs @@ -39,11 +39,13 @@ private void InitializeComponent() // // Form1 // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(203, 207); + this.ClientSize = new System.Drawing.Size(152, 166); + this.Margin = new System.Windows.Forms.Padding(2); this.Name = "Form1"; this.Text = "Form1"; + this.Deactivate += new System.EventHandler(this.Form1_Deactivate); this.ResumeLayout(false); } diff --git a/ZoomInClass/Form1.cs b/ZoomInClass/Form1.cs index d086347..fa8e692 100644 --- a/ZoomInClass/Form1.cs +++ b/ZoomInClass/Form1.cs @@ -22,8 +22,8 @@ public Form1() Hide(); ShowInTaskbar = false; - client = new DiscordRpcClient("839191670145679400"); - client.Logger = new ConsoleLogger() {Level = LogLevel.Warning}; + client = new DiscordRpcClient("762930592865714216"); + client.Logger = new ConsoleLogger() { Level = LogLevel.Warning }; //Subscribe to events client.OnReady += (_sender, _e) => { Console.WriteLine("Received Ready from user {0}", _e.User.Username); }; @@ -37,11 +37,6 @@ public Form1() timer1.Start(); } - void Deinitialize() - { - client.Dispose(); - } - Timestamps ts; private void timer1_Tick(object sender, EventArgs e) @@ -52,10 +47,14 @@ private void timer1_Tick(object sender, EventArgs e) { try { - if ((p.MainWindowTitle.Contains("Zoom Meeting") || p.MainWindowTitle.Contains("Zoom Webinar") || p.ProcessName.Equals("CptHost")) && !p.ProcessName.Equals("ZoomInClass")) + if ((p.MainWindowTitle.Contains("Zoom Meeting") || + p.MainWindowTitle.Contains("Zoom Webinar") || + p.MainWindowTitle.Contains("Zoom ミーティング") || + p.ProcessName.Equals("CptHost")) && + !p.ProcessName.Equals("ZoomInClass")) + { isZoomClassing = true; - else - isZoomClassing = false; + } } catch (Exception ex) { @@ -63,6 +62,8 @@ private void timer1_Tick(object sender, EventArgs e) } } + Console.WriteLine("isZoomClassing: {0}", isZoomClassing); + if (isZoomClassing) { if (ts == null) @@ -86,5 +87,10 @@ private void timer1_Tick(object sender, EventArgs e) ts = null; } } + + private void Form1_Deactivate(object sender, EventArgs e) + { + client.Dispose(); + } } } \ No newline at end of file diff --git a/ZoomInClass/Properties/AssemblyInfo.cs b/ZoomInClass/Properties/AssemblyInfo.cs index 886cdbc..f6d1622 100644 --- a/ZoomInClass/Properties/AssemblyInfo.cs +++ b/ZoomInClass/Properties/AssemblyInfo.cs @@ -6,11 +6,11 @@ // 制御されます。アセンブリに関連付けられている情報を変更するには、 // これらの属性値を変更します。 [assembly: AssemblyTitle("ZoomInClass")] -[assembly: AssemblyDescription("")] +[assembly: AssemblyDescription("If you are having a meeting in Zoom, use Discord Rich Presence to view it in Discord.")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ZoomInClass")] -[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyCopyright("Copyright © Tomachi 2021")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/img/in-meeting.png b/img/in-meeting.png new file mode 100644 index 0000000000000000000000000000000000000000..137bb5e6b70a655f8a21cb8557af959ea7cc9002 GIT binary patch literal 7915 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 G^uGYF%qCX= literal 0 HcmV?d00001 diff --git a/sample2.gif b/img/usage.gif similarity index 100% rename from sample2.gif rename to img/usage.gif diff --git a/sample.png b/sample.png deleted file mode 100644 index 2be291d742cd056dff17b890f5419c364ce48a7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11368 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 F{|^PkTsr^&