From f9b83d1359dc482f599e3590565c762dcbe86a65 Mon Sep 17 00:00:00 2001 From: JericX Date: Mon, 22 May 2017 22:07:18 +0800 Subject: [PATCH] Add check update --- Changes.md | 3 ++ README.md | 3 +- SyncClipboard/MainForm.Designer.cs | 26 +++++++---- SyncClipboard/MainForm.cs | 6 +++ SyncClipboard/Properties/Settings.Designer.cs | 3 +- SyncClipboard/SyncClipboard.csproj | 5 ++- SyncClipboard/UpdateChecker.cs | 44 ++++++++++++++++++- 7 files changed, 77 insertions(+), 13 deletions(-) diff --git a/Changes.md b/Changes.md index 8c38fcf6..734949a9 100644 --- a/Changes.md +++ b/Changes.md @@ -1,3 +1,6 @@ +v1.0.3 +- Add check update + v1.0.2 - Add deployment - Fix bugs diff --git a/README.md b/README.md index a90ab23c..838c4a38 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,8 @@ > - [x] NextCloud ## Client-Windows -下载最新的[Release](https://github.com/Jeric-X/SyncClipboard/releases/) +下载最新的[Release](https://github.com/Jeric-X/SyncClipboard/releases/),自备梯子 +或者clone or下载源码,VS2013及以上编译 ## Client-IOS 使用[Workflow](https://appsto.re/cn/2IzJ2.i)提供的`Get Contents of URL`功能发送HTTP协议 导入这个[Workflow](https://workflow.is/workflows/6da4c1de8b1446cda56e336b1ed50b25) diff --git a/SyncClipboard/MainForm.Designer.cs b/SyncClipboard/MainForm.Designer.cs index 62c9faa3..681b9182 100644 --- a/SyncClipboard/MainForm.Designer.cs +++ b/SyncClipboard/MainForm.Designer.cs @@ -39,6 +39,7 @@ private void InitializeComponent() this.下载远程ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); this.退出ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.检查更新ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.notifyMenu.SuspendLayout(); this.SuspendLayout(); // @@ -58,6 +59,7 @@ private void InitializeComponent() this.notifyMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.设置ToolStripMenuItem, this.开机启动ToolStripMenuItem, + this.检查更新ToolStripMenuItem, this.toolStripMenuItem2, this.上传本机ToolStripMenuItem, this.下载远程ToolStripMenuItem, @@ -68,12 +70,12 @@ private void InitializeComponent() this.notifyMenu.ShowCheckMargin = true; this.notifyMenu.ShowImageMargin = false; this.notifyMenu.ShowItemToolTips = false; - this.notifyMenu.Size = new System.Drawing.Size(145, 146); + this.notifyMenu.Size = new System.Drawing.Size(182, 200); // // 设置ToolStripMenuItem // this.设置ToolStripMenuItem.Name = "设置ToolStripMenuItem"; - this.设置ToolStripMenuItem.Size = new System.Drawing.Size(144, 26); + this.设置ToolStripMenuItem.Size = new System.Drawing.Size(181, 26); this.设置ToolStripMenuItem.Text = "设置"; this.设置ToolStripMenuItem.Click += new System.EventHandler(this.设置ToolStripMenuItem_Click); // @@ -81,20 +83,20 @@ private void InitializeComponent() // this.开机启动ToolStripMenuItem.CheckOnClick = true; this.开机启动ToolStripMenuItem.Name = "开机启动ToolStripMenuItem"; - this.开机启动ToolStripMenuItem.Size = new System.Drawing.Size(144, 26); + this.开机启动ToolStripMenuItem.Size = new System.Drawing.Size(181, 26); this.开机启动ToolStripMenuItem.Text = "开机启动"; this.开机启动ToolStripMenuItem.Click += new System.EventHandler(this.开机启动ToolStripMenuItem_Click); // // toolStripMenuItem2 // this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(141, 6); + this.toolStripMenuItem2.Size = new System.Drawing.Size(178, 6); // // 上传本机ToolStripMenuItem // this.上传本机ToolStripMenuItem.CheckOnClick = true; this.上传本机ToolStripMenuItem.Name = "上传本机ToolStripMenuItem"; - this.上传本机ToolStripMenuItem.Size = new System.Drawing.Size(144, 26); + this.上传本机ToolStripMenuItem.Size = new System.Drawing.Size(181, 26); this.上传本机ToolStripMenuItem.Text = "上传本机"; this.上传本机ToolStripMenuItem.Click += new System.EventHandler(this.上传本机ToolStripMenuItem_Click); // @@ -102,22 +104,29 @@ private void InitializeComponent() // this.下载远程ToolStripMenuItem.CheckOnClick = true; this.下载远程ToolStripMenuItem.Name = "下载远程ToolStripMenuItem"; - this.下载远程ToolStripMenuItem.Size = new System.Drawing.Size(144, 26); + this.下载远程ToolStripMenuItem.Size = new System.Drawing.Size(181, 26); this.下载远程ToolStripMenuItem.Text = "下载远程"; this.下载远程ToolStripMenuItem.Click += new System.EventHandler(this.下载远程ToolStripMenuItem_Click); // // toolStripMenuItem1 // this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(141, 6); + this.toolStripMenuItem1.Size = new System.Drawing.Size(178, 6); // // 退出ToolStripMenuItem // this.退出ToolStripMenuItem.Name = "退出ToolStripMenuItem"; - this.退出ToolStripMenuItem.Size = new System.Drawing.Size(144, 26); + this.退出ToolStripMenuItem.Size = new System.Drawing.Size(181, 26); this.退出ToolStripMenuItem.Text = "退出"; this.退出ToolStripMenuItem.Click += new System.EventHandler(this.退出ToolStripMenuItem_Click); // + // 检查更新ToolStripMenuItem + // + this.检查更新ToolStripMenuItem.Name = "检查更新ToolStripMenuItem"; + this.检查更新ToolStripMenuItem.Size = new System.Drawing.Size(181, 26); + this.检查更新ToolStripMenuItem.Text = "检查更新"; + this.检查更新ToolStripMenuItem.Click += new System.EventHandler(this.检查更新ToolStripMenuItem_Click); + // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); @@ -144,6 +153,7 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem 上传本机ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 下载远程ToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem 检查更新ToolStripMenuItem; } } diff --git a/SyncClipboard/MainForm.cs b/SyncClipboard/MainForm.cs index 37ac6b7b..791a9c4e 100644 --- a/SyncClipboard/MainForm.cs +++ b/SyncClipboard/MainForm.cs @@ -151,5 +151,11 @@ private void 下载远程ToolStripMenuItem_Click(object sender, EventArgs e) Config.IfPull = this.下载远程ToolStripMenuItem.Checked; Config.Save(); } + + private void 检查更新ToolStripMenuItem_Click(object sender, EventArgs e) + { + UpdateChecker updateChecker = new UpdateChecker(); + updateChecker.Check(); + } } } diff --git a/SyncClipboard/Properties/Settings.Designer.cs b/SyncClipboard/Properties/Settings.Designer.cs index 656ec1ba..bbcb9470 100644 --- a/SyncClipboard/Properties/Settings.Designer.cs +++ b/SyncClipboard/Properties/Settings.Designer.cs @@ -25,8 +25,7 @@ public static Settings Default { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("https://cloud.jericx.xyz/remote.php/dav/files/JericX/Clipboard/SyncClipboard.json" + - "")] + [global::System.Configuration.DefaultSettingValueAttribute("https://cloud.jericx.xyz/remote.php/dav/files/JericX/Clipboard/SyncClipboard.json")] public string URL { get { return ((string)(this["URL"])); diff --git a/SyncClipboard/SyncClipboard.csproj b/SyncClipboard/SyncClipboard.csproj index 041f59e6..91f0e351 100644 --- a/SyncClipboard/SyncClipboard.csproj +++ b/SyncClipboard/SyncClipboard.csproj @@ -102,8 +102,11 @@ SettingsForm.cs + Designer - + + Designer + SettingsSingleFileGenerator Settings.Designer.cs diff --git a/SyncClipboard/UpdateChecker.cs b/SyncClipboard/UpdateChecker.cs index a21fff56..05f22dcc 100644 --- a/SyncClipboard/UpdateChecker.cs +++ b/SyncClipboard/UpdateChecker.cs @@ -1,13 +1,55 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; +using System.Net; using System.Text; using System.Threading.Tasks; +using System.Web.Script.Serialization; +using System.Windows.Forms; namespace SyncClipboard { class UpdateChecker { - public const string Version = "1.0.2"; + public const string Version = "1.0.3"; + public const string UpdateUrl = "https://api.github.com/repos/Jeric-X/SyncClipboard/releases/latest"; + public const string ReleaseUrl = "https://github.com/Jeric-X/SyncClipboard/releases/latest"; + + public bool Check() + { + HttpWebResponse httpWebResponse = null; + try + { + httpWebResponse = HttpWebResponseUtility.CreateGetHttpResponse(UpdateUrl, Config.TimeOut, null, null, null); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message.ToString()); + return false; + } + StreamReader objStrmReader = new StreamReader(httpWebResponse.GetResponseStream()); + String strReply = objStrmReader.ReadToEnd(); + JavaScriptSerializer serializer = new JavaScriptSerializer(); + UpdateConvertJson p1 = null; + try + { + p1 = serializer.Deserialize(strReply); + if (String.Compare(p1.name, "v" + Version) > 0) + if (MessageBox.Show("v" + Version + " -> " + p1.name + "\n\n是否更新", "检测到新版本", MessageBoxButtons.OKCancel) == DialogResult.OK) + System.Diagnostics.Process.Start(UpdateChecker.ReleaseUrl); + } + catch (Exception e) + { + MessageBox.Show(e.Message.ToString()); + } + return false; + } + } + class UpdateConvertJson + { + public String name { get; set; } + + public String rowser_download_url { get; set; } } }