From 504a6c5d898ae6d3d22b93b9add76b89cb434d26 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Thu, 2 Jan 2020 13:49:37 +0800 Subject: [PATCH] upgrade --- v2rayN/v2rayUpgrade/MainForm.cs | 41 ++++++++++++++++++++----- v2rayN/v2rayUpgrade/v2rayUpgrade.csproj | 1 + 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/v2rayN/v2rayUpgrade/MainForm.cs b/v2rayN/v2rayUpgrade/MainForm.cs index 281f5d4b..6a597981 100644 --- a/v2rayN/v2rayUpgrade/MainForm.cs +++ b/v2rayN/v2rayUpgrade/MainForm.cs @@ -1,14 +1,7 @@ using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; using System.Diagnostics; -using System.Drawing; using System.IO; using System.IO.Compression; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows.Forms; namespace v2rayUpgrade @@ -16,6 +9,7 @@ namespace v2rayUpgrade public partial class MainForm : Form { private string[] _args; + private string _tempFileName = "v2rayUpgradeTemp.zip"; public MainForm(string[] args) @@ -35,9 +29,36 @@ namespace v2rayUpgrade { return; } + try { - var fileName = _args[0]; + Process[] existing = Process.GetProcessesByName("v2rayN"); + foreach (Process p in existing) + { + var path = p.MainModule.FileName; + if (path == GetPath("v2rayN.exe")) + { + p.Kill(); + p.WaitForExit(100); + } + } + } + catch (Exception ex) + { + MessageBox.Show("Failed to close v2rayN(关闭v2rayN失败)." + ex.StackTrace); + return; + } + + var fileName = GetPath(_tempFileName); + try + { + File.Copy(_args[0], fileName); + if (!File.Exists(fileName)) + { + MessageBox.Show("Upgrade Failed, File Not Exist(升级失败,文件不存在)."); + return; + } + var startKey = "v2rayN/"; using (ZipArchive archive = ZipFile.OpenRead(fileName)) @@ -67,6 +88,10 @@ namespace v2rayUpgrade MessageBox.Show("Upgrade Failed(升级失败)." + ex.StackTrace); return; } + finally + { + File.Delete(fileName); + } MessageBox.Show("Upgrade successed(升级成功)"); diff --git a/v2rayN/v2rayUpgrade/v2rayUpgrade.csproj b/v2rayN/v2rayUpgrade/v2rayUpgrade.csproj index f7879414..a36e3f55 100644 --- a/v2rayN/v2rayUpgrade/v2rayUpgrade.csproj +++ b/v2rayN/v2rayUpgrade/v2rayUpgrade.csproj @@ -23,6 +23,7 @@ DEBUG;TRACE prompt 4 + false AnyCPU