using System.Diagnostics;\r
using System.Drawing;\r
using System.IO;\r
-using System.Linq;\r
-using System.Net;\r
using System.Windows.Forms;\r
\r
namespace KancolleSniffer\r
{\r
if (_prevPosition.X != int.MinValue)\r
Location = _prevPosition;\r
- var version = string.Join(".", Application.ProductVersion.Split('.').Take(2));\r
- labelVersion.Text = "バージョン" + version;\r
- SetLatestVersion(version);\r
+ _main.CheckVersionUp((current, latest) =>\r
+ {\r
+ labelVersion.Text = "バージョン" + current;\r
+ labelLatest.Text = current == latest ? "最新です" : "最新は" + latest + "です";\r
+ });\r
labelCopyright.Text = FileVersionInfo.GetVersionInfo(Application.ExecutablePath).LegalCopyright;\r
\r
checkBoxTopMost.Checked = _config.TopMost;\r
textBoxDebugLog.Text = _config.DebugLogFile;\r
}\r
\r
- private async void SetLatestVersion(string version)\r
- {\r
- try\r
- {\r
- var req = WebRequest.Create(Home + "version");\r
- var response = await req.GetResponseAsync();\r
- var stream = response.GetResponseStream();\r
- if (stream == null)\r
- return;\r
- using (var reader = new StreamReader(stream))\r
- {\r
- var str = await reader.ReadLineAsync();\r
- try\r
- {\r
- Invoke(new Action(() => { labelLatest.Text = version == str ? "最新です" : "最新は" + str + "です"; }));\r
- }\r
- catch (InvalidOperationException)\r
- {\r
- }\r
- }\r
- }\r
- catch (WebException)\r
- {\r
- }\r
- }\r
-\r
private void buttonOk_Click(object sender, EventArgs e)\r
{\r
if (!ValidatePorts(out var listen, out var outbound, out _))\r
this.label1 = new System.Windows.Forms.Label();\r
this.panelShipInfo = new System.Windows.Forms.Panel();\r
this.labelPresetAkashiTimer = new System.Windows.Forms.Label();\r
- this.labelGuide = new System.Windows.Forms.Label();\r
+ this.linkLabelGuide = new System.Windows.Forms.LinkLabel();\r
this.panelCombinedFleet = new System.Windows.Forms.Panel();\r
this.panel7Ships = new System.Windows.Forms.Panel();\r
this.panelBattleInfo = new System.Windows.Forms.Panel();\r
// \r
this.panelShipInfo.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
this.panelShipInfo.Controls.Add(this.labelPresetAkashiTimer);\r
- this.panelShipInfo.Controls.Add(this.labelGuide);\r
+ this.panelShipInfo.Controls.Add(this.linkLabelGuide);\r
this.panelShipInfo.Controls.Add(this.panelCombinedFleet);\r
this.panelShipInfo.Controls.Add(this.panel7Ships);\r
this.panelShipInfo.Controls.Add(this.panelBattleInfo);\r
this.labelPresetAkashiTimer.Size = new System.Drawing.Size(32, 12);\r
this.labelPresetAkashiTimer.TabIndex = 55;\r
// \r
- // labelGuide\r
+ // linkLabelGuide\r
// \r
- this.labelGuide.AutoSize = true;\r
- this.labelGuide.Font = new System.Drawing.Font("MS UI Gothic", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));\r
- this.labelGuide.Location = new System.Drawing.Point(31, 51);\r
- this.labelGuide.Name = "labelGuide";\r
- this.labelGuide.Size = new System.Drawing.Size(158, 13);\r
- this.labelGuide.TabIndex = 44;\r
- this.labelGuide.Text = "右クリックでメニューが出ます。";\r
+ this.linkLabelGuide.AutoSize = true;\r
+ this.linkLabelGuide.Font = new System.Drawing.Font("MS UI Gothic", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));\r
+ this.linkLabelGuide.LinkArea = new System.Windows.Forms.LinkArea(0, 0);\r
+ this.linkLabelGuide.Location = new System.Drawing.Point(31, 51);\r
+ this.linkLabelGuide.Name = "linkLabelGuide";\r
+ this.linkLabelGuide.Size = new System.Drawing.Size(158, 13);\r
+ this.linkLabelGuide.TabIndex = 44;\r
+ this.linkLabelGuide.Text = "右クリックでメニューが出ます。";\r
// \r
// panelCombinedFleet\r
// \r
private System.Windows.Forms.Label labelQuestColor2;\r
private System.Windows.Forms.ToolStripMenuItem CaptureToolStripMenuItem;\r
private System.Windows.Forms.Label labelAkashiRepairTimer;\r
- private System.Windows.Forms.Label labelGuide;\r
private System.Windows.Forms.Panel panelCombinedFleet;\r
private System.Windows.Forms.Label labelAkashiRepair;\r
private System.Windows.Forms.Label labelPresetAkashiTimer;\r
private System.Windows.Forms.ToolTip toolTipLoS;\r
private RepairListForMain panelRepairList;\r
private System.Windows.Forms.Panel panel7Ships;\r
+ private System.Windows.Forms.LinkLabel linkLabelGuide;\r
}\r
}\r
\r
using System.Globalization;\r
using System.IO;\r
using System.Linq;\r
+using System.Net;\r
using System.Runtime.InteropServices;\r
using System.Text;\r
using System.Text.RegularExpressions;\r
catch (Exception ex)\r
{\r
throw new ConfigFileException("設定ファイルが壊れています。", ex);\r
-\r
}\r
_proxyManager = new ProxyManager(_config, this);\r
_errorLog = new ErrorLog(_sniffer);\r
if (update == Sniffer.Update.Start)\r
{\r
labelLogin.Visible = false;\r
- labelGuide.Visible = false;\r
+ linkLabelGuide.Visible = false;\r
_started = true;\r
return;\r
}\r
ApplyProxySetting();\r
if (_config.KancolleDb.On)\r
_kancolleDb.Start(_config.KancolleDb.Token);\r
+ CheckVersionUp((current, latest) =>\r
+ {\r
+ if (latest == current)\r
+ return;\r
+ linkLabelGuide.Text = $"バージョン{latest}があります。";\r
+ linkLabelGuide.LinkArea = new LinkArea(0, linkLabelGuide.Text.Length);\r
+ linkLabelGuide.Click += (obj, ev) =>\r
+ {\r
+ Process.Start("https://ja.osdn.net/rel/kancollesniffer/" + latest);\r
+ };\r
+ });\r
+ }\r
+\r
+ public async void CheckVersionUp(Action<string,string> action)\r
+ {\r
+ var current = string.Join(".", Application.ProductVersion.Split('.').Take(2));\r
+ try\r
+ {\r
+ var latest = (await new WebClient().DownloadStringTaskAsync("http://kancollesniffer.osdn.jp/version"))\r
+ .TrimEnd();\r
+ try\r
+ {\r
+ action(current, latest);\r
+ }\r
+ catch (InvalidOperationException)\r
+ {\r
+ }\r
+ }\r
+ catch (WebException)\r
+ {\r
+ }\r
}\r
\r
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)\r
if (_config.Zoom == 100)\r
return;\r
var prev = CurrentAutoScaleDimensions;\r
- foreach (var control in new Control[] {this, _listForm, labelLogin, labelGuide})\r
+ foreach (var control in new Control[] {this, _listForm, labelLogin, linkLabelGuide})\r
control.Font = new Font(control.Font.FontFamily, control.Font.Size * _config.Zoom / 100);\r
ShipLabel.LatinFont = new Font("Tahoma", 8f * _config.Zoom / 100);\r
var cur = CurrentAutoScaleDimensions;\r