From 56c1557f4a2af2783f4dd13feb6b2902f6a90653 Mon Sep 17 00:00:00 2001 From: rprx <63339210+rprx@users.noreply.github.com> Date: Fri, 24 Apr 2020 02:57:38 +0000 Subject: [PATCH 01/17] =?UTF-8?q?=E5=85=81=E8=AE=B8=E4=B8=8D=E5=AE=89?= =?UTF-8?q?=E5=85=A8=E8=BF=9E=E6=8E=A5=20->=20=E8=B7=B3=E8=BF=87=E8=AF=81?= =?UTF-8?q?=E4=B9=A6=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/2dust/v2rayN/pull/733 --- v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx | 2 +- v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx index f67b8e59..45df68bf 100644 --- a/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx @@ -149,7 +149,7 @@ 203, 12 - 允许不安全连接(allowInsecure) + 跳过证书验证(allowInsecure) 223, 7 diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx index 318f91cd..81c0d92c 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx @@ -128,7 +128,7 @@ 222, 16 - 底层传输安全选tls时,默认允许不安全连接(allowInsecure) + 底层传输安全选tls时,默认跳过证书验证(allowInsecure) 53, 12 From 70069a05e613f9476afa2b403dfb3db5e878e779 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Thu, 4 Jun 2020 08:08:30 +0800 Subject: [PATCH 02/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0d557a38..c1197a8b 100644 --- a/README.md +++ b/README.md @@ -7,4 +7,4 @@ ### Requirements - Microsoft [.NET Framework 4.6](https://docs.microsoft.com/zh-cn/dotnet/framework/install/guide-for-developers) or higher -- Project V core [https://github.com/v2ray/v2ray-core/releases](https://github.com/v2ray/v2ray-core/releases) +- Project V core [https://github.com/v2fly/v2ray-core/releases](https://github.com/v2fly/v2ray-core/releases) From a799420d0f86e2cce753e23214131259f0894314 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Thu, 4 Jun 2020 08:31:18 +0800 Subject: [PATCH 03/17] v2fly --- v2rayN/v2rayN/Global.cs | 2 +- v2rayN/v2rayN/Handler/DownloadHandle.cs | 6 +++--- v2rayN/v2rayN/Handler/V2rayHandler.cs | 2 +- v2rayN/v2rayN/Properties/AssemblyInfo.cs | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/v2rayN/v2rayN/Global.cs b/v2rayN/v2rayN/Global.cs index 58ed9d5a..01181dfb 100644 --- a/v2rayN/v2rayN/Global.cs +++ b/v2rayN/v2rayN/Global.cs @@ -6,7 +6,7 @@ namespace v2rayN #region 常量 - public const string v2rayWebsiteUrl = @"https://www.v2ray.com/"; + public const string v2rayWebsiteUrl = @"https://www.v2fly.org/"; public const string AboutUrl = @"https://github.com/2dust/v2rayN"; public const string UpdateUrl = AboutUrl + @"/releases"; diff --git a/v2rayN/v2rayN/Handler/DownloadHandle.cs b/v2rayN/v2rayN/Handler/DownloadHandle.cs index bd3f4e62..67a936f2 100644 --- a/v2rayN/v2rayN/Handler/DownloadHandle.cs +++ b/v2rayN/v2rayN/Handler/DownloadHandle.cs @@ -54,8 +54,8 @@ namespace v2rayN.Handler private readonly string nLatestUrl = "https://github.com/2dust/v2rayN/releases/latest"; private const string nUrl = "https://github.com/2dust/v2rayN/releases/download/{0}/v2rayN.zip"; - private readonly string coreLatestUrl = "https://github.com/v2ray/v2ray-core/releases/latest"; - private const string coreUrl = "https://github.com/v2ray/v2ray-core/releases/download/{0}/v2ray-windows-{1}.zip"; + private readonly string coreLatestUrl = "https://github.com/v2fly/v2ray-core/releases/latest"; + private const string coreUrl = "https://github.com/v2fly/v2ray-core/releases/download/{0}/v2ray-windows-{1}.zip"; public async void CheckUpdateAsync(string type) { @@ -101,7 +101,7 @@ namespace v2rayN.Handler string filePath = Utils.GetPath("V2ray.exe"); if (!File.Exists(filePath)) { - string msg = string.Format(UIRes.I18N("NotFoundCore"), @"https://github.com/v2ray/v2ray-core/releases"); + string msg = string.Format(UIRes.I18N("NotFoundCore"), @"https://github.com/v2fly/v2ray-core/releases"); //ShowMsg(true, msg); return ""; } diff --git a/v2rayN/v2rayN/Handler/V2rayHandler.cs b/v2rayN/v2rayN/Handler/V2rayHandler.cs index e367bef2..cc6c404e 100644 --- a/v2rayN/v2rayN/Handler/V2rayHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayHandler.cs @@ -174,7 +174,7 @@ namespace v2rayN.Handler } if (Utils.IsNullOrEmpty(fileName)) { - string msg = string.Format(UIRes.I18N("NotFoundCore"), @"https://github.com/v2ray/v2ray-core/releases"); + string msg = string.Format(UIRes.I18N("NotFoundCore"), @"https://github.com/v2fly/v2ray-core/releases"); ShowMsg(false, msg); } return fileName; diff --git a/v2rayN/v2rayN/Properties/AssemblyInfo.cs b/v2rayN/v2rayN/Properties/AssemblyInfo.cs index 505b9e16..97197c1b 100644 --- a/v2rayN/v2rayN/Properties/AssemblyInfo.cs +++ b/v2rayN/v2rayN/Properties/AssemblyInfo.cs @@ -32,4 +32,4 @@ using System.Runtime.InteropServices; // 方法是按如下所示使用“*”: //[assembly: AssemblyVersion("1.0.*")] //[assembly: AssemblyVersion("1.0.0")] -[assembly: AssemblyFileVersion("3.17")] +[assembly: AssemblyFileVersion("3.19")] From 2615b72cee86f4603bbd102798f070bdab1f01df Mon Sep 17 00:00:00 2001 From: Mozi <29089388+pzhlkj6612@users.noreply.github.com> Date: Sat, 6 Jun 2020 12:09:04 +0800 Subject: [PATCH 04/17] Run `v2rayUpgrade.exe` in the same folder as `v2rayN.exe` --- v2rayN/v2rayN/Forms/MainForm.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index bf61cc5b..3ca10813 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -1298,7 +1298,16 @@ namespace v2rayN.Forms try { string fileName = Utils.GetPath(downloadHandle.DownloadFileName); - Process process = Process.Start("v2rayUpgrade.exe", "\"" + fileName + "\""); + Process process = new Process + { + StartInfo = new ProcessStartInfo + { + FileName = "v2rayUpgrade.exe", + Arguments = "\"" + fileName + "\"", + WorkingDirectory = Utils.StartupPath() + } + }; + process.Start(); if (process.Id > 0) { menuExit_Click(null, null); From 4f39f7a93256c58f8bf9e7d24f9d302042164049 Mon Sep 17 00:00:00 2001 From: Mozi <29089388+pzhlkj6612@users.noreply.github.com> Date: Mon, 8 Jun 2020 15:33:22 +0800 Subject: [PATCH 05/17] Properly parse shadowsocks URL 1. Parse the URL containing "colon" or "at sign" in the password. 2. Check the empty fields in the URL. --- v2rayN/v2rayN/Handler/V2rayConfigHandler.cs | 42 ++++++++++++++++----- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs index 9ea93933..b3f25e06 100644 --- a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs @@ -1266,22 +1266,44 @@ namespace v2rayN.Handler result = Utils.Base64Decode(result); } - string[] arr1 = result.Split('@'); - if (arr1.Length != 2) + //密码中可能包含“@”,所以从后往前搜索 + int indexAddressAndPort = result.LastIndexOf("@"); + if (indexAddressAndPort < 0) { return null; } - string[] arr21 = arr1[0].Split(':'); - //string[] arr22 = arr1[1].Split(':'); - int indexPort = arr1[1].LastIndexOf(":"); - if (arr21.Length != 2 || indexPort < 0) + string addressAndPort = result.Substring(indexAddressAndPort + 1); + string securityAndId = result.Substring(0, indexAddressAndPort); + + //IPv6地址中包含“:”,所以从后往前搜索 + int indexPort = addressAndPort.LastIndexOf(":"); + if (indexPort < 0) { return null; } - vmessItem.address = arr1[1].Substring(0, indexPort); - vmessItem.port = Utils.ToInt(arr1[1].Substring(indexPort + 1, arr1[1].Length - (indexPort + 1))); - vmessItem.security = arr21[0]; - vmessItem.id = arr21[1]; + + //加密方式中不包含“:”,所以从前往后搜索 + int indexId = securityAndId.IndexOf(":"); + if (indexId < 0) + { + return null; + } + + string address = addressAndPort.Substring(0, indexPort); + string port = addressAndPort.Substring(indexPort + 1); + string security = securityAndId.Substring(0, indexId); + string id = securityAndId.Substring(indexId + 1); + + //所有字段均不能为空 + if (address.Length == 0 || port.Length == 0 || security.Length == 0 || id.Length == 0) + { + return null; + } + + vmessItem.address = address; + vmessItem.port = Utils.ToInt(port); + vmessItem.security = security; + vmessItem.id = id; } else if (result.StartsWith(Global.socksProtocol)) { From 088d2e68340b2859eba1d807f90fe968e3eb7d24 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Tue, 30 Jun 2020 16:41:31 +0800 Subject: [PATCH 06/17] Update SpeedtestHandler.cs --- v2rayN/v2rayN/Handler/SpeedtestHandler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs index d8556722..91523091 100644 --- a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs +++ b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs @@ -190,7 +190,7 @@ namespace v2rayN.Handler _updateFunc(testCounter, args.GetException().Message); }; - var timeout = 12; + var timeout = 10; foreach (int itemIndex in _selecteds) { if (itemIndex >= _config.vmess.Count) From 93b8dec63e3854155ca2b49880ef709c01439710 Mon Sep 17 00:00:00 2001 From: Student Main Date: Sun, 19 Jul 2020 20:05:00 +0800 Subject: [PATCH 07/17] ctrl cv sswindows --- v2rayN/v2rayN/Handler/V2rayConfigHandler.cs | 169 ++++++++++++-------- v2rayN/v2rayN/v2rayN.csproj | 1 + 2 files changed, 106 insertions(+), 64 deletions(-) diff --git a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs index b3f25e06..45422941 100644 --- a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs @@ -1,8 +1,12 @@ using System; using System.Collections.Generic; +using System.Collections.Specialized; using System.IO; using System.Linq; using System.Net; +using System.Text; +using System.Text.RegularExpressions; +using System.Web; using v2rayN.Base; using v2rayN.Mode; @@ -392,7 +396,7 @@ namespace v2rayN.Handler outbound.mux.enabled = false; outbound.mux.concurrency = -1; - + outbound.protocol = "shadowsocks"; outbound.settings.vnext = null; @@ -454,7 +458,7 @@ namespace v2rayN.Handler { //远程服务器底层传输配置 streamSettings.network = config.network(); - string host = config.requestHost(); + string host = config.requestHost(); //if tls if (config.streamSecurity() == Global.StreamSecurity) { @@ -1242,68 +1246,21 @@ namespace v2rayN.Handler { msg = UIRes.I18N("ConfigurationFormatIncorrect"); + vmessItem = ResolveSSLegacy(result); + if (vmessItem == null) + { + vmessItem = ResolveSip002(result); + } + if (vmessItem == null) + { + return null; + } + if (vmessItem.address.Length == 0 || vmessItem.port == 0 || vmessItem.security.Length == 0 || vmessItem.id.Length == 0) + { + return null; + } + vmessItem.configType = (int)EConfigType.Shadowsocks; - result = result.Substring(Global.ssProtocol.Length); - //remark - int indexRemark = result.IndexOf("#"); - if (indexRemark > 0) - { - try - { - vmessItem.remarks = WebUtility.UrlDecode(result.Substring(indexRemark + 1, result.Length - indexRemark - 1)); - } - catch { } - result = result.Substring(0, indexRemark); - } - //part decode - int indexS = result.IndexOf("@"); - if (indexS > 0) - { - result = Utils.Base64Decode(result.Substring(0, indexS)) + result.Substring(indexS, result.Length - indexS); - } - else - { - result = Utils.Base64Decode(result); - } - - //密码中可能包含“@”,所以从后往前搜索 - int indexAddressAndPort = result.LastIndexOf("@"); - if (indexAddressAndPort < 0) - { - return null; - } - string addressAndPort = result.Substring(indexAddressAndPort + 1); - string securityAndId = result.Substring(0, indexAddressAndPort); - - //IPv6地址中包含“:”,所以从后往前搜索 - int indexPort = addressAndPort.LastIndexOf(":"); - if (indexPort < 0) - { - return null; - } - - //加密方式中不包含“:”,所以从前往后搜索 - int indexId = securityAndId.IndexOf(":"); - if (indexId < 0) - { - return null; - } - - string address = addressAndPort.Substring(0, indexPort); - string port = addressAndPort.Substring(indexPort + 1); - string security = securityAndId.Substring(0, indexId); - string id = securityAndId.Substring(indexId + 1); - - //所有字段均不能为空 - if (address.Length == 0 || port.Length == 0 || security.Length == 0 || id.Length == 0) - { - return null; - } - - vmessItem.address = address; - vmessItem.port = Utils.ToInt(port); - vmessItem.security = security; - vmessItem.id = id; } else if (result.StartsWith(Global.socksProtocol)) { @@ -1428,6 +1385,90 @@ namespace v2rayN.Handler return vmessItem; } + private static VmessItem ResolveSip002(string result) + { + Uri parsedUrl; + try + { + parsedUrl = new Uri(result); + } + catch (UriFormatException) + { + return null; + } + VmessItem server = new VmessItem + { + remarks = parsedUrl.GetComponents(UriComponents.Fragment, UriFormat.Unescaped), + address = parsedUrl.IdnHost, + port = parsedUrl.Port, + }; + + // parse base64 UserInfo + string rawUserInfo = parsedUrl.GetComponents(UriComponents.UserInfo, UriFormat.Unescaped); + string base64 = rawUserInfo.Replace('-', '+').Replace('_', '/'); // Web-safe base64 to normal base64 + string userInfo; + try + { + userInfo = Encoding.UTF8.GetString(Convert.FromBase64String( + base64.PadRight(base64.Length + (4 - base64.Length % 4) % 4, '='))); + } + catch (FormatException) + { + return null; + } + string[] userInfoParts = userInfo.Split(new char[] { ':' }, 2); + if (userInfoParts.Length != 2) + { + return null; + } + server.security = userInfoParts[0]; + server.id = userInfoParts[1]; + + NameValueCollection queryParameters = HttpUtility.ParseQueryString(parsedUrl.Query); + string[] pluginParts = (queryParameters["plugin"] ?? "").Split(new[] { ';' }, 2); + if (pluginParts.Length > 0) + { + return null; + } + + return server; + } + + private static readonly Regex UrlFinder = new Regex(@"ss://(?[A-Za-z0-9+-/=_]+)(?:#(?\S+))?", RegexOptions.IgnoreCase); + private static readonly Regex DetailsParser = new Regex(@"^((?.+?):(?.*)@(?.+?):(?\d+?))$", RegexOptions.IgnoreCase); + + private static VmessItem ResolveSSLegacy(string result) + { + var match = UrlFinder.Match(result); + if (!match.Success) + return null; + + VmessItem server = new VmessItem(); + var base64 = match.Groups["base64"].Value.TrimEnd('/'); + var tag = match.Groups["tag"].Value; + if (!tag.IsNullOrEmpty()) + { + server.remarks = HttpUtility.UrlDecode(tag, Encoding.UTF8); + } + Match details; + try + { + details = DetailsParser.Match(Encoding.UTF8.GetString(Convert.FromBase64String( + base64.PadRight(base64.Length + (4 - base64.Length % 4) % 4, '=')))); + } + catch (FormatException) + { + return null; + } + if (!details.Success) + return null; + server.security = details.Groups["method"].Value; + server.id = details.Groups["password"].Value; + server.address = details.Groups["hostname"].Value; + server.port = int.Parse(details.Groups["port"].Value); + return server; + } + #endregion #region Gen speedtest config @@ -1449,7 +1490,7 @@ namespace v2rayN.Handler msg = UIRes.I18N("InitialConfiguration"); - Config configCopy = Utils.DeepCopy(config); + Config configCopy = Utils.DeepCopy(config); string result = Utils.GetEmbedText(SampleClient); if (Utils.IsNullOrEmpty(result)) diff --git a/v2rayN/v2rayN/v2rayN.csproj b/v2rayN/v2rayN/v2rayN.csproj index 64ece7d3..308d38cd 100644 --- a/v2rayN/v2rayN/v2rayN.csproj +++ b/v2rayN/v2rayN/v2rayN.csproj @@ -93,6 +93,7 @@ + From e313e004eb8d815ee5a5322ba10df1afc0e91b2b Mon Sep 17 00:00:00 2001 From: Student Main Date: Sun, 19 Jul 2020 21:03:14 +0800 Subject: [PATCH 08/17] vmess --- v2rayN/v2rayN/Handler/V2rayConfigHandler.cs | 80 ++++++++++++++++++++- 1 file changed, 77 insertions(+), 3 deletions(-) diff --git a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs index 45422941..1830e6af 100644 --- a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs @@ -1199,7 +1199,7 @@ namespace v2rayN.Handler int indexSplit = result.IndexOf("?"); if (indexSplit > 0) { - vmessItem = ResolveVmess4Kitsunebi(result); + vmessItem = ResolveVmess4Vmess(result) ?? ResolveVmess4Kitsunebi(result); } else { @@ -1425,8 +1425,7 @@ namespace v2rayN.Handler server.id = userInfoParts[1]; NameValueCollection queryParameters = HttpUtility.ParseQueryString(parsedUrl.Query); - string[] pluginParts = (queryParameters["plugin"] ?? "").Split(new[] { ';' }, 2); - if (pluginParts.Length > 0) + if (queryParameters["plugin"] != null) { return null; } @@ -1469,6 +1468,81 @@ namespace v2rayN.Handler return server; } + + private static VmessItem ResolveVmess4Vmess(string result) + { + VmessItem i = new VmessItem(); + + Uri u = new Uri(result); + + var uinfo = u.UserInfo; + var uinfo12 = uinfo.Split(':'); + if (uinfo12.Length != 2) return null; + var user = uinfo12[0]; + var pass = uinfo12[1]; + var passsp = pass.LastIndexOf('-'); + var id = pass.Substring(0, passsp); + var aid = pass.Substring(passsp + 1); + i.address = u.IdnHost; + i.port = u.Port; + i.id = id; + i.alterId = int.Parse(aid); + i.remarks = u.GetComponents(UriComponents.Fragment, UriFormat.Unescaped); + + + var query = u.Query; + + var q = HttpUtility.ParseQueryString(u.Query); + + if (user.EndsWith("+tls")) + { + user = user.Split('+')[0]; + i.streamSecurity = "tls"; + // TODO tlsServerName + } + i.network = user; + switch (user) + { + case "tcp": + string t1 = q["type"] ?? "none"; + i.headerType = t1; + // TODO t = http, parse http option + + + break; + case "kcp": + string t2 = q["type"] ?? "none"; + i.headerType = t2; + // TODO seed + break; + case "ws": + string p1 = q["path"] ?? "/"; + string h1 = q["host"] ?? ""; + i.requestHost = h1; + i.path = p1; + break; + + case "http": + i.network = "h2"; + string p2 = q["path"] ?? "/"; + string h2 = q["host"] ?? ""; + i.requestHost = h2; + i.path = p2; + break; + + case "quic": + string s = q["security"] ?? "none"; + string k = q["key"] ?? ""; + string t3 = q["type"] ?? "none"; + i.headerType = t3; + i.requestHost = s; + i.path = k; + break; + + } + + return i; + } #endregion #region Gen speedtest config From 4e8ea374d8024f8a7ef49af35100e2713aa68b73 Mon Sep 17 00:00:00 2001 From: Student Main Date: Thu, 23 Jul 2020 17:15:30 +0800 Subject: [PATCH 09/17] regex vmess url --- v2rayN/v2rayN/Handler/V2rayConfigHandler.cs | 69 ++++++++++++--------- 1 file changed, 41 insertions(+), 28 deletions(-) diff --git a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs index 1830e6af..127f2b7a 100644 --- a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs @@ -1199,7 +1199,7 @@ namespace v2rayN.Handler int indexSplit = result.IndexOf("?"); if (indexSplit > 0) { - vmessItem = ResolveVmess4Vmess(result) ?? ResolveVmess4Kitsunebi(result); + vmessItem = ResolveStdVmess(result) ?? ResolveVmess4Kitsunebi(result); } else { @@ -1469,52 +1469,63 @@ namespace v2rayN.Handler } - private static VmessItem ResolveVmess4Vmess(string result) + private static readonly Regex StdVmessUserInfo = new Regex( + @"^(?[a-z]+)(\+(?[a-z]+))?:(?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})-(?[0-9]+)$"); + + private static VmessItem ResolveStdVmess(string result) { - VmessItem i = new VmessItem(); + VmessItem i = new VmessItem + { + configType = (int)EConfigType.Vmess, + security = "auto" + }; Uri u = new Uri(result); - var uinfo = u.UserInfo; - var uinfo12 = uinfo.Split(':'); - if (uinfo12.Length != 2) return null; - var user = uinfo12[0]; - var pass = uinfo12[1]; - var passsp = pass.LastIndexOf('-'); - var id = pass.Substring(0, passsp); - var aid = pass.Substring(passsp + 1); i.address = u.IdnHost; i.port = u.Port; - i.id = id; - i.alterId = int.Parse(aid); i.remarks = u.GetComponents(UriComponents.Fragment, UriFormat.Unescaped); - - - var query = u.Query; - var q = HttpUtility.ParseQueryString(u.Query); - if (user.EndsWith("+tls")) + var m = StdVmessUserInfo.Match(u.UserInfo); + if (!m.Success) return null; + + i.id = m.Groups["id"].Value; + if (!int.TryParse(m.Groups["alterId"].Value, out int aid)) { - user = user.Split('+')[0]; - i.streamSecurity = "tls"; - // TODO tlsServerName + return null; } - i.network = user; - switch (user) + i.alterId = aid; + + if (m.Groups["streamSecurity"].Success) + { + i.streamSecurity = m.Groups["streamSecurity"].Value; + } + switch (i.streamSecurity) + { + case "tls": + // TODO tls config + break; + default: + if (!string.IsNullOrWhiteSpace(i.streamSecurity)) + return null; + break; + } + + i.network = m.Groups["network"].Value; + switch (i.network) { case "tcp": string t1 = q["type"] ?? "none"; i.headerType = t1; - // TODO t = http, parse http option - + // TODO http option break; case "kcp": - string t2 = q["type"] ?? "none"; - i.headerType = t2; - // TODO seed + i.headerType = q["type"] ?? "none"; + // TODO kcp seed break; + case "ws": string p1 = q["path"] ?? "/"; string h1 = q["host"] ?? ""; @@ -1539,6 +1550,8 @@ namespace v2rayN.Handler i.path = k; break; + default: + return null; } return i; From 1dcb72e9dc2cecd389ccb9642f2a033da9ac399c Mon Sep 17 00:00:00 2001 From: RPRX <63339210+rprx@users.noreply.github.com> Date: Fri, 31 Jul 2020 14:06:30 +0000 Subject: [PATCH 10/17] Update link --- v2rayN/v2rayN/Forms/OptionSettingForm.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.cs b/v2rayN/v2rayN/Forms/OptionSettingForm.cs index bbfec412..78d4eeff 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.cs +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.cs @@ -444,7 +444,7 @@ namespace v2rayN.Forms private void linkLabelRoutingDoc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - System.Diagnostics.Process.Start("https://www.v2fly.org/chapter_02/03_routing.html"); + System.Diagnostics.Process.Start("https://www.v2fly.org/config/routing.html"); } } From ba68f5008b00eb81db10d6e9767de7bd9edfd9af Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Fri, 7 Aug 2020 16:00:39 +0800 Subject: [PATCH 11/17] up UI --- v2rayN/v2rayN/Forms/AddServerForm.Designer.cs | 90 +- v2rayN/v2rayN/Forms/AddServerForm.resx | 2286 ++++++++--------- .../v2rayN/Forms/AddServerForm.zh-Hans.resx | 42 +- 3 files changed, 1209 insertions(+), 1209 deletions(-) diff --git a/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs b/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs index 31ae1b74..a96b32ab 100644 --- a/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs @@ -39,8 +39,11 @@ this.panTlsMore = new System.Windows.Forms.Panel(); this.label21 = new System.Windows.Forms.Label(); this.cmbAllowInsecure = new System.Windows.Forms.ComboBox(); + this.label9 = new System.Windows.Forms.Label(); this.label20 = new System.Windows.Forms.Label(); this.txtPath = new System.Windows.Forms.TextBox(); + this.cmbNetwork = new System.Windows.Forms.ComboBox(); + this.label7 = new System.Windows.Forms.Label(); this.label19 = new System.Windows.Forms.Label(); this.label18 = new System.Windows.Forms.Label(); this.label17 = new System.Windows.Forms.Label(); @@ -53,10 +56,7 @@ this.label11 = new System.Windows.Forms.Label(); this.label10 = new System.Windows.Forms.Label(); this.cmbHeaderType = new System.Windows.Forms.ComboBox(); - this.label9 = new System.Windows.Forms.Label(); this.label8 = new System.Windows.Forms.Label(); - this.cmbNetwork = new System.Windows.Forms.ComboBox(); - this.label7 = new System.Windows.Forms.Label(); this.cmbSecurity = new System.Windows.Forms.ComboBox(); this.txtRemarks = new System.Windows.Forms.TextBox(); this.label6 = new System.Windows.Forms.Label(); @@ -87,22 +87,18 @@ // // btnClose // - resources.ApplyResources(this.btnClose, "btnClose"); this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + resources.ApplyResources(this.btnClose, "btnClose"); this.btnClose.Name = "btnClose"; this.btnClose.UseVisualStyleBackColor = true; this.btnClose.Click += new System.EventHandler(this.btnClose_Click); // // groupBox1 // - resources.ApplyResources(this.groupBox1, "groupBox1"); this.groupBox1.Controls.Add(this.btnGUID); this.groupBox1.Controls.Add(this.label13); this.groupBox1.Controls.Add(this.groupBox2); - this.groupBox1.Controls.Add(this.label9); this.groupBox1.Controls.Add(this.label8); - this.groupBox1.Controls.Add(this.cmbNetwork); - this.groupBox1.Controls.Add(this.label7); this.groupBox1.Controls.Add(this.cmbSecurity); this.groupBox1.Controls.Add(this.txtRemarks); this.groupBox1.Controls.Add(this.label6); @@ -115,6 +111,7 @@ this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.txtAddress); this.groupBox1.Controls.Add(this.label1); + resources.ApplyResources(this.groupBox1, "groupBox1"); this.groupBox1.Name = "groupBox1"; this.groupBox1.TabStop = false; // @@ -132,12 +129,14 @@ // // groupBox2 // - resources.ApplyResources(this.groupBox2, "groupBox2"); this.groupBox2.Controls.Add(this.label24); this.groupBox2.Controls.Add(this.label23); this.groupBox2.Controls.Add(this.panTlsMore); + this.groupBox2.Controls.Add(this.label9); this.groupBox2.Controls.Add(this.label20); this.groupBox2.Controls.Add(this.txtPath); + this.groupBox2.Controls.Add(this.cmbNetwork); + this.groupBox2.Controls.Add(this.label7); this.groupBox2.Controls.Add(this.label19); this.groupBox2.Controls.Add(this.label18); this.groupBox2.Controls.Add(this.label17); @@ -150,6 +149,7 @@ this.groupBox2.Controls.Add(this.label11); this.groupBox2.Controls.Add(this.label10); this.groupBox2.Controls.Add(this.cmbHeaderType); + resources.ApplyResources(this.groupBox2, "groupBox2"); this.groupBox2.Name = "groupBox2"; this.groupBox2.TabStop = false; // @@ -165,9 +165,9 @@ // // panTlsMore // - resources.ApplyResources(this.panTlsMore, "panTlsMore"); this.panTlsMore.Controls.Add(this.label21); this.panTlsMore.Controls.Add(this.cmbAllowInsecure); + resources.ApplyResources(this.panTlsMore, "panTlsMore"); this.panTlsMore.Name = "panTlsMore"; // // label21 @@ -177,15 +177,20 @@ // // cmbAllowInsecure // - resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure"); this.cmbAllowInsecure.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbAllowInsecure.FormattingEnabled = true; this.cmbAllowInsecure.Items.AddRange(new object[] { resources.GetString("cmbAllowInsecure.Items"), resources.GetString("cmbAllowInsecure.Items1"), resources.GetString("cmbAllowInsecure.Items2")}); + resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure"); this.cmbAllowInsecure.Name = "cmbAllowInsecure"; // + // label9 + // + resources.ApplyResources(this.label9, "label9"); + this.label9.Name = "label9"; + // // label20 // resources.ApplyResources(this.label20, "label20"); @@ -196,6 +201,25 @@ resources.ApplyResources(this.txtPath, "txtPath"); this.txtPath.Name = "txtPath"; // + // cmbNetwork + // + this.cmbNetwork.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbNetwork.FormattingEnabled = true; + this.cmbNetwork.Items.AddRange(new object[] { + resources.GetString("cmbNetwork.Items"), + resources.GetString("cmbNetwork.Items1"), + resources.GetString("cmbNetwork.Items2"), + resources.GetString("cmbNetwork.Items3"), + resources.GetString("cmbNetwork.Items4")}); + resources.ApplyResources(this.cmbNetwork, "cmbNetwork"); + this.cmbNetwork.Name = "cmbNetwork"; + this.cmbNetwork.SelectedIndexChanged += new System.EventHandler(this.cmbNetwork_SelectedIndexChanged); + // + // label7 + // + resources.ApplyResources(this.label7, "label7"); + this.label7.Name = "label7"; + // // label19 // resources.ApplyResources(this.label19, "label19"); @@ -228,12 +252,12 @@ // // cmbStreamSecurity // - resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity"); this.cmbStreamSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbStreamSecurity.FormattingEnabled = true; this.cmbStreamSecurity.Items.AddRange(new object[] { resources.GetString("cmbStreamSecurity.Items"), resources.GetString("cmbStreamSecurity.Items1")}); + resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity"); this.cmbStreamSecurity.Name = "cmbStreamSecurity"; this.cmbStreamSecurity.SelectedIndexChanged += new System.EventHandler(this.cmbStreamSecurity_SelectedIndexChanged); // @@ -259,7 +283,6 @@ // // cmbHeaderType // - resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType"); this.cmbHeaderType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbHeaderType.FormattingEnabled = true; this.cmbHeaderType.Items.AddRange(new object[] { @@ -270,40 +293,16 @@ resources.GetString("cmbHeaderType.Items4"), resources.GetString("cmbHeaderType.Items5"), resources.GetString("cmbHeaderType.Items6")}); + resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType"); this.cmbHeaderType.Name = "cmbHeaderType"; // - // label9 - // - resources.ApplyResources(this.label9, "label9"); - this.label9.Name = "label9"; - // // label8 // resources.ApplyResources(this.label8, "label8"); this.label8.Name = "label8"; // - // cmbNetwork - // - resources.ApplyResources(this.cmbNetwork, "cmbNetwork"); - this.cmbNetwork.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.cmbNetwork.FormattingEnabled = true; - this.cmbNetwork.Items.AddRange(new object[] { - resources.GetString("cmbNetwork.Items"), - resources.GetString("cmbNetwork.Items1"), - resources.GetString("cmbNetwork.Items2"), - resources.GetString("cmbNetwork.Items3"), - resources.GetString("cmbNetwork.Items4")}); - this.cmbNetwork.Name = "cmbNetwork"; - this.cmbNetwork.SelectedIndexChanged += new System.EventHandler(this.cmbNetwork_SelectedIndexChanged); - // - // label7 - // - resources.ApplyResources(this.label7, "label7"); - this.label7.Name = "label7"; - // // cmbSecurity // - resources.ApplyResources(this.cmbSecurity, "cmbSecurity"); this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbSecurity.FormattingEnabled = true; this.cmbSecurity.Items.AddRange(new object[] { @@ -311,6 +310,7 @@ resources.GetString("cmbSecurity.Items1"), resources.GetString("cmbSecurity.Items2"), resources.GetString("cmbSecurity.Items3")}); + resources.ApplyResources(this.cmbSecurity, "cmbSecurity"); this.cmbSecurity.Name = "cmbSecurity"; // // txtRemarks @@ -370,9 +370,9 @@ // // panel2 // - resources.ApplyResources(this.panel2, "panel2"); this.panel2.Controls.Add(this.btnClose); this.panel2.Controls.Add(this.btnOK); + resources.ApplyResources(this.panel2, "panel2"); this.panel2.Name = "panel2"; // // btnOK @@ -389,42 +389,42 @@ // // menuServer // - resources.ApplyResources(this.menuServer, "menuServer"); this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.MenuItem1}); + resources.ApplyResources(this.menuServer, "menuServer"); this.menuServer.Name = "menuServer"; // // MenuItem1 // - resources.ApplyResources(this.MenuItem1, "MenuItem1"); this.MenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.MenuItemImportClient, this.MenuItemImportServer, this.toolStripSeparator1, this.MenuItemImportClipboard}); this.MenuItem1.Name = "MenuItem1"; + resources.ApplyResources(this.MenuItem1, "MenuItem1"); // // MenuItemImportClient // - resources.ApplyResources(this.MenuItemImportClient, "MenuItemImportClient"); this.MenuItemImportClient.Name = "MenuItemImportClient"; + resources.ApplyResources(this.MenuItemImportClient, "MenuItemImportClient"); this.MenuItemImportClient.Click += new System.EventHandler(this.MenuItemImportClient_Click); // // MenuItemImportServer // - resources.ApplyResources(this.MenuItemImportServer, "MenuItemImportServer"); this.MenuItemImportServer.Name = "MenuItemImportServer"; + resources.ApplyResources(this.MenuItemImportServer, "MenuItemImportServer"); this.MenuItemImportServer.Click += new System.EventHandler(this.MenuItemImportServer_Click); // // toolStripSeparator1 // - resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1"); this.toolStripSeparator1.Name = "toolStripSeparator1"; + resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1"); // // MenuItemImportClipboard // - resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard"); this.MenuItemImportClipboard.Name = "MenuItemImportClipboard"; + resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard"); this.MenuItemImportClipboard.Click += new System.EventHandler(this.MenuItemImportClipboard_Click); // // AddServerForm diff --git a/v2rayN/v2rayN/Forms/AddServerForm.resx b/v2rayN/v2rayN/Forms/AddServerForm.resx index 107bae98..832dd782 100644 --- a/v2rayN/v2rayN/Forms/AddServerForm.resx +++ b/v2rayN/v2rayN/Forms/AddServerForm.resx @@ -117,1249 +117,1249 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 7 - - - 113, 12 - - - 12 - - - 285, 203 - - - 124, 30 - - - groupBox2 - - - 9 - - - Path - - - 83, 12 - - - Transport protocol(network) - - - 10 - - - panTlsMore - - - groupBox1 - - - 1 - - - label15 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - cmbStreamSecurity - - - 3)h2 host Separated by commas (,) - - - - Top - - - - 3 - - - 17 - - - false - - - 16 - - - True - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 5 - - - 21 - - - 411, 83 - - - Address - - - groupBox1 - - - 59, 12 - - - 1)ws path - - - 19 - - - True - - - 26 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - txtId - - - True - - - 729, 474 - - - - - - 12, 89 - - - groupBox2 - - - tls - - - True - - - 299, 12 - - - panTlsMore - - - 13 - - - aes-128-gcm - - - groupBox1 - - - 127, 85 - - - 13 - - - 12, 203 - - - 1 - - - label10 - - - 723, 234 - - - 4 - - - label21 - - - System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 143, 12 - - - groupBox2 - - - toolStripSeparator1 - - - NoControl - - - 21 - - - label11 - - - 5 - - - 158, 58 - - - 2 - - - 29, 12 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 234, 6 - - - 237, 22 - - - TLS - - - 3)QUIC key - - - 127, 56 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - txtPort - - - 2 - - - groupBox1 - - - Bottom - - - True - - - 127, 199 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 29, 12 - - - ws - - - 16 - - - 9, 34 - - - 18 - - - Import server configuration - - - 6, 12 - - - 1 - - - 7 - - - 15 - - - label17 - - - panel1 - - - label14 - - - groupBox2 - - - 5 - - - 215, 12 - - - 0, 0 - 396, 17 - - 338, 35 + + 75, 23 - - 12, 60 - - - MenuItemImportClient - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - &Generate - - - Encryption method (security) - - - none - - - txtRemarks - - - 47, 12 - - - v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - - - groupBox2 - - - panel2 - - - true - - - panTlsMore - - - True - - - 127, 114 - - - 284, 189 - - - 95, 12 - - - NoControl - - - 353, 175 - - - cmbNetwork - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 22 - - - groupBox1 - - - True - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 127, 27 - - - label12 - - - AlterId - - - True - - - 282, 34 - - - 9 - - - 25 - - - label23 - - - groupBox1 - - - 143, 20 - - - 1 - - - $this - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 33 - - - 6 - - - none - - - 0 - - - 47, 12 - - - label8 + + + 4 &Cancel - - label13 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - txtAlterId - - - 35 - - - 10 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 11 - - - True - - - 469, 53 - - - label9 - - - label20 - - - 124, 125 - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - label18 - - - MenuItem1 - - - label1 - - - 13 - - - 34 - - - 143, 20 - - - groupBox2 - - - True - btnClose - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - label19 - - - 143, 21 - - - 95, 12 - - - groupBox1 - - - 0, 35 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 729, 60 - - - allowInsecure - - - True - - - 469, 83 - - - $this - - - quic - - - groupBox2 - - - h2 - - - kcp - - - 7 - - - 143, 21 - - - 526, 130 - - - 18 - - - 12, 147 - - - 15 - - - groupBox1 - - - label2 - - - groupBox2 - - - 24 - - - groupBox2 - - - 119, 12 - - - True - - - True - - - Bottom - - - 91, 20 - - - 27 - - - 23 - - - groupBox2 - - - 14 - - - Port - - - groupBox2 - - - Fill - - - chacha20-poly1305 - - - 15 - - - groupBox1 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 0 - - - 75, 23 - - - 4 - - - True - - - 8 - - - groupBox1 - - - 8 - - - *Recommended (auto) - - - 195, 143 - - - 3 - - - groupBox1 - - - 0, 509 - - - 143, 20 - - - 23 - - - 6 - - - 7 - - - 14 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - 3, 237 - - - Import configuration file - - - wechat-video - - - 12 - - - 23, 12 - - - 729, 10 - - - 470, 99 - - - True - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 22 - - - 396, 54 - - - 300, 53 - - - 1)http host Separated by commas (,) - - - 12, 31 - - - 11 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - dtls - - - MenuItemImportServer - - - groupBox2 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 panel2 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 0 - + + 411, 83 + + + 75, 23 + + + 23 + + + &Generate + + + btnGUID + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + groupBox1 - - AddServerForm - - - wireguard - - - groupBox1 - - - - - - Server - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 303, 17 - - - 2)ws host - - - groupBox1 - - - txtAddress + + 0 True - - 2)h2 path + + 285, 179 - - True + + 113, 12 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 167, 12 - - - 8 - - - Keep the default value if it is not clear - - - groupBox2 + + 22 * Fill in manually - - 9, 125 + + label13 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 1 + + + True + + + + NoControl + + + 526, 197 + + + 65, 12 + + + 35 + + + 3)QUIC key + + + label24 System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 12 + + groupBox2 - + + 0 + + + True + + + NoControl + + + 470, 131 + + + 89, 12 + + + 34 + + + 4)QUIC securty + + + label23 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 1 + + True 12, 11 - - 89, 12 + + 83, 12 - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 31 - - 143, 21 + + allowInsecure - - 1 + + label21 - - 65, 12 - - - txtPath - - - 162, 21 - - + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - txtRequestHost + + panTlsMore - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 0 - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + - - Alias (remarks) + + true - - groupBox2 + + false - - label7 + + 107, 7 - - 4 + + 91, 20 + + + 30 cmbAllowInsecure - - &OK + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 6 + + panTlsMore - + + 1 + + + 284, 234 + + + 338, 35 + + + 33 + + + panTlsMore + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 2 + + + True + + + 350, 32 + + + 113, 12 + + + 15 + + + *Default value tcp + + + label9 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + 3 - - http + + True - + + 469, 115 + + + 203, 12 + + + 29 + + + 3)h2 host Separated by commas (,) + + + label20 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 4 + + + 124, 157 + + + True + + + 396, 54 + + + 28 + + + txtPath + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 5 + + + tcp + + + kcp + + + ws + + + h2 + + + quic + + + 192, 28 + + + 143, 20 + + + 12 + + + cmbNetwork + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 6 + + + True + + + 9, 32 + + + 167, 12 + + + 13 + + + Transport protocol(network) + + + label7 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 7 + + + True + + + 9, 157 + + + 29, 12 + + + 27 + + + Path + + + label19 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 8 + + True - 526, 147 + 526, 179 - - 6 + + 59, 12 - + + 26 + + + 2)h2 path + + + label18 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + groupBox2 - - menuServer + + 9 + + + True + + + 469, 100 + + + 59, 12 + + + 25 + + + 2)ws host + + + label17 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 10 + + + True + + + 526, 162 + + + 59, 12 + + + 24 + + + 1)ws path + + + label16 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 11 + + + True + + + 469, 85 + + + 215, 12 + + + 23 + + + 1)http host Separated by commas (,) + + + label14 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 12 + + + True + + + 9, 246 + + + 23, 12 + + + 22 + + + TLS + + + label15 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 13 + + + + + + tls + + + 124, 242 + + + 143, 20 + + + 21 + + + cmbStreamSecurity + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 14 + + + True + + + 282, 66 + + + 299, 12 20 + + *tcp or kcp or QUIC camouflage type, default none + + + label12 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 15 + + + 158, 90 + + + True + + + 300, 53 + + + 16 + + + txtRequestHost + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 16 + + + True + + + 9, 66 + + + 95, 12 + + + 19 + + + Camouflage type + + + label11 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 17 + + + True + + + 9, 94 + + + 143, 12 + + + 17 + + + Camouflage domain(host) + + + label10 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 18 + + + none + + + http + + + srtp + + + utp + + + wechat-video + + + dtls + + + wireguard + + + 124, 62 + + + 143, 20 + + + 18 + + + cmbHeaderType + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 19 + + + Bottom + + + 3, 215 + + + 723, 281 + + + 21 + + + Transport + + + groupBox2 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 2 + + + True + + + 353, 147 + + + 119, 12 + + + 14 + + + *Recommended (auto) + + + label8 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 3 + + + aes-128-gcm + + + chacha20-poly1305 + + + auto + + + none + + + 195, 143 + + + 143, 20 + + + 6 + + + cmbSecurity + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 4 + + + 127, 175 + + + 143, 21 + + + 11 + + + txtRemarks + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 5 + + + True + + + 12, 179 + + + 95, 12 + + + 10 + + + Alias (remarks) + + + label6 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 6 + + + True + + + 12, 147 + + + 173, 12 + + + 8 + + + Encryption method (security) + + + label5 + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 1 + + groupBox1 - + + 7 + + + 127, 114 + + + 143, 21 + + + 7 + + + txtAlterId + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 8 + + + True + + + 12, 118 + + + 47, 12 + + + 6 + + + AlterId + + + label4 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 9 + + + 127, 85 + + + 278, 21 + + + 5 + + + txtId + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 10 + + + True + + + 12, 89 + + + 53, 12 + + 4 UUID(id) - - $this - - - MenuItemImportClipboard - - - $this - - - 3 - - - groupBox1 - - - 237, 22 - - - 143, 20 - - - True - - - 5 - - - 0 - - - Camouflage domain(host) - - - 0 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 113, 12 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 195, 171 - - - 203, 12 - - - utp - - - 124, 197 - - - 30 - - - 17 - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 359, 21 - - - 29 - - - auto - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 469, 68 - - - 2 - - - 9, 62 - label3 - - srtp - - - 8 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Import URL from clipboard - - - True - - - 75, 23 - - - 173, 12 - - - *Default value tcp - - - 0 - - - 729, 569 - - - label4 - - - 31 - - - True - - - 9, 201 - - - 353, 147 - - - Edit or add a [VMess] server - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 11 - - - groupBox1 - - - label5 - - - 3 - - - label16 - - - btnOK - - - 237, 22 - - - 16 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 28 - - - 107, 7 - - - groupBox1 - - - Import client configuration - - - 12, 118 - - - 4)QUIC securty - - - 0, 25 - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - cmbSecurity - - - tcp - - - 6 - - - btnGUID - - - 75, 23 - - - *tcp or kcp or QUIC camouflage type, default none - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - Camouflage type - - - 0 - - - groupBox2 - - - 278, 21 - - - 12, 175 - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - label24 - - - 59, 12 - - - panel2 - - - 14 - - - groupBox2 - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + groupBox1 + + + 11 + + + 127, 56 + + + 143, 21 + + + 3 + + + txtPort + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 12 + + True - - label6 + + 12, 60 - - 59, 12 + + 29, 12 - - 10 + + 2 - - 729, 25 + + Port - - cmbHeaderType + + label2 - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 526, 165 + + groupBox1 + + + 13 + + + 127, 27 + + + 359, 21 + + + 1 + + + txtAddress + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 14 + + + True + + + 12, 31 + + + 47, 12 + + + 0 + + + Address + + + label1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 15 + + + Fill + + + 0, 35 + + + 729, 499 + + + 3 + + + Server + + + groupBox1 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + 303, 17 + + + 75, 23 + + + 5 + + + &OK + + + btnOK + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel2 + + + 1 + + + Bottom + + + 0, 534 + + + 729, 60 + + + 7 + + + panel2 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + Top + + + 0, 25 + + + 729, 10 + + + 6 + + + panel1 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this 2 - - 53, 12 + + 17, 17 + + + 237, 22 + + + Import client configuration + + + 237, 22 + + + Import server configuration + + + 234, 6 + + + 237, 22 + + + Import URL from clipboard + + + 162, 21 + + + Import configuration file + + + 0, 0 + + + 729, 25 + + + 8 + + + menuServer + + + System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 3 True - - 17, 17 - + + 6, 12 + + + 729, 594 + + + Edit or add a [VMess] server + + + MenuItem1 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + MenuItemImportClient + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + MenuItemImportServer + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator1 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + MenuItemImportClipboard + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + AddServerForm + + + v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx index 45df68bf..62a6aac4 100644 --- a/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx @@ -130,7 +130,7 @@ *手填,方便识别管理 - 不清楚则保持默认值 + 底层传输方式(transport) @@ -146,7 +146,7 @@ 4)QUIC 加密方式 - 203, 12 + 167, 12 跳过证书验证(allowInsecure) @@ -154,12 +154,30 @@ 223, 7 + + 143, 12 + + + *默认tcp,选错会无法连接 + 149, 12 3)h2 host中间逗号(,)隔开 + + 127, 32 + + + 211, 20 + + + 107, 12 + + + 传输协议(network) + 65, 12 @@ -185,7 +203,7 @@ *tcp或kcp或QUIC伪装类型,默认none - 124, 58 + 124, 94 334, 51 @@ -202,30 +220,12 @@ 伪装域名(host) - - 143, 12 - - - *默认tcp,选错会无法连接 - 113, 12 *随便选,建议(auto) - - 127, 171 - - - 211, 20 - - - 107, 12 - - - 传输协议(network) - 127, 143 From 583bd22244831ee093ac19d905ddec1c4857840a Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Sat, 8 Aug 2020 11:15:32 +0800 Subject: [PATCH 12/17] add vless --- .../v2rayN/Forms/AddServer5Form.Designer.cs | 489 ++++++ v2rayN/v2rayN/Forms/AddServer5Form.cs | 284 ++++ v2rayN/v2rayN/Forms/AddServer5Form.resx | 1311 +++++++++++++++++ .../v2rayN/Forms/AddServer5Form.zh-Hans.resx | 302 ++++ v2rayN/v2rayN/Forms/MainForm.Designer.cs | 11 +- v2rayN/v2rayN/Forms/MainForm.cs | 30 +- v2rayN/v2rayN/Forms/MainForm.resx | 42 +- v2rayN/v2rayN/Mode/EConfigType.cs | 3 +- v2rayN/v2rayN/Mode/V2rayConfig.cs | 12 + v2rayN/v2rayN/v2rayN.csproj | 14 + 10 files changed, 2479 insertions(+), 19 deletions(-) create mode 100644 v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs create mode 100644 v2rayN/v2rayN/Forms/AddServer5Form.cs create mode 100644 v2rayN/v2rayN/Forms/AddServer5Form.resx create mode 100644 v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx diff --git a/v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs b/v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs new file mode 100644 index 00000000..f290e0d9 --- /dev/null +++ b/v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs @@ -0,0 +1,489 @@ +namespace v2rayN.Forms +{ + partial class AddServer5Form + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddServer5Form)); + this.btnClose = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.btnGUID = new System.Windows.Forms.Button(); + this.label13 = new System.Windows.Forms.Label(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.label24 = new System.Windows.Forms.Label(); + this.label23 = new System.Windows.Forms.Label(); + this.panTlsMore = new System.Windows.Forms.Panel(); + this.label21 = new System.Windows.Forms.Label(); + this.cmbAllowInsecure = new System.Windows.Forms.ComboBox(); + this.label9 = new System.Windows.Forms.Label(); + this.label20 = new System.Windows.Forms.Label(); + this.txtPath = new System.Windows.Forms.TextBox(); + this.cmbNetwork = new System.Windows.Forms.ComboBox(); + this.label7 = new System.Windows.Forms.Label(); + this.label19 = new System.Windows.Forms.Label(); + this.label18 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.cmbStreamSecurity = new System.Windows.Forms.ComboBox(); + this.label12 = new System.Windows.Forms.Label(); + this.txtRequestHost = new System.Windows.Forms.TextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.cmbHeaderType = new System.Windows.Forms.ComboBox(); + this.label8 = new System.Windows.Forms.Label(); + this.cmbSecurity = new System.Windows.Forms.ComboBox(); + this.txtRemarks = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.txtId = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.txtPort = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.txtAddress = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.btnOK = new System.Windows.Forms.Button(); + this.panel1 = new System.Windows.Forms.Panel(); + this.menuServer = new System.Windows.Forms.MenuStrip(); + this.MenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.MenuItemImportClient = new System.Windows.Forms.ToolStripMenuItem(); + this.MenuItemImportServer = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.MenuItemImportClipboard = new System.Windows.Forms.ToolStripMenuItem(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.panTlsMore.SuspendLayout(); + this.panel2.SuspendLayout(); + this.menuServer.SuspendLayout(); + this.SuspendLayout(); + // + // btnClose + // + resources.ApplyResources(this.btnClose, "btnClose"); + this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnClose.Name = "btnClose"; + this.btnClose.UseVisualStyleBackColor = true; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // groupBox1 + // + resources.ApplyResources(this.groupBox1, "groupBox1"); + this.groupBox1.Controls.Add(this.btnGUID); + this.groupBox1.Controls.Add(this.label13); + this.groupBox1.Controls.Add(this.groupBox2); + this.groupBox1.Controls.Add(this.label8); + this.groupBox1.Controls.Add(this.cmbSecurity); + this.groupBox1.Controls.Add(this.txtRemarks); + this.groupBox1.Controls.Add(this.label6); + this.groupBox1.Controls.Add(this.label5); + this.groupBox1.Controls.Add(this.txtId); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.txtPort); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Controls.Add(this.txtAddress); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.TabStop = false; + // + // btnGUID + // + resources.ApplyResources(this.btnGUID, "btnGUID"); + this.btnGUID.Name = "btnGUID"; + this.btnGUID.UseVisualStyleBackColor = true; + this.btnGUID.Click += new System.EventHandler(this.btnGUID_Click); + // + // label13 + // + resources.ApplyResources(this.label13, "label13"); + this.label13.Name = "label13"; + // + // groupBox2 + // + resources.ApplyResources(this.groupBox2, "groupBox2"); + this.groupBox2.Controls.Add(this.label24); + this.groupBox2.Controls.Add(this.label23); + this.groupBox2.Controls.Add(this.panTlsMore); + this.groupBox2.Controls.Add(this.label9); + this.groupBox2.Controls.Add(this.label20); + this.groupBox2.Controls.Add(this.txtPath); + this.groupBox2.Controls.Add(this.cmbNetwork); + this.groupBox2.Controls.Add(this.label7); + this.groupBox2.Controls.Add(this.label19); + this.groupBox2.Controls.Add(this.label18); + this.groupBox2.Controls.Add(this.label17); + this.groupBox2.Controls.Add(this.label16); + this.groupBox2.Controls.Add(this.label14); + this.groupBox2.Controls.Add(this.label15); + this.groupBox2.Controls.Add(this.cmbStreamSecurity); + this.groupBox2.Controls.Add(this.label12); + this.groupBox2.Controls.Add(this.txtRequestHost); + this.groupBox2.Controls.Add(this.label11); + this.groupBox2.Controls.Add(this.label10); + this.groupBox2.Controls.Add(this.cmbHeaderType); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.TabStop = false; + // + // label24 + // + resources.ApplyResources(this.label24, "label24"); + this.label24.Name = "label24"; + // + // label23 + // + resources.ApplyResources(this.label23, "label23"); + this.label23.Name = "label23"; + // + // panTlsMore + // + resources.ApplyResources(this.panTlsMore, "panTlsMore"); + this.panTlsMore.Controls.Add(this.label21); + this.panTlsMore.Controls.Add(this.cmbAllowInsecure); + this.panTlsMore.Name = "panTlsMore"; + // + // label21 + // + resources.ApplyResources(this.label21, "label21"); + this.label21.Name = "label21"; + // + // cmbAllowInsecure + // + resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure"); + this.cmbAllowInsecure.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbAllowInsecure.FormattingEnabled = true; + this.cmbAllowInsecure.Items.AddRange(new object[] { + resources.GetString("cmbAllowInsecure.Items"), + resources.GetString("cmbAllowInsecure.Items1"), + resources.GetString("cmbAllowInsecure.Items2")}); + this.cmbAllowInsecure.Name = "cmbAllowInsecure"; + // + // label9 + // + resources.ApplyResources(this.label9, "label9"); + this.label9.Name = "label9"; + // + // label20 + // + resources.ApplyResources(this.label20, "label20"); + this.label20.Name = "label20"; + // + // txtPath + // + resources.ApplyResources(this.txtPath, "txtPath"); + this.txtPath.Name = "txtPath"; + // + // cmbNetwork + // + resources.ApplyResources(this.cmbNetwork, "cmbNetwork"); + this.cmbNetwork.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbNetwork.FormattingEnabled = true; + this.cmbNetwork.Items.AddRange(new object[] { + resources.GetString("cmbNetwork.Items"), + resources.GetString("cmbNetwork.Items1"), + resources.GetString("cmbNetwork.Items2"), + resources.GetString("cmbNetwork.Items3"), + resources.GetString("cmbNetwork.Items4")}); + this.cmbNetwork.Name = "cmbNetwork"; + this.cmbNetwork.SelectedIndexChanged += new System.EventHandler(this.cmbNetwork_SelectedIndexChanged); + // + // label7 + // + resources.ApplyResources(this.label7, "label7"); + this.label7.Name = "label7"; + // + // label19 + // + resources.ApplyResources(this.label19, "label19"); + this.label19.Name = "label19"; + // + // label18 + // + resources.ApplyResources(this.label18, "label18"); + this.label18.Name = "label18"; + // + // label17 + // + resources.ApplyResources(this.label17, "label17"); + this.label17.Name = "label17"; + // + // label16 + // + resources.ApplyResources(this.label16, "label16"); + this.label16.Name = "label16"; + // + // label14 + // + resources.ApplyResources(this.label14, "label14"); + this.label14.Name = "label14"; + // + // label15 + // + resources.ApplyResources(this.label15, "label15"); + this.label15.Name = "label15"; + // + // cmbStreamSecurity + // + resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity"); + this.cmbStreamSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbStreamSecurity.FormattingEnabled = true; + this.cmbStreamSecurity.Items.AddRange(new object[] { + resources.GetString("cmbStreamSecurity.Items"), + resources.GetString("cmbStreamSecurity.Items1")}); + this.cmbStreamSecurity.Name = "cmbStreamSecurity"; + this.cmbStreamSecurity.SelectedIndexChanged += new System.EventHandler(this.cmbStreamSecurity_SelectedIndexChanged); + // + // label12 + // + resources.ApplyResources(this.label12, "label12"); + this.label12.Name = "label12"; + // + // txtRequestHost + // + resources.ApplyResources(this.txtRequestHost, "txtRequestHost"); + this.txtRequestHost.Name = "txtRequestHost"; + // + // label11 + // + resources.ApplyResources(this.label11, "label11"); + this.label11.Name = "label11"; + // + // label10 + // + resources.ApplyResources(this.label10, "label10"); + this.label10.Name = "label10"; + // + // cmbHeaderType + // + resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType"); + this.cmbHeaderType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbHeaderType.FormattingEnabled = true; + this.cmbHeaderType.Items.AddRange(new object[] { + resources.GetString("cmbHeaderType.Items"), + resources.GetString("cmbHeaderType.Items1"), + resources.GetString("cmbHeaderType.Items2"), + resources.GetString("cmbHeaderType.Items3"), + resources.GetString("cmbHeaderType.Items4"), + resources.GetString("cmbHeaderType.Items5"), + resources.GetString("cmbHeaderType.Items6")}); + this.cmbHeaderType.Name = "cmbHeaderType"; + // + // label8 + // + resources.ApplyResources(this.label8, "label8"); + this.label8.Name = "label8"; + // + // cmbSecurity + // + resources.ApplyResources(this.cmbSecurity, "cmbSecurity"); + this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.Simple; + this.cmbSecurity.FormattingEnabled = true; + this.cmbSecurity.Items.AddRange(new object[] { + resources.GetString("cmbSecurity.Items")}); + this.cmbSecurity.Name = "cmbSecurity"; + // + // txtRemarks + // + resources.ApplyResources(this.txtRemarks, "txtRemarks"); + this.txtRemarks.Name = "txtRemarks"; + // + // label6 + // + resources.ApplyResources(this.label6, "label6"); + this.label6.Name = "label6"; + // + // label5 + // + resources.ApplyResources(this.label5, "label5"); + this.label5.Name = "label5"; + // + // txtId + // + resources.ApplyResources(this.txtId, "txtId"); + this.txtId.Name = "txtId"; + // + // label3 + // + resources.ApplyResources(this.label3, "label3"); + this.label3.Name = "label3"; + // + // txtPort + // + resources.ApplyResources(this.txtPort, "txtPort"); + this.txtPort.Name = "txtPort"; + // + // label2 + // + resources.ApplyResources(this.label2, "label2"); + this.label2.Name = "label2"; + // + // txtAddress + // + resources.ApplyResources(this.txtAddress, "txtAddress"); + this.txtAddress.Name = "txtAddress"; + // + // label1 + // + resources.ApplyResources(this.label1, "label1"); + this.label1.Name = "label1"; + // + // panel2 + // + resources.ApplyResources(this.panel2, "panel2"); + this.panel2.Controls.Add(this.btnClose); + this.panel2.Controls.Add(this.btnOK); + this.panel2.Name = "panel2"; + // + // btnOK + // + resources.ApplyResources(this.btnOK, "btnOK"); + this.btnOK.Name = "btnOK"; + this.btnOK.UseVisualStyleBackColor = true; + this.btnOK.Click += new System.EventHandler(this.btnOK_Click); + // + // panel1 + // + resources.ApplyResources(this.panel1, "panel1"); + this.panel1.Name = "panel1"; + // + // menuServer + // + resources.ApplyResources(this.menuServer, "menuServer"); + this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.MenuItem1}); + this.menuServer.Name = "menuServer"; + // + // MenuItem1 + // + resources.ApplyResources(this.MenuItem1, "MenuItem1"); + this.MenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.MenuItemImportClient, + this.MenuItemImportServer, + this.toolStripSeparator1, + this.MenuItemImportClipboard}); + this.MenuItem1.Name = "MenuItem1"; + // + // MenuItemImportClient + // + resources.ApplyResources(this.MenuItemImportClient, "MenuItemImportClient"); + this.MenuItemImportClient.Name = "MenuItemImportClient"; + this.MenuItemImportClient.Click += new System.EventHandler(this.MenuItemImportClient_Click); + // + // MenuItemImportServer + // + resources.ApplyResources(this.MenuItemImportServer, "MenuItemImportServer"); + this.MenuItemImportServer.Name = "MenuItemImportServer"; + this.MenuItemImportServer.Click += new System.EventHandler(this.MenuItemImportServer_Click); + // + // toolStripSeparator1 + // + resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1"); + this.toolStripSeparator1.Name = "toolStripSeparator1"; + // + // MenuItemImportClipboard + // + resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard"); + this.MenuItemImportClipboard.Name = "MenuItemImportClipboard"; + this.MenuItemImportClipboard.Click += new System.EventHandler(this.MenuItemImportClipboard_Click); + // + // AddServer5Form + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.btnClose; + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.panel2); + this.Controls.Add(this.panel1); + this.Controls.Add(this.menuServer); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Name = "AddServer5Form"; + this.Load += new System.EventHandler(this.AddServer5Form_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.panTlsMore.ResumeLayout(false); + this.panTlsMore.PerformLayout(); + this.panel2.ResumeLayout(false); + this.menuServer.ResumeLayout(false); + this.menuServer.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button btnClose; + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.TextBox txtRemarks; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox txtId; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox txtPort; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox txtAddress; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox cmbSecurity; + private System.Windows.Forms.ComboBox cmbNetwork; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.TextBox txtRequestHost; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.ComboBox cmbHeaderType; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.MenuStrip menuServer; + private System.Windows.Forms.ToolStripMenuItem MenuItem1; + private System.Windows.Forms.ToolStripMenuItem MenuItemImportClient; + private System.Windows.Forms.ToolStripMenuItem MenuItemImportServer; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.ComboBox cmbStreamSecurity; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripMenuItem MenuItemImportClipboard; + private System.Windows.Forms.Button btnGUID; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.TextBox txtPath; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.ComboBox cmbAllowInsecure; + private System.Windows.Forms.Panel panTlsMore; + private System.Windows.Forms.Label label24; + private System.Windows.Forms.Label label23; + } +} \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/AddServer5Form.cs b/v2rayN/v2rayN/Forms/AddServer5Form.cs new file mode 100644 index 00000000..568ebd63 --- /dev/null +++ b/v2rayN/v2rayN/Forms/AddServer5Form.cs @@ -0,0 +1,284 @@ +using System; +using System.Windows.Forms; +using v2rayN.Handler; +using v2rayN.Mode; + +namespace v2rayN.Forms +{ + public partial class AddServer5Form : BaseForm + { + public int EditIndex { get; set; } + VmessItem vmessItem = null; + + public AddServer5Form() + { + InitializeComponent(); + } + + private void AddServer5Form_Load(object sender, EventArgs e) + { + if (EditIndex >= 0) + { + vmessItem = config.vmess[EditIndex]; + BindingServer(); + } + else + { + vmessItem = new VmessItem(); + ClearServer(); + } + } + + /// + /// 绑定数据 + /// + private void BindingServer() + { + txtAddress.Text = vmessItem.address; + txtPort.Text = vmessItem.port.ToString(); + txtId.Text = vmessItem.id; + cmbSecurity.Text = vmessItem.security; + cmbNetwork.Text = vmessItem.network; + txtRemarks.Text = vmessItem.remarks; + + cmbHeaderType.Text = vmessItem.headerType; + txtRequestHost.Text = vmessItem.requestHost; + txtPath.Text = vmessItem.path; + cmbStreamSecurity.Text = vmessItem.streamSecurity; + cmbAllowInsecure.Text = vmessItem.allowInsecure; + } + + + /// + /// 清除设置 + /// + private void ClearServer() + { + txtAddress.Text = ""; + txtPort.Text = ""; + txtId.Text = ""; + cmbSecurity.Text = Global.DefaultSecurity; + cmbNetwork.Text = Global.DefaultNetwork; + txtRemarks.Text = ""; + + cmbHeaderType.Text = Global.None; + txtRequestHost.Text = ""; + cmbStreamSecurity.Text = ""; + cmbAllowInsecure.Text = ""; + txtPath.Text = ""; + } + + + private void cmbNetwork_SelectedIndexChanged(object sender, EventArgs e) + { + SetHeaderType(); + } + + /// + /// 设置伪装选项 + /// + private void SetHeaderType() + { + cmbHeaderType.Items.Clear(); + + string network = cmbNetwork.Text; + if (Utils.IsNullOrEmpty(network)) + { + cmbHeaderType.Items.Add(Global.None); + return; + } + + cmbHeaderType.Items.Add(Global.None); + if (network.Equals(Global.DefaultNetwork)) + { + cmbHeaderType.Items.Add(Global.TcpHeaderHttp); + } + else if (network.Equals("kcp") || network.Equals("quic")) + { + cmbHeaderType.Items.Add("srtp"); + cmbHeaderType.Items.Add("utp"); + cmbHeaderType.Items.Add("wechat-video"); + cmbHeaderType.Items.Add("dtls"); + cmbHeaderType.Items.Add("wireguard"); + } + else + { + } + cmbHeaderType.Text = Global.None; + } + + private void btnOK_Click(object sender, EventArgs e) + { + string address = txtAddress.Text; + string port = txtPort.Text; + string id = txtId.Text; + string security = cmbSecurity.Text; + string network = cmbNetwork.Text; + string remarks = txtRemarks.Text; + + string headerType = cmbHeaderType.Text; + string requestHost = txtRequestHost.Text; + string path = txtPath.Text; + string streamSecurity = cmbStreamSecurity.Text; + string allowInsecure = cmbAllowInsecure.Text; + + if (Utils.IsNullOrEmpty(address)) + { + UI.Show(UIRes.I18N("FillServerAddress")); + return; + } + if (Utils.IsNullOrEmpty(port) || !Utils.IsNumberic(port)) + { + UI.Show(UIRes.I18N("FillCorrectServerPort")); + return; + } + if (Utils.IsNullOrEmpty(id)) + { + UI.Show(UIRes.I18N("FillUUID")); + return; + } + + + vmessItem.address = address; + vmessItem.port = Utils.ToInt(port); + vmessItem.id = id; + vmessItem.security = security; + vmessItem.network = network; + vmessItem.remarks = remarks; + + vmessItem.headerType = headerType; + vmessItem.requestHost = requestHost.Replace(" ", ""); + vmessItem.path = path.Replace(" ", ""); + vmessItem.streamSecurity = streamSecurity; + vmessItem.allowInsecure = allowInsecure; + + if (ConfigHandler.AddServer(ref config, vmessItem, EditIndex) == 0) + { + this.DialogResult = DialogResult.OK; + } + else + { + UI.ShowWarning(UIRes.I18N("OperationFailed")); + } + } + + private void btnGUID_Click(object sender, EventArgs e) + { + txtId.Text = Utils.GetGUID(); + } + + private void btnClose_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.Cancel; + } + + + #region 导入客户端/服务端配置 + + /// + /// 导入客户端 + /// + /// + /// + private void MenuItemImportClient_Click(object sender, EventArgs e) + { + MenuItemImport(1); + } + + /// + /// 导入服务端 + /// + /// + /// + private void MenuItemImportServer_Click(object sender, EventArgs e) + { + MenuItemImport(2); + } + + private void MenuItemImport(int type) + { + ClearServer(); + + OpenFileDialog fileDialog = new OpenFileDialog + { + Multiselect = false, + Filter = "Config|*.json|All|*.*" + }; + if (fileDialog.ShowDialog() != DialogResult.OK) + { + return; + } + string fileName = fileDialog.FileName; + if (Utils.IsNullOrEmpty(fileName)) + { + return; + } + string msg; + VmessItem vmessItem; + if (type.Equals(1)) + { + vmessItem = V2rayConfigHandler.ImportFromClientConfig(fileName, out msg); + } + else + { + vmessItem = V2rayConfigHandler.ImportFromServerConfig(fileName, out msg); + } + if (vmessItem == null) + { + UI.ShowWarning(msg); + return; + } + + txtAddress.Text = vmessItem.address; + txtPort.Text = vmessItem.port.ToString(); + txtId.Text = vmessItem.id; + txtRemarks.Text = vmessItem.remarks; + cmbNetwork.Text = vmessItem.network; + cmbHeaderType.Text = vmessItem.headerType; + txtRequestHost.Text = vmessItem.requestHost; + txtPath.Text = vmessItem.path; + cmbStreamSecurity.Text = vmessItem.streamSecurity; + } + + /// + /// 从剪贴板导入URL + /// + /// + /// + private void MenuItemImportClipboard_Click(object sender, EventArgs e) + { + ClearServer(); + + VmessItem vmessItem = V2rayConfigHandler.ImportFromClipboardConfig(Utils.GetClipboardData(), out string msg); + if (vmessItem == null) + { + UI.ShowWarning(msg); + return; + } + + txtAddress.Text = vmessItem.address; + txtPort.Text = vmessItem.port.ToString(); + txtId.Text = vmessItem.id; + txtRemarks.Text = vmessItem.remarks; + cmbNetwork.Text = vmessItem.network; + cmbHeaderType.Text = vmessItem.headerType; + txtRequestHost.Text = vmessItem.requestHost; + txtPath.Text = vmessItem.path; + cmbStreamSecurity.Text = vmessItem.streamSecurity; + } + #endregion + + private void cmbStreamSecurity_SelectedIndexChanged(object sender, EventArgs e) + { + string security = cmbStreamSecurity.Text; + if (Utils.IsNullOrEmpty(security)) + { + panTlsMore.Hide(); + } + else + { + panTlsMore.Show(); + } + } + } +} diff --git a/v2rayN/v2rayN/Forms/AddServer5Form.resx b/v2rayN/v2rayN/Forms/AddServer5Form.resx new file mode 100644 index 00000000..57db8697 --- /dev/null +++ b/v2rayN/v2rayN/Forms/AddServer5Form.resx @@ -0,0 +1,1311 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 4 + + + + 113, 12 + + + 285, 179 + + + 124, 62 + + + 6 + + + Path + + + 83, 12 + + + Transport protocol(network) + + + 7 + + + groupBox1 + + + 1 + + + label15 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + cmbStreamSecurity + + + 3)h2 host Separated by commas (,) + + + none + + + + Top + + + + 3 + + + 17 + + + false + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 19 + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 6 + + + 21 + + + 411, 83 + + + Address + + + groupBox1 + + + 75, 23 + + + 59, 12 + + + 1)ws path + + + 19 + + + True + + + 26 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + txtId + + + True + + + 729, 499 + + + + + + 12, 89 + + + groupBox2 + + + tls + + + True + + + 299, 12 + + + cmbAllowInsecure + + + 127, 85 + + + 16 + + + 12, 179 + + + &Cancel + + + label10 + + + 723, 281 + + + 5 + + + label21 + + + 359, 21 + + + System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Edit or add a [VLESS] server + + + 143, 12 + + + groupBox2 + + + 17 + + + toolStripSeparator1 + + + NoControl + + + 21 + + + label11 + + + 5 + + + 158, 90 + + + 2 + + + 29, 12 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 237, 22 + + + 12 + + + 3)QUIC key + + + 127, 56 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + txtPort + + + 2 + + + groupBox2 + + + Bottom + + + True + + + 127, 175 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 29, 12 + + + True + + + ws + + + 11 + + + 9, 66 + + + 13 + + + Import server configuration + + + 6, 12 + + + 1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 15 + + + label17 + + + panel1 + + + groupBox2 + + + 5 + + + 215, 12 + + + 0, 0 + + + 396, 17 + + + 338, 35 + + + 12, 60 + + + MenuItemImportClient + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + &Generate + + + Encryption method (encryption) + + + txtRemarks + + + v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + + + groupBox2 + + + true + + + panTlsMore + + + True + + + cmbNetwork + + + 284, 234 + + + 95, 12 + + + 350, 32 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + True + + + 24 + + + 127, 27 + + + label12 + + + 729, 594 + + + True + + + 282, 66 + + + 12 + + + *tcp or kcp or QUIC camouflage type, default none + + + 25 + + + label23 + + + groupBox1 + + + 143, 20 + + + $this + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 33 + + + 6 + + + 0 + + + 2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + label8 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + label13 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + + + 35 + + + 13 + + + 9 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 11 + + + True + + + 469, 85 + + + label9 + + + label20 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + label18 + + + MenuItem1 + + + label1 + + + 13 + + + 34 + + + 22 + + + 143, 20 + + + groupBox2 + + + groupBox2 + + + btnClose + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + label19 + + + 143, 21 + + + 95, 12 + + + groupBox1 + + + 0, 35 + + + panTlsMore + + + 729, 60 + + + allowInsecure + + + True + + + True + + + 469, 115 + + + quic + + + groupBox2 + + + h2 + + + kcp + + + 7 + + + 143, 21 + + + 526, 162 + + + 18 + + + 12, 147 + + + 18 + + + groupBox1 + + + label2 + + + groupBox2 + + + 234, 6 + + + groupBox2 + + + 119, 12 + + + 278, 21 + + + True + + + True + + + Bottom + + + 91, 20 + + + 53, 12 + + + 27 + + + groupBox2 + + + groupBox2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Port + + + groupBox2 + + + Fill + + + 10 + + + groupBox2 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + + + 75, 23 + + + 4 + + + True + + + 11 + + + groupBox1 + + + 8 + + + *Recommended (none) + + + 4 + + + groupBox1 + + + panel2 + + + 143, 20 + + + 23 + + + 1 + + + 6 + + + 10 + + + groupBox2 + + + 14 + + + True + + + 3, 215 + + + Import configuration file + + + wechat-video + + + 9, 32 + + + btnOK + + + 729, 10 + + + 107, 7 + + + 470, 131 + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 22 + + + 300, 53 + + + 12, 31 + + + 14 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + dtls + + + 47, 12 + + + MenuItemImportServer + + + groupBox2 + + + panel2 + + + 0, 534 + + + groupBox1 + + + AddServer5Form + + + wireguard + + + groupBox1 + + + Server + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 303, 17 + + + 2)ws host + + + txtAddress + + + True + + + 2)h2 path + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 167, 12 + + + 8 + + + Transport + + + groupBox2 + + + * Fill in manually + + + 9, 157 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 396, 54 + + + True + + + 12, 11 + + + 89, 12 + + + 29 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + + + True + + + txtPath + + + 162, 21 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + txtRequestHost + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Alias (remarks) + + + 124, 157 + + + label7 + + + 4 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + &OK + + + 7 + + + 3 + + + http + + + 526, 179 + + + 9 + + + groupBox2 + + + menuServer + + + 20 + + + TLS + + + 1 + + + 3 + + + UUID(id) + + + $this + + + MenuItemImportClipboard + + + $this + + + 3 + + + groupBox1 + + + 237, 22 + + + 143, 20 + + + panTlsMore + + + 8 + + + Camouflage domain(host) + + + 0 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 113, 12 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 192, 28 + + + 203, 12 + + + utp + + + 30 + + + 12 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 23 + + + 8 + + + 2 + + + 9, 94 + + + label3 + + + srtp + + + 5 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Import URL from clipboard + + + 469, 100 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 185, 12 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + + + True + + + *Default value tcp + + + 31 + + + 124, 242 + + + 9, 246 + + + 353, 147 + + + none + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + label5 + + + 3 + + + label16 + + + groupBox1 + + + 237, 22 + + + 16 + + + 1 + + + 28 + + + + + + groupBox2 + + + Import client configuration + + + 15 + + + 4)QUIC securty + + + 0, 25 + + + cmbSecurity + + + tcp + + + groupBox2 + + + btnGUID + + + 75, 23 + + + 23, 12 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + Camouflage type + + + 0 + + + groupBox2 + + + NoControl + + + 1)http host Separated by commas (,) + + + label24 + + + 59, 12 + + + panel2 + + + 65, 12 + + + 195, 143 + + + $this + + + True + + + label6 + + + 59, 12 + + + 10 + + + 729, 25 + + + cmbHeaderType + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 526, 197 + + + label14 + + + True + + + zh-Hans + + + 17, 17 + + \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx b/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx new file mode 100644 index 00000000..5df0dd10 --- /dev/null +++ b/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 取消(&C) + + + 服务器 + + + 生成(&G) + + + *手填,方便识别管理 + + + 底层传输方式(transport) + + + + 95, 12 + + + 3)QUIC 加密密钥 + + + 95, 12 + + + 4)QUIC 加密方式 + + + 167, 12 + + + 跳过证书验证(allowInsecure) + + + 223, 7 + + + 143, 12 + + + *默认tcp,选错会无法连接 + + + 149, 12 + + + 3)h2 host中间逗号(,)隔开 + + + 127, 32 + + + 211, 20 + + + 107, 12 + + + 传输协议(network) + + + 65, 12 + + + 路径(path) + + + 161, 12 + + + 1)http host中间逗号(,)隔开 + + + 77, 12 + + + 底层传输安全 + + + 197, 12 + + + *tcp或kcp或QUIC伪装类型,默认none + + + 124, 94 + + + 334, 51 + + + 89, 12 + + + 伪装类型(type) + + + 89, 12 + + + 伪装域名(host) + + + 71, 12 + + + *非空(none) + + + 127, 143 + + + 211, 20 + + + 83, 12 + + + 别名(remarks) + + + 113, 12 + + + 加密方式(security) + + + 65, 12 + + + 用户ID(id) + + + 65, 12 + + + 端口(port) + + + 83, 12 + + + 地址(address) + + + 确定(&O) + + + 171, 22 + + + 导入客户端配置 + + + 171, 22 + + + 导入服务端配置 + + + 168, 6 + + + 171, 22 + + + 从剪贴板导入URL + + + + False + + + 92, 21 + + + 导入配置文件 + + + 编辑或添加[VLESS]服务器 + + \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/MainForm.Designer.cs b/v2rayN/v2rayN/Forms/MainForm.Designer.cs index 7ec70cfe..917e788e 100644 --- a/v2rayN/v2rayN/Forms/MainForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/MainForm.Designer.cs @@ -124,6 +124,7 @@ this.tsbPromotion = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator(); this.tsbClose = new System.Windows.Forms.ToolStripButton(); + this.menuAddVlessServer = new System.Windows.Forms.ToolStripMenuItem(); ((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit(); this.scMain.Panel1.SuspendLayout(); this.scMain.Panel2.SuspendLayout(); @@ -176,6 +177,7 @@ this.cmsLv.ImageScalingSize = new System.Drawing.Size(20, 20); this.cmsLv.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuAddVmessServer, + this.menuAddVlessServer, this.menuAddShadowsocksServer, this.menuAddSocksServer, this.menuAddCustomServer, @@ -204,7 +206,6 @@ this.menuExport2ShareUrl, this.menuExport2SubContent}); this.cmsLv.Name = "cmsLv"; - this.cmsLv.OwnerItem = this.tsbServer; resources.ApplyResources(this.cmsLv, "cmsLv"); // // menuAddVmessServer @@ -373,7 +374,6 @@ // // tsbServer // - this.tsbServer.DropDown = this.cmsLv; this.tsbServer.Image = global::v2rayN.Properties.Resources.server; resources.ApplyResources(this.tsbServer, "tsbServer"); this.tsbServer.Name = "tsbServer"; @@ -806,6 +806,12 @@ this.tsbClose.Name = "tsbClose"; this.tsbClose.Click += new System.EventHandler(this.tsbClose_Click); // + // menuAddVlessServer + // + this.menuAddVlessServer.Name = "menuAddVlessServer"; + resources.ApplyResources(this.menuAddVlessServer, "menuAddVlessServer"); + this.menuAddVlessServer.Click += new System.EventHandler(this.menuAddVlessServer_Click); + // // MainForm // resources.ApplyResources(this, "$this"); @@ -936,6 +942,7 @@ private System.Windows.Forms.ToolStripMenuItem tsbTestMe; private System.Windows.Forms.ToolStripButton tsbReload; private System.Windows.Forms.ToolStripButton tsbQRCodeSwitch; + private System.Windows.Forms.ToolStripMenuItem menuAddVlessServer; } } diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index 3ca10813..be5fe009 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -404,7 +404,7 @@ namespace v2rayN.Forms { return; } - + } #endregion @@ -513,6 +513,19 @@ namespace v2rayN.Forms LoadV2ray(); } } + else if (config.vmess[index].configType == (int)EConfigType.Vless) + { + AddServer5Form fm = new AddServer5Form + { + EditIndex = index + }; + if (fm.ShowDialog() == DialogResult.OK) + { + //刷新 + RefreshServers(); + LoadV2ray(); + } + } else { AddServer2Form fm2 = new AddServer2Form @@ -600,6 +613,20 @@ namespace v2rayN.Forms } } + private void menuAddVlessServer_Click(object sender, EventArgs e) + { + var fm = new AddServer5Form + { + EditIndex = -1 + }; + if (fm.ShowDialog() == DialogResult.OK) + { + //刷新 + RefreshServers(); + LoadV2ray(); + } + } + private void menuRemoveServer_Click(object sender, EventArgs e) { @@ -1604,5 +1631,6 @@ namespace v2rayN.Forms #endregion + } } diff --git a/v2rayN/v2rayN/Forms/MainForm.resx b/v2rayN/v2rayN/Forms/MainForm.resx index 82105967..cca0d7a7 100644 --- a/v2rayN/v2rayN/Forms/MainForm.resx +++ b/v2rayN/v2rayN/Forms/MainForm.resx @@ -134,6 +134,12 @@ Add [VMess] server + + 355, 22 + + + Add [VLESS] server + 355, 22 @@ -284,20 +290,8 @@ Export subscription (base64) share to clipboard - - Magenta - - - 64, 53 - - - Servers - - - ImageAboveText - - 356, 556 + 356, 600 cmsLv @@ -419,6 +413,18 @@ 0 + + Magenta + + + 64, 53 + + + Servers + + + ImageAboveText + 17, 17 @@ -753,13 +759,13 @@ 6, 56 - 125, 22 + 180, 22 Settings - 125, 22 + 180, 22 Updates @@ -1490,6 +1496,12 @@ System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + menuAddVlessServer + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + MainForm diff --git a/v2rayN/v2rayN/Mode/EConfigType.cs b/v2rayN/v2rayN/Mode/EConfigType.cs index 733c8556..2d7ab219 100644 --- a/v2rayN/v2rayN/Mode/EConfigType.cs +++ b/v2rayN/v2rayN/Mode/EConfigType.cs @@ -6,6 +6,7 @@ namespace v2rayN.Mode Vmess = 1, Custom = 2, Shadowsocks = 3, - Socks = 4 + Socks = 4, + Vless = 5 } } diff --git a/v2rayN/v2rayN/Mode/V2rayConfig.cs b/v2rayN/v2rayN/Mode/V2rayConfig.cs index 5d4ab5df..be1ad4a0 100644 --- a/v2rayN/v2rayN/Mode/V2rayConfig.cs +++ b/v2rayN/v2rayN/Mode/V2rayConfig.cs @@ -132,6 +132,13 @@ namespace v2rayN.Mode /// /// public List clients { get; set; } + + + /// + /// VLESS + /// + public string decryption { get; set; } + } public class UsersItem @@ -152,6 +159,11 @@ namespace v2rayN.Mode /// /// public string security { get; set; } + + /// + /// VLESS + /// + public string encryption { get; set; } } public class Sniffing { diff --git a/v2rayN/v2rayN/v2rayN.csproj b/v2rayN/v2rayN/v2rayN.csproj index 308d38cd..8a004c44 100644 --- a/v2rayN/v2rayN/v2rayN.csproj +++ b/v2rayN/v2rayN/v2rayN.csproj @@ -107,6 +107,12 @@ Component + + Form + + + AddServer5Form.cs + Form @@ -231,6 +237,14 @@ AddServer3Form.cs Designer + + AddServer5Form.cs + Designer + + + AddServer5Form.cs + Designer + AddServerForm.cs Designer From 45738a716075850b25e9a350c17230f40dcd1846 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Sat, 8 Aug 2020 12:43:34 +0800 Subject: [PATCH 13/17] up vless 2 --- v2rayN/v2rayN/Forms/AddServer5Form.cs | 28 +- v2rayN/v2rayN/Forms/AddServer5Form.resx | 108 +- .../v2rayN/Forms/AddServer5Form.zh-Hans.resx | 112 +- v2rayN/v2rayN/Forms/AddServerForm.Designer.cs | 32 +- v2rayN/v2rayN/Forms/AddServerForm.cs | 24 +- v2rayN/v2rayN/Forms/AddServerForm.resx | 2262 ++++++++-------- .../v2rayN/Forms/AddServerForm.zh-Hans.resx | 2 +- v2rayN/v2rayN/Forms/MainForm.Designer.cs | 192 +- v2rayN/v2rayN/Forms/MainForm.resx | 2405 +++++++++-------- v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx | 177 +- v2rayN/v2rayN/Global.cs | 20 + v2rayN/v2rayN/Handler/ConfigHandler.cs | 51 + v2rayN/v2rayN/Handler/V2rayConfigHandler.cs | 52 +- v2rayN/v2rayN/Mode/Config.cs | 4 + v2rayN/v2rayN/Properties/AssemblyInfo.cs | 2 +- 15 files changed, 2799 insertions(+), 2672 deletions(-) diff --git a/v2rayN/v2rayN/Forms/AddServer5Form.cs b/v2rayN/v2rayN/Forms/AddServer5Form.cs index 568ebd63..b11974e5 100644 --- a/v2rayN/v2rayN/Forms/AddServer5Form.cs +++ b/v2rayN/v2rayN/Forms/AddServer5Form.cs @@ -57,7 +57,7 @@ namespace v2rayN.Forms txtAddress.Text = ""; txtPort.Text = ""; txtId.Text = ""; - cmbSecurity.Text = Global.DefaultSecurity; + cmbSecurity.Text = Global.None; cmbNetwork.Text = Global.DefaultNetwork; txtRemarks.Text = ""; @@ -152,7 +152,7 @@ namespace v2rayN.Forms vmessItem.streamSecurity = streamSecurity; vmessItem.allowInsecure = allowInsecure; - if (ConfigHandler.AddServer(ref config, vmessItem, EditIndex) == 0) + if (ConfigHandler.AddVlessServer(ref config, vmessItem, EditIndex) == 0) { this.DialogResult = DialogResult.OK; } @@ -172,6 +172,18 @@ namespace v2rayN.Forms this.DialogResult = DialogResult.Cancel; } + private void cmbStreamSecurity_SelectedIndexChanged(object sender, EventArgs e) + { + string security = cmbStreamSecurity.Text; + if (Utils.IsNullOrEmpty(security)) + { + panTlsMore.Hide(); + } + else + { + panTlsMore.Show(); + } + } #region 导入客户端/服务端配置 @@ -268,17 +280,5 @@ namespace v2rayN.Forms } #endregion - private void cmbStreamSecurity_SelectedIndexChanged(object sender, EventArgs e) - { - string security = cmbStreamSecurity.Text; - if (Utils.IsNullOrEmpty(security)) - { - panTlsMore.Hide(); - } - else - { - panTlsMore.Show(); - } - } } } diff --git a/v2rayN/v2rayN/Forms/AddServer5Form.resx b/v2rayN/v2rayN/Forms/AddServer5Form.resx index 57db8697..154a4a9c 100644 --- a/v2rayN/v2rayN/Forms/AddServer5Form.resx +++ b/v2rayN/v2rayN/Forms/AddServer5Form.resx @@ -306,9 +306,6 @@ groupBox2 - - 17 - toolStripSeparator1 @@ -393,8 +390,8 @@ ws - - 11 + + 729, 60 9, 66 @@ -423,6 +420,9 @@ panel1 + + label14 + groupBox2 @@ -483,6 +483,9 @@ 95, 12 + + NoControl + 350, 32 @@ -528,8 +531,8 @@ label23 - - groupBox1 + + allowInsecure 143, 20 @@ -552,8 +555,8 @@ 0 - - 2 + + 47, 12 System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -615,8 +618,8 @@ 13 - - 34 + + label7 22 @@ -654,11 +657,8 @@ panTlsMore - - 729, 60 - - - allowInsecure + + 34 True @@ -717,9 +717,6 @@ 119, 12 - - 278, 21 - True @@ -732,20 +729,14 @@ 91, 20 - - 53, 12 - 27 - - groupBox2 - groupBox2 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17 Port @@ -795,6 +786,9 @@ *Recommended (none) + + 195, 143 + 4 @@ -813,9 +807,6 @@ 1 - - 6 - 10 @@ -876,9 +867,6 @@ dtls - - 47, 12 - MenuItemImportServer @@ -888,6 +876,9 @@ panel2 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + 0, 534 @@ -915,8 +906,8 @@ 2)ws host - - txtAddress + + 6 True @@ -957,9 +948,6 @@ True - - 12, 11 - 89, 12 @@ -996,9 +984,6 @@ 124, 157 - - label7 - 4 @@ -1026,6 +1011,9 @@ groupBox2 + + Camouflage type + menuServer @@ -1071,8 +1059,8 @@ 8 - - Camouflage domain(host) + + 15 0 @@ -1083,6 +1071,9 @@ 113, 12 + + 11 + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -1095,6 +1086,9 @@ utp + + txtAddress + 30 @@ -1110,6 +1104,9 @@ 8 + + groupBox1 + 2 @@ -1137,6 +1134,9 @@ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Camouflage domain(host) + 185, 12 @@ -1206,9 +1206,6 @@ Import client configuration - - 15 - 4)QUIC securty @@ -1239,8 +1236,8 @@ groupBox1 - - Camouflage type + + 12, 11 0 @@ -1248,8 +1245,8 @@ groupBox2 - - NoControl + + 278, 21 1)http host Separated by commas (,) @@ -1266,8 +1263,8 @@ 65, 12 - - 195, 143 + + groupBox2 $this @@ -1296,8 +1293,11 @@ 526, 197 - - label14 + + 2 + + + 53, 12 True diff --git a/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx b/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx index 5df0dd10..b5001a79 100644 --- a/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx @@ -120,9 +120,6 @@ 取消(&C) - - 服务器 - 生成(&G) @@ -133,6 +130,51 @@ 底层传输方式(transport) + + 71, 12 + + + *非空(none) + + + 143, 143 + + + 195, 20 + + + 83, 12 + + + 别名(remarks) + + + 125, 12 + + + 加密方式(decryption) + + + 65, 12 + + + 用户ID(id) + + + 65, 12 + + + 端口(port) + + + 83, 12 + + + 地址(address) + + + 服务器 + 95, 12 @@ -167,7 +209,7 @@ 3)h2 host中间逗号(,)隔开 - 127, 32 + 124, 32 211, 20 @@ -220,51 +262,19 @@ 伪装域名(host) - - 71, 12 - - - *非空(none) - - - 127, 143 - - - 211, 20 - - - 83, 12 - - - 别名(remarks) - - - 113, 12 - - - 加密方式(security) - - - 65, 12 - - - 用户ID(id) - - - 65, 12 - - - 端口(port) - - - 83, 12 - - - 地址(address) - 确定(&O) + + + False + + + 92, 21 + + + 导入配置文件 + 171, 22 @@ -286,16 +296,6 @@ 从剪贴板导入URL - - - False - - - 92, 21 - - - 导入配置文件 - 编辑或添加[VLESS]服务器 diff --git a/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs b/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs index a96b32ab..bdb027f6 100644 --- a/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/AddServerForm.Designer.cs @@ -87,14 +87,15 @@ // // btnClose // - this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; resources.ApplyResources(this.btnClose, "btnClose"); + this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.btnClose.Name = "btnClose"; this.btnClose.UseVisualStyleBackColor = true; this.btnClose.Click += new System.EventHandler(this.btnClose_Click); // // groupBox1 // + resources.ApplyResources(this.groupBox1, "groupBox1"); this.groupBox1.Controls.Add(this.btnGUID); this.groupBox1.Controls.Add(this.label13); this.groupBox1.Controls.Add(this.groupBox2); @@ -111,7 +112,6 @@ this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.txtAddress); this.groupBox1.Controls.Add(this.label1); - resources.ApplyResources(this.groupBox1, "groupBox1"); this.groupBox1.Name = "groupBox1"; this.groupBox1.TabStop = false; // @@ -129,6 +129,7 @@ // // groupBox2 // + resources.ApplyResources(this.groupBox2, "groupBox2"); this.groupBox2.Controls.Add(this.label24); this.groupBox2.Controls.Add(this.label23); this.groupBox2.Controls.Add(this.panTlsMore); @@ -149,7 +150,6 @@ this.groupBox2.Controls.Add(this.label11); this.groupBox2.Controls.Add(this.label10); this.groupBox2.Controls.Add(this.cmbHeaderType); - resources.ApplyResources(this.groupBox2, "groupBox2"); this.groupBox2.Name = "groupBox2"; this.groupBox2.TabStop = false; // @@ -165,9 +165,9 @@ // // panTlsMore // + resources.ApplyResources(this.panTlsMore, "panTlsMore"); this.panTlsMore.Controls.Add(this.label21); this.panTlsMore.Controls.Add(this.cmbAllowInsecure); - resources.ApplyResources(this.panTlsMore, "panTlsMore"); this.panTlsMore.Name = "panTlsMore"; // // label21 @@ -177,13 +177,13 @@ // // cmbAllowInsecure // + resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure"); this.cmbAllowInsecure.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbAllowInsecure.FormattingEnabled = true; this.cmbAllowInsecure.Items.AddRange(new object[] { resources.GetString("cmbAllowInsecure.Items"), resources.GetString("cmbAllowInsecure.Items1"), resources.GetString("cmbAllowInsecure.Items2")}); - resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure"); this.cmbAllowInsecure.Name = "cmbAllowInsecure"; // // label9 @@ -203,6 +203,7 @@ // // cmbNetwork // + resources.ApplyResources(this.cmbNetwork, "cmbNetwork"); this.cmbNetwork.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbNetwork.FormattingEnabled = true; this.cmbNetwork.Items.AddRange(new object[] { @@ -211,7 +212,6 @@ resources.GetString("cmbNetwork.Items2"), resources.GetString("cmbNetwork.Items3"), resources.GetString("cmbNetwork.Items4")}); - resources.ApplyResources(this.cmbNetwork, "cmbNetwork"); this.cmbNetwork.Name = "cmbNetwork"; this.cmbNetwork.SelectedIndexChanged += new System.EventHandler(this.cmbNetwork_SelectedIndexChanged); // @@ -252,12 +252,12 @@ // // cmbStreamSecurity // + resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity"); this.cmbStreamSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbStreamSecurity.FormattingEnabled = true; this.cmbStreamSecurity.Items.AddRange(new object[] { resources.GetString("cmbStreamSecurity.Items"), resources.GetString("cmbStreamSecurity.Items1")}); - resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity"); this.cmbStreamSecurity.Name = "cmbStreamSecurity"; this.cmbStreamSecurity.SelectedIndexChanged += new System.EventHandler(this.cmbStreamSecurity_SelectedIndexChanged); // @@ -283,6 +283,7 @@ // // cmbHeaderType // + resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType"); this.cmbHeaderType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbHeaderType.FormattingEnabled = true; this.cmbHeaderType.Items.AddRange(new object[] { @@ -293,7 +294,6 @@ resources.GetString("cmbHeaderType.Items4"), resources.GetString("cmbHeaderType.Items5"), resources.GetString("cmbHeaderType.Items6")}); - resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType"); this.cmbHeaderType.Name = "cmbHeaderType"; // // label8 @@ -303,6 +303,7 @@ // // cmbSecurity // + resources.ApplyResources(this.cmbSecurity, "cmbSecurity"); this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbSecurity.FormattingEnabled = true; this.cmbSecurity.Items.AddRange(new object[] { @@ -310,7 +311,6 @@ resources.GetString("cmbSecurity.Items1"), resources.GetString("cmbSecurity.Items2"), resources.GetString("cmbSecurity.Items3")}); - resources.ApplyResources(this.cmbSecurity, "cmbSecurity"); this.cmbSecurity.Name = "cmbSecurity"; // // txtRemarks @@ -370,9 +370,9 @@ // // panel2 // + resources.ApplyResources(this.panel2, "panel2"); this.panel2.Controls.Add(this.btnClose); this.panel2.Controls.Add(this.btnOK); - resources.ApplyResources(this.panel2, "panel2"); this.panel2.Name = "panel2"; // // btnOK @@ -389,42 +389,42 @@ // // menuServer // + resources.ApplyResources(this.menuServer, "menuServer"); this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.MenuItem1}); - resources.ApplyResources(this.menuServer, "menuServer"); this.menuServer.Name = "menuServer"; // // MenuItem1 // + resources.ApplyResources(this.MenuItem1, "MenuItem1"); this.MenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.MenuItemImportClient, this.MenuItemImportServer, this.toolStripSeparator1, this.MenuItemImportClipboard}); this.MenuItem1.Name = "MenuItem1"; - resources.ApplyResources(this.MenuItem1, "MenuItem1"); // // MenuItemImportClient // - this.MenuItemImportClient.Name = "MenuItemImportClient"; resources.ApplyResources(this.MenuItemImportClient, "MenuItemImportClient"); + this.MenuItemImportClient.Name = "MenuItemImportClient"; this.MenuItemImportClient.Click += new System.EventHandler(this.MenuItemImportClient_Click); // // MenuItemImportServer // - this.MenuItemImportServer.Name = "MenuItemImportServer"; resources.ApplyResources(this.MenuItemImportServer, "MenuItemImportServer"); + this.MenuItemImportServer.Name = "MenuItemImportServer"; this.MenuItemImportServer.Click += new System.EventHandler(this.MenuItemImportServer_Click); // // toolStripSeparator1 // - this.toolStripSeparator1.Name = "toolStripSeparator1"; resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1"); + this.toolStripSeparator1.Name = "toolStripSeparator1"; // // MenuItemImportClipboard // - this.MenuItemImportClipboard.Name = "MenuItemImportClipboard"; resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard"); + this.MenuItemImportClipboard.Name = "MenuItemImportClipboard"; this.MenuItemImportClipboard.Click += new System.EventHandler(this.MenuItemImportClipboard_Click); // // AddServerForm diff --git a/v2rayN/v2rayN/Forms/AddServerForm.cs b/v2rayN/v2rayN/Forms/AddServerForm.cs index e2747b6c..a6a751e4 100644 --- a/v2rayN/v2rayN/Forms/AddServerForm.cs +++ b/v2rayN/v2rayN/Forms/AddServerForm.cs @@ -180,6 +180,18 @@ namespace v2rayN.Forms this.DialogResult = DialogResult.Cancel; } + private void cmbStreamSecurity_SelectedIndexChanged(object sender, EventArgs e) + { + string security = cmbStreamSecurity.Text; + if (Utils.IsNullOrEmpty(security)) + { + panTlsMore.Hide(); + } + else + { + panTlsMore.Show(); + } + } #region 导入客户端/服务端配置 @@ -278,17 +290,5 @@ namespace v2rayN.Forms } #endregion - private void cmbStreamSecurity_SelectedIndexChanged(object sender, EventArgs e) - { - string security = cmbStreamSecurity.Text; - if (Utils.IsNullOrEmpty(security)) - { - panTlsMore.Hide(); - } - else - { - panTlsMore.Show(); - } - } } } diff --git a/v2rayN/v2rayN/Forms/AddServerForm.resx b/v2rayN/v2rayN/Forms/AddServerForm.resx index 832dd782..b4cd8bfa 100644 --- a/v2rayN/v2rayN/Forms/AddServerForm.resx +++ b/v2rayN/v2rayN/Forms/AddServerForm.resx @@ -117,1249 +117,1249 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 396, 17 - - - 75, 23 - - - + 4 - - &Cancel + + + 113, 12 - - btnClose - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panel2 - - - 0 - - - 411, 83 - - - 75, 23 - - - 23 - - - &Generate - - - btnGUID - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 0 - - - True + + 9 285, 179 - - 113, 12 - - - 22 - - - * Fill in manually - - - label13 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 1 - - - True - - - - NoControl - - - 526, 197 - - - 65, 12 - - - 35 - - - 3)QUIC key - - - label24 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 0 - - - True - - - NoControl - - - 470, 131 - - - 89, 12 - - - 34 - - - 4)QUIC securty - - - label23 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 1 - - - True - - - 12, 11 - - - 83, 12 - - - 31 - - - allowInsecure - - - label21 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panTlsMore - - - 0 - - - - - - true - - - false - - - 107, 7 - - - 91, 20 - - - 30 - - - cmbAllowInsecure - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panTlsMore - - - 1 - - - 284, 234 - - - 338, 35 - - - 33 - - - panTlsMore - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 2 - - - True - - - 350, 32 - - - 113, 12 - - - 15 - - - *Default value tcp - - - label9 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 3 - - - True - - - 469, 115 - - - 203, 12 - - - 29 - - - 3)h2 host Separated by commas (,) - - - label20 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 4 - - - 124, 157 - - - True - - - 396, 54 - - - 28 - - - txtPath - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 124, 62 groupBox2 - - 5 - - - tcp - - - kcp - - - ws - - - h2 - - - quic - - - 192, 28 - - - 143, 20 - - - 12 - - - cmbNetwork - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - + 6 - - True - - - 9, 32 - - - 167, 12 - - - 13 - - - Transport protocol(network) - - - label7 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 7 - - - True - - - 9, 157 - - - 29, 12 - - - 27 - Path - - label19 + + 83, 12 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Transport protocol(network) - - groupBox2 + + 7 - - 8 + + panTlsMore - - True + + 1 - - 526, 179 - - - 59, 12 - - - 26 - - - 2)h2 path - - - label18 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 9 - - - True - - - 469, 100 - - - 59, 12 - - - 25 - - - 2)ws host - - - label17 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 10 - - - True - - - 526, 162 - - - 59, 12 - - - 24 - - - 1)ws path - - - label16 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 11 - - - True - - - 469, 85 - - - 215, 12 - - - 23 - - - 1)http host Separated by commas (,) - - - label14 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 12 - - - True - - - 9, 246 - - - 23, 12 - - - 22 - - - TLS + + 6, 12 label15 + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + cmbStreamSecurity + + + 3)h2 host Separated by commas (,) + + + + Top + + + + 3 + + + 17 + + + false + + + 19 + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 6 + + + 21 + + + 411, 83 + + + Address + + + groupBox1 + + + 59, 12 + + + 1)ws path + + + 19 + + + True + + + 26 + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + txtId + + + True + + + 729, 499 + + + + + + 12, 89 + + + groupBox2 + + + tls + + + True + + + 299, 12 + + + panTlsMore + + + 10 + + + aes-128-gcm + + + groupBox1 + + + 127, 85 + + + 16 + + + 12, 179 + + + &Cancel + + + label10 + + + 723, 281 + + + 5 + + + label21 + + + System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 143, 12 + + + groupBox2 + + + toolStripSeparator1 + + + NoControl + + + 21 + + + label11 + + + 5 + + + 158, 90 + + + 2 + + + 29, 12 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 234, 6 + + + 237, 22 + + + 12 + + + TLS + + + 3)QUIC key + + + 127, 56 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + txtPort + + + 2 + + + groupBox2 + + + Bottom + + + True + + + 127, 175 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 29, 12 + + + ws + + + 13 + + + 9, 66 + + + 15 + + + Import server configuration + + + 173, 12 + + + 1 + + + 7 + + + 15 + + + label17 + + + panel1 + + + groupBox2 + + + 5 + + + 215, 12 + + + 0, 0 + + + 396, 17 + + + 338, 35 + + + 12, 60 + + + MenuItemImportClient + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + &Generate + + + Encryption method (security) + + + none + + + txtRemarks + + + 47, 12 + + + v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + + + groupBox2 + + + true + + + panTlsMore + + + True + + + 127, 114 + + + 284, 234 + + + 95, 12 + + + 350, 32 + + + cmbNetwork + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 22 + + + groupBox1 + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + groupBox2 - - 13 + + 127, 27 - - + + label12 - - tls + + AlterId - - 124, 242 - - - 143, 20 - - - 21 - - - cmbStreamSecurity - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 14 - - + True 282, 66 - - 299, 12 + + 12 - - 20 + + 25 - - *tcp or kcp or QUIC camouflage type, default none + + label23 - - label12 + + allowInsecure + + + 143, 20 + + + 1 + + + $this + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 33 + + + 6 + + + none + + + 0 + + + 47, 12 + + + label8 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + label13 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + txtAlterId + + + 35 + + + 13 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 11 + + + True + + + 469, 85 + + + label9 + + + label20 + + + 124, 157 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + label18 + + + MenuItem1 + + + groupBox1 + + + 13 + + + 34 + + + 143, 20 + + + groupBox2 + + + True + + + btnClose System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - groupBox2 + + label19 - - 15 + + 143, 21 - - 158, 90 + + 95, 12 - + + groupBox1 + + + 0, 35 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 729, 60 + + True - - 300, 53 + + 469, 115 - - 16 + + $this - - txtRequestHost + + quic - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + groupBox2 + + + h2 + + + kcp + + + 7 + + + 143, 21 + + + 526, 162 + + + 18 + + + 12, 147 + + + 18 + + + groupBox1 + + + label2 + + + groupBox2 + + + 24 + + + groupBox2 + + + 119, 12 + + + 278, 21 + + + True + + + True + + + Bottom + + + 91, 20 + + + 53, 12 + + + 27 groupBox2 - - 16 + + 23 - - True - - - 9, 66 - - - 95, 12 - - - 19 - - - Camouflage type - - - label11 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + groupBox2 17 - - True + + Port - - 9, 94 - - - 143, 12 - - - 17 - - - Camouflage domain(host) - - - label10 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + groupBox2 - - 18 + + Fill - - none + + chacha20-poly1305 - - http + + 12 - - srtp - - - utp - - - wechat-video - - - dtls - - - wireguard - - - 124, 62 - - - 143, 20 - - - 18 - - - cmbHeaderType - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 19 - - - Bottom - - - 3, 215 - - - 723, 281 - - - 21 - - - Transport - - + groupBox2 System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - groupBox1 - - - 2 - - - True - - - 353, 147 - - - 119, 12 - - - 14 - - - *Recommended (auto) - - - label8 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 3 - - - aes-128-gcm - - - chacha20-poly1305 - - - auto - - - none - - - 195, 143 - - - 143, 20 - - - 6 - - - cmbSecurity - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 4 - - - 127, 175 - - - 143, 21 - - - 11 - - - txtRemarks - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - groupBox1 - - 5 - - - True - - - 12, 179 - - - 95, 12 - - - 10 - - - Alias (remarks) - - - label6 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 6 - - - True - - - 12, 147 - - - 173, 12 - - - 8 - - - Encryption method (security) - - - label5 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 7 - - - 127, 114 - - - 143, 21 - - - 7 - - - txtAlterId - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 8 - - - True - - - 12, 118 - - - 47, 12 - - - 6 - - - AlterId - - - label4 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 9 - - - 127, 85 - - - 278, 21 - - - 5 - - - txtId - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 10 - - - True - - - 12, 89 - - - 53, 12 - - - 4 - - - UUID(id) - - - label3 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 11 - - - 127, 56 - - - 143, 21 - - - 3 - - - txtPort - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 12 - - - True - - - 12, 60 - - - 29, 12 - - - 2 - - - Port - - - label2 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 13 - - - 127, 27 - - - 359, 21 - - - 1 - - - txtAddress - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 14 - - - True - - - 12, 31 - - - 47, 12 - - - 0 - - - Address - - - label1 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 15 - - - Fill - - - 0, 35 - - - 729, 499 - - - 3 - - - Server - - - groupBox1 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 0 - - - 303, 17 - - - 75, 23 - - - 5 - - - &OK - - - btnOK - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panel2 - - - 1 - - - Bottom - - - 0, 534 - - - 729, 60 - - - 7 - - - panel2 - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - $this + + 0 - - 1 + + 75, 23 - - Top + + 4 - - 0, 25 + + True - - 729, 10 + + 11 - - 6 - - - panel1 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 2 - - - 17, 17 - - - 237, 22 - - - Import client configuration - - - 237, 22 - - - Import server configuration - - - 234, 6 - - - 237, 22 - - - Import URL from clipboard - - - 162, 21 - - - Import configuration file - - - 0, 0 - - - 729, 25 + + groupBox1 8 - - menuServer + + *Recommended (auto) - - System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 4 - - $this + + groupBox1 - - 3 + + panel2 - + + 143, 20 + + + 23 + + + 1 + + + 10 + + + 14 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True - - - 6, 12 - - 729, 594 + + 3, 215 - - Edit or add a [VMess] server + + Import configuration file - - MenuItem1 + + wechat-video - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 23, 12 - - MenuItemImportClient + + 729, 10 - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 470, 131 + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 22 + + + 300, 53 + + + 1)http host Separated by commas (,) + + + 12, 31 + + + 14 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + dtls MenuItemImportServer - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + groupBox2 - - toolStripSeparator1 + + panel2 - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - MenuItemImportClipboard + + 0, 534 - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + groupBox1 AddServerForm - - v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + + wireguard + + groupBox1 + + + + + + 124, 242 + + + Server + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 303, 17 + + + 2)ws host + + + groupBox1 + + + 6 + + + True + + + 2)h2 path + + + True + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 167, 12 + + + 8 + + + Transport + + + groupBox2 + + + * Fill in manually + + + 9, 157 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 396, 54 + + + True + + + 12, 11 + + + 89, 12 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 143, 21 + + + 1 + + + 65, 12 + + + txtPath + + + 162, 21 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + txtRequestHost + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Alias (remarks) + + + groupBox2 + + + label7 + + + 4 + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + &OK + + + 7 + + + 3 + + + http + + + label1 + + + True + + + 526, 179 + + + 9 + + + groupBox2 + + + menuServer + + + 20 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 1 + + + 3 + + + UUID(id) + + + $this + + + MenuItemImportClipboard + + + $this + + + 3 + + + groupBox1 + + + cmbAllowInsecure + + + 237, 22 + + + 143, 20 + + + True + + + 8 + + + 0 + + + 15 + + + 0 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 113, 12 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 192, 28 + + + 203, 12 + + + utp + + + txtAddress + + + 30 + + + 14 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 469, 100 + + + 359, 21 + + + 29 + + + auto + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 2 + + + 9, 94 + + + label3 + + + srtp + + + 5 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Import URL from clipboard + + + True + + + 75, 23 + + + Camouflage domain(host) + + + *Default value tcp + + + 0 + + + 729, 594 + + + label4 + + + 31 + + + True + + + 9, 246 + + + 353, 147 + + + Edit or add a [VMess] server + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 8 + + + groupBox1 + + + label5 + + + 3 + + + label16 + + + btnOK + + + 237, 22 + + + 16 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 28 + + + 107, 7 + + + groupBox2 + + + Import client configuration + + + 12, 118 + + + 4)QUIC securty + + + 0, 25 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + cmbSecurity + + + tcp + + + 6 + + + btnGUID + + + 75, 23 + + + *tcp or kcp or QUIC camouflage type, default none + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + Camouflage type + + + 0 + + + groupBox2 + + + NoControl + + + 9, 32 + + + label24 + + + 59, 12 + + + panel2 + + + 11 + + + 195, 143 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + label6 + + + 59, 12 + + + 10 + + + 729, 25 + + + cmbHeaderType + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 526, 197 + + + 2 + + + label14 + + + True + + + 17, 17 + \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx index 62a6aac4..ac1c4911 100644 --- a/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/AddServerForm.zh-Hans.resx @@ -167,7 +167,7 @@ 3)h2 host中间逗号(,)隔开 - 127, 32 + 124, 32 211, 20 diff --git a/v2rayN/v2rayN/Forms/MainForm.Designer.cs b/v2rayN/v2rayN/Forms/MainForm.Designer.cs index 917e788e..d6d2b0fc 100644 --- a/v2rayN/v2rayN/Forms/MainForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/MainForm.Designer.cs @@ -34,6 +34,7 @@ this.lvServers = new v2rayN.Base.ListViewFlickerFree(); this.cmsLv = new System.Windows.Forms.ContextMenuStrip(this.components); this.menuAddVmessServer = new System.Windows.Forms.ToolStripMenuItem(); + this.menuAddVlessServer = new System.Windows.Forms.ToolStripMenuItem(); this.menuAddShadowsocksServer = new System.Windows.Forms.ToolStripMenuItem(); this.menuAddSocksServer = new System.Windows.Forms.ToolStripMenuItem(); this.menuAddCustomServer = new System.Windows.Forms.ToolStripMenuItem(); @@ -61,8 +62,8 @@ this.menuExport2ServerConfig = new System.Windows.Forms.ToolStripMenuItem(); this.menuExport2ShareUrl = new System.Windows.Forms.ToolStripMenuItem(); this.menuExport2SubContent = new System.Windows.Forms.ToolStripMenuItem(); - this.tsbServer = new System.Windows.Forms.ToolStripDropDownButton(); this.qrCodeControl = new v2rayN.Forms.QRCodeControl(); + this.tsbServer = new System.Windows.Forms.ToolStripDropDownButton(); this.notifyMain = new System.Windows.Forms.NotifyIcon(this.components); this.cmsMain = new System.Windows.Forms.ContextMenuStrip(this.components); this.menuSysAgentMode = new System.Windows.Forms.ToolStripMenuItem(); @@ -124,7 +125,6 @@ this.tsbPromotion = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator(); this.tsbClose = new System.Windows.Forms.ToolStripButton(); - this.menuAddVlessServer = new System.Windows.Forms.ToolStripMenuItem(); ((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit(); this.scMain.Panel1.SuspendLayout(); this.scMain.Panel2.SuspendLayout(); @@ -145,17 +145,19 @@ // // scMain.Panel1 // + resources.ApplyResources(this.scMain.Panel1, "scMain.Panel1"); this.scMain.Panel1.Controls.Add(this.lvServers); // // scMain.Panel2 // + resources.ApplyResources(this.scMain.Panel2, "scMain.Panel2"); this.scMain.Panel2.Controls.Add(this.qrCodeControl); this.scMain.TabStop = false; // // lvServers // - this.lvServers.ContextMenuStrip = this.cmsLv; resources.ApplyResources(this.lvServers, "lvServers"); + this.lvServers.ContextMenuStrip = this.cmsLv; this.lvServers.FullRowSelect = true; this.lvServers.GridLines = true; this.lvServers.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; @@ -174,6 +176,7 @@ // // cmsLv // + resources.ApplyResources(this.cmsLv, "cmsLv"); this.cmsLv.ImageScalingSize = new System.Drawing.Size(20, 20); this.cmsLv.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuAddVmessServer, @@ -206,193 +209,200 @@ this.menuExport2ShareUrl, this.menuExport2SubContent}); this.cmsLv.Name = "cmsLv"; - resources.ApplyResources(this.cmsLv, "cmsLv"); + this.cmsLv.OwnerItem = this.tsbServer; // // menuAddVmessServer // - this.menuAddVmessServer.Name = "menuAddVmessServer"; resources.ApplyResources(this.menuAddVmessServer, "menuAddVmessServer"); + this.menuAddVmessServer.Name = "menuAddVmessServer"; this.menuAddVmessServer.Click += new System.EventHandler(this.menuAddVmessServer_Click); // + // menuAddVlessServer + // + resources.ApplyResources(this.menuAddVlessServer, "menuAddVlessServer"); + this.menuAddVlessServer.Name = "menuAddVlessServer"; + this.menuAddVlessServer.Click += new System.EventHandler(this.menuAddVlessServer_Click); + // // menuAddShadowsocksServer // - this.menuAddShadowsocksServer.Name = "menuAddShadowsocksServer"; resources.ApplyResources(this.menuAddShadowsocksServer, "menuAddShadowsocksServer"); + this.menuAddShadowsocksServer.Name = "menuAddShadowsocksServer"; this.menuAddShadowsocksServer.Click += new System.EventHandler(this.menuAddShadowsocksServer_Click); // // menuAddSocksServer // - this.menuAddSocksServer.Name = "menuAddSocksServer"; resources.ApplyResources(this.menuAddSocksServer, "menuAddSocksServer"); + this.menuAddSocksServer.Name = "menuAddSocksServer"; this.menuAddSocksServer.Click += new System.EventHandler(this.menuAddSocksServer_Click); // // menuAddCustomServer // - this.menuAddCustomServer.Name = "menuAddCustomServer"; resources.ApplyResources(this.menuAddCustomServer, "menuAddCustomServer"); + this.menuAddCustomServer.Name = "menuAddCustomServer"; this.menuAddCustomServer.Click += new System.EventHandler(this.menuAddCustomServer_Click); // // menuAddServers // - this.menuAddServers.Name = "menuAddServers"; resources.ApplyResources(this.menuAddServers, "menuAddServers"); + this.menuAddServers.Name = "menuAddServers"; this.menuAddServers.Click += new System.EventHandler(this.menuAddServers_Click); // // menuScanScreen // - this.menuScanScreen.Name = "menuScanScreen"; resources.ApplyResources(this.menuScanScreen, "menuScanScreen"); + this.menuScanScreen.Name = "menuScanScreen"; this.menuScanScreen.Click += new System.EventHandler(this.menuScanScreen_Click); // // toolStripSeparator1 // - this.toolStripSeparator1.Name = "toolStripSeparator1"; resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1"); + this.toolStripSeparator1.Name = "toolStripSeparator1"; // // menuRemoveServer // - this.menuRemoveServer.Name = "menuRemoveServer"; resources.ApplyResources(this.menuRemoveServer, "menuRemoveServer"); + this.menuRemoveServer.Name = "menuRemoveServer"; this.menuRemoveServer.Click += new System.EventHandler(this.menuRemoveServer_Click); // // menuRemoveDuplicateServer // - this.menuRemoveDuplicateServer.Name = "menuRemoveDuplicateServer"; resources.ApplyResources(this.menuRemoveDuplicateServer, "menuRemoveDuplicateServer"); + this.menuRemoveDuplicateServer.Name = "menuRemoveDuplicateServer"; this.menuRemoveDuplicateServer.Click += new System.EventHandler(this.menuRemoveDuplicateServer_Click); // // menuCopyServer // - this.menuCopyServer.Name = "menuCopyServer"; resources.ApplyResources(this.menuCopyServer, "menuCopyServer"); + this.menuCopyServer.Name = "menuCopyServer"; this.menuCopyServer.Click += new System.EventHandler(this.menuCopyServer_Click); // // menuSetDefaultServer // - this.menuSetDefaultServer.Name = "menuSetDefaultServer"; resources.ApplyResources(this.menuSetDefaultServer, "menuSetDefaultServer"); + this.menuSetDefaultServer.Name = "menuSetDefaultServer"; this.menuSetDefaultServer.Click += new System.EventHandler(this.menuSetDefaultServer_Click); // // toolStripSeparator3 // - this.toolStripSeparator3.Name = "toolStripSeparator3"; resources.ApplyResources(this.toolStripSeparator3, "toolStripSeparator3"); + this.toolStripSeparator3.Name = "toolStripSeparator3"; // // menuMoveTop // - this.menuMoveTop.Name = "menuMoveTop"; resources.ApplyResources(this.menuMoveTop, "menuMoveTop"); + this.menuMoveTop.Name = "menuMoveTop"; this.menuMoveTop.Click += new System.EventHandler(this.menuMoveTop_Click); // // menuMoveUp // - this.menuMoveUp.Name = "menuMoveUp"; resources.ApplyResources(this.menuMoveUp, "menuMoveUp"); + this.menuMoveUp.Name = "menuMoveUp"; this.menuMoveUp.Click += new System.EventHandler(this.menuMoveUp_Click); // // menuMoveDown // - this.menuMoveDown.Name = "menuMoveDown"; resources.ApplyResources(this.menuMoveDown, "menuMoveDown"); + this.menuMoveDown.Name = "menuMoveDown"; this.menuMoveDown.Click += new System.EventHandler(this.menuMoveDown_Click); // // menuMoveBottom // - this.menuMoveBottom.Name = "menuMoveBottom"; resources.ApplyResources(this.menuMoveBottom, "menuMoveBottom"); + this.menuMoveBottom.Name = "menuMoveBottom"; this.menuMoveBottom.Click += new System.EventHandler(this.menuMoveBottom_Click); // // menuSelectAll // - this.menuSelectAll.Name = "menuSelectAll"; resources.ApplyResources(this.menuSelectAll, "menuSelectAll"); + this.menuSelectAll.Name = "menuSelectAll"; this.menuSelectAll.Click += new System.EventHandler(this.menuSelectAll_Click); // // toolStripSeparator9 // - this.toolStripSeparator9.Name = "toolStripSeparator9"; resources.ApplyResources(this.toolStripSeparator9, "toolStripSeparator9"); + this.toolStripSeparator9.Name = "toolStripSeparator9"; // // menuPingServer // - this.menuPingServer.Name = "menuPingServer"; resources.ApplyResources(this.menuPingServer, "menuPingServer"); + this.menuPingServer.Name = "menuPingServer"; this.menuPingServer.Click += new System.EventHandler(this.menuPingServer_Click); // // menuTcpingServer // - this.menuTcpingServer.Name = "menuTcpingServer"; resources.ApplyResources(this.menuTcpingServer, "menuTcpingServer"); + this.menuTcpingServer.Name = "menuTcpingServer"; this.menuTcpingServer.Click += new System.EventHandler(this.menuTcpingServer_Click); // // menuRealPingServer // - this.menuRealPingServer.Name = "menuRealPingServer"; resources.ApplyResources(this.menuRealPingServer, "menuRealPingServer"); + this.menuRealPingServer.Name = "menuRealPingServer"; this.menuRealPingServer.Click += new System.EventHandler(this.menuRealPingServer_Click); // // menuSpeedServer // - this.menuSpeedServer.Name = "menuSpeedServer"; resources.ApplyResources(this.menuSpeedServer, "menuSpeedServer"); + this.menuSpeedServer.Name = "menuSpeedServer"; this.menuSpeedServer.Click += new System.EventHandler(this.menuSpeedServer_Click); // // tsbTestMe // - this.tsbTestMe.Name = "tsbTestMe"; resources.ApplyResources(this.tsbTestMe, "tsbTestMe"); + this.tsbTestMe.Name = "tsbTestMe"; this.tsbTestMe.Click += new System.EventHandler(this.tsbTestMe_Click); // // toolStripSeparator6 // - this.toolStripSeparator6.Name = "toolStripSeparator6"; resources.ApplyResources(this.toolStripSeparator6, "toolStripSeparator6"); + this.toolStripSeparator6.Name = "toolStripSeparator6"; // // menuExport2ClientConfig // - this.menuExport2ClientConfig.Name = "menuExport2ClientConfig"; resources.ApplyResources(this.menuExport2ClientConfig, "menuExport2ClientConfig"); + this.menuExport2ClientConfig.Name = "menuExport2ClientConfig"; this.menuExport2ClientConfig.Click += new System.EventHandler(this.menuExport2ClientConfig_Click); // // menuExport2ServerConfig // - this.menuExport2ServerConfig.Name = "menuExport2ServerConfig"; resources.ApplyResources(this.menuExport2ServerConfig, "menuExport2ServerConfig"); + this.menuExport2ServerConfig.Name = "menuExport2ServerConfig"; this.menuExport2ServerConfig.Click += new System.EventHandler(this.menuExport2ServerConfig_Click); // // menuExport2ShareUrl // - this.menuExport2ShareUrl.Name = "menuExport2ShareUrl"; resources.ApplyResources(this.menuExport2ShareUrl, "menuExport2ShareUrl"); + this.menuExport2ShareUrl.Name = "menuExport2ShareUrl"; this.menuExport2ShareUrl.Click += new System.EventHandler(this.menuExport2ShareUrl_Click); // // menuExport2SubContent // - this.menuExport2SubContent.Name = "menuExport2SubContent"; resources.ApplyResources(this.menuExport2SubContent, "menuExport2SubContent"); + this.menuExport2SubContent.Name = "menuExport2SubContent"; this.menuExport2SubContent.Click += new System.EventHandler(this.menuExport2SubContent_Click); // - // tsbServer - // - this.tsbServer.Image = global::v2rayN.Properties.Resources.server; - resources.ApplyResources(this.tsbServer, "tsbServer"); - this.tsbServer.Name = "tsbServer"; - // // qrCodeControl // resources.ApplyResources(this.qrCodeControl, "qrCodeControl"); this.qrCodeControl.Name = "qrCodeControl"; // + // tsbServer + // + resources.ApplyResources(this.tsbServer, "tsbServer"); + this.tsbServer.DropDown = this.cmsLv; + this.tsbServer.Image = global::v2rayN.Properties.Resources.server; + this.tsbServer.Name = "tsbServer"; + // // notifyMain // - this.notifyMain.ContextMenuStrip = this.cmsMain; resources.ApplyResources(this.notifyMain, "notifyMain"); + this.notifyMain.ContextMenuStrip = this.cmsMain; this.notifyMain.MouseClick += new System.Windows.Forms.MouseEventHandler(this.notifyMain_MouseClick); // // cmsMain // - this.cmsMain.ImageScalingSize = new System.Drawing.Size(20, 20); resources.ApplyResources(this.cmsMain, "cmsMain"); + this.cmsMain.ImageScalingSize = new System.Drawing.Size(20, 20); this.cmsMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuSysAgentMode, this.menuServers, @@ -409,6 +419,7 @@ // // menuSysAgentMode // + resources.ApplyResources(this.menuSysAgentMode, "menuSysAgentMode"); this.menuSysAgentMode.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuNotEnabledHttp, this.menuGlobal, @@ -418,88 +429,87 @@ this.menuKeepNothing, this.menuKeepPACNothing}); this.menuSysAgentMode.Name = "menuSysAgentMode"; - resources.ApplyResources(this.menuSysAgentMode, "menuSysAgentMode"); // // menuNotEnabledHttp // - this.menuNotEnabledHttp.Name = "menuNotEnabledHttp"; resources.ApplyResources(this.menuNotEnabledHttp, "menuNotEnabledHttp"); + this.menuNotEnabledHttp.Name = "menuNotEnabledHttp"; this.menuNotEnabledHttp.Click += new System.EventHandler(this.menuNotEnabledHttp_Click); // // menuGlobal // - this.menuGlobal.Name = "menuGlobal"; resources.ApplyResources(this.menuGlobal, "menuGlobal"); + this.menuGlobal.Name = "menuGlobal"; this.menuGlobal.Click += new System.EventHandler(this.menuGlobal_Click); // // menuGlobalPAC // - this.menuGlobalPAC.Name = "menuGlobalPAC"; resources.ApplyResources(this.menuGlobalPAC, "menuGlobalPAC"); + this.menuGlobalPAC.Name = "menuGlobalPAC"; this.menuGlobalPAC.Click += new System.EventHandler(this.menuGlobalPAC_Click); // // menuKeep // - this.menuKeep.Name = "menuKeep"; resources.ApplyResources(this.menuKeep, "menuKeep"); + this.menuKeep.Name = "menuKeep"; this.menuKeep.Click += new System.EventHandler(this.menuKeep_Click); // // menuKeepPAC // - this.menuKeepPAC.Name = "menuKeepPAC"; resources.ApplyResources(this.menuKeepPAC, "menuKeepPAC"); + this.menuKeepPAC.Name = "menuKeepPAC"; this.menuKeepPAC.Click += new System.EventHandler(this.menuKeepPAC_Click); // // menuKeepNothing // - this.menuKeepNothing.Name = "menuKeepNothing"; resources.ApplyResources(this.menuKeepNothing, "menuKeepNothing"); + this.menuKeepNothing.Name = "menuKeepNothing"; this.menuKeepNothing.Click += new System.EventHandler(this.menuKeepNothing_Click); // // menuKeepPACNothing // - this.menuKeepPACNothing.Name = "menuKeepPACNothing"; resources.ApplyResources(this.menuKeepPACNothing, "menuKeepPACNothing"); + this.menuKeepPACNothing.Name = "menuKeepPACNothing"; this.menuKeepPACNothing.Click += new System.EventHandler(this.menuKeepPACNothing_Click); // // menuServers // - this.menuServers.Name = "menuServers"; resources.ApplyResources(this.menuServers, "menuServers"); + this.menuServers.Name = "menuServers"; // // menuAddServers2 // - this.menuAddServers2.Name = "menuAddServers2"; resources.ApplyResources(this.menuAddServers2, "menuAddServers2"); + this.menuAddServers2.Name = "menuAddServers2"; this.menuAddServers2.Click += new System.EventHandler(this.menuAddServers_Click); // // menuScanScreen2 // - this.menuScanScreen2.Name = "menuScanScreen2"; resources.ApplyResources(this.menuScanScreen2, "menuScanScreen2"); + this.menuScanScreen2.Name = "menuScanScreen2"; this.menuScanScreen2.Click += new System.EventHandler(this.menuScanScreen_Click); // // menuCopyPACUrl // - this.menuCopyPACUrl.Name = "menuCopyPACUrl"; resources.ApplyResources(this.menuCopyPACUrl, "menuCopyPACUrl"); + this.menuCopyPACUrl.Name = "menuCopyPACUrl"; this.menuCopyPACUrl.Click += new System.EventHandler(this.menuCopyPACUrl_Click); // // menuUpdateSubscriptions // - this.menuUpdateSubscriptions.Name = "menuUpdateSubscriptions"; resources.ApplyResources(this.menuUpdateSubscriptions, "menuUpdateSubscriptions"); + this.menuUpdateSubscriptions.Name = "menuUpdateSubscriptions"; this.menuUpdateSubscriptions.Click += new System.EventHandler(this.menuUpdateSubscriptions_Click); // // toolStripSeparator2 // - this.toolStripSeparator2.Name = "toolStripSeparator2"; resources.ApplyResources(this.toolStripSeparator2, "toolStripSeparator2"); + this.toolStripSeparator2.Name = "toolStripSeparator2"; // // menuExit // - this.menuExit.Name = "menuExit"; resources.ApplyResources(this.menuExit, "menuExit"); + this.menuExit.Name = "menuExit"; this.menuExit.Click += new System.EventHandler(this.menuExit_Click); // // bgwScan @@ -510,30 +520,31 @@ // // groupBox1 // - this.groupBox1.Controls.Add(this.scMain); resources.ApplyResources(this.groupBox1, "groupBox1"); + this.groupBox1.Controls.Add(this.scMain); this.groupBox1.Name = "groupBox1"; this.groupBox1.TabStop = false; // // groupBox2 // + resources.ApplyResources(this.groupBox2, "groupBox2"); this.groupBox2.Controls.Add(this.txtMsgBox); this.groupBox2.Controls.Add(this.ssMain); - resources.ApplyResources(this.groupBox2, "groupBox2"); this.groupBox2.Name = "groupBox2"; this.groupBox2.TabStop = false; // // txtMsgBox // + resources.ApplyResources(this.txtMsgBox, "txtMsgBox"); this.txtMsgBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(41)))), ((int)(((byte)(49)))), ((int)(((byte)(52))))); this.txtMsgBox.BorderStyle = System.Windows.Forms.BorderStyle.None; - resources.ApplyResources(this.txtMsgBox, "txtMsgBox"); this.txtMsgBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(226)))), ((int)(((byte)(228))))); this.txtMsgBox.Name = "txtMsgBox"; this.txtMsgBox.ReadOnly = true; // // ssMain // + resources.ApplyResources(this.ssMain, "ssMain"); this.ssMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolSslSocksPortLab, this.toolSslSocksPort, @@ -546,7 +557,6 @@ this.toolSslBlank3, this.toolSslServerSpeed, this.toolSslBlank4}); - resources.ApplyResources(this.ssMain, "ssMain"); this.ssMain.Name = "ssMain"; this.ssMain.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.ssMain_ItemClicked); // @@ -557,8 +567,8 @@ // // toolSslSocksPort // - this.toolSslSocksPort.Name = "toolSslSocksPort"; resources.ApplyResources(this.toolSslSocksPort, "toolSslSocksPort"); + this.toolSslSocksPort.Name = "toolSslSocksPort"; // // toolSslBlank1 // @@ -573,8 +583,8 @@ // // toolSslHttpPort // - this.toolSslHttpPort.Name = "toolSslHttpPort"; resources.ApplyResources(this.toolSslHttpPort, "toolSslHttpPort"); + this.toolSslHttpPort.Name = "toolSslHttpPort"; // // toolSslBlank2 // @@ -589,8 +599,8 @@ // // toolSslPacPort // - this.toolSslPacPort.Name = "toolSslPacPort"; resources.ApplyResources(this.toolSslPacPort, "toolSslPacPort"); + this.toolSslPacPort.Name = "toolSslPacPort"; // // toolSslBlank3 // @@ -606,8 +616,8 @@ // // toolSslBlank4 // - this.toolSslBlank4.Name = "toolSslBlank4"; resources.ApplyResources(this.toolSslBlank4, "toolSslBlank4"); + this.toolSslBlank4.Name = "toolSslBlank4"; // // panel1 // @@ -616,6 +626,7 @@ // // tsMain // + resources.ApplyResources(this.tsMain, "tsMain"); this.tsMain.ImageScalingSize = new System.Drawing.Size(32, 32); this.tsMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.tsbServer, @@ -633,61 +644,60 @@ this.tsbPromotion, this.toolStripSeparator11, this.tsbClose}); - resources.ApplyResources(this.tsMain, "tsMain"); this.tsMain.Name = "tsMain"; this.tsMain.TabStop = true; // // toolStripSeparator4 // - this.toolStripSeparator4.Name = "toolStripSeparator4"; resources.ApplyResources(this.toolStripSeparator4, "toolStripSeparator4"); + this.toolStripSeparator4.Name = "toolStripSeparator4"; // // tsbSub // + resources.ApplyResources(this.tsbSub, "tsbSub"); this.tsbSub.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.tsbSubSetting, this.tsbSubUpdate}); this.tsbSub.Image = global::v2rayN.Properties.Resources.sub; - resources.ApplyResources(this.tsbSub, "tsbSub"); this.tsbSub.Name = "tsbSub"; // // tsbSubSetting // - this.tsbSubSetting.Name = "tsbSubSetting"; resources.ApplyResources(this.tsbSubSetting, "tsbSubSetting"); + this.tsbSubSetting.Name = "tsbSubSetting"; this.tsbSubSetting.Click += new System.EventHandler(this.tsbSubSetting_Click); // // tsbSubUpdate // - this.tsbSubUpdate.Name = "tsbSubUpdate"; resources.ApplyResources(this.tsbSubUpdate, "tsbSubUpdate"); + this.tsbSubUpdate.Name = "tsbSubUpdate"; this.tsbSubUpdate.Click += new System.EventHandler(this.tsbSubUpdate_Click); // // tsbQRCodeSwitch // + resources.ApplyResources(this.tsbQRCodeSwitch, "tsbQRCodeSwitch"); this.tsbQRCodeSwitch.CheckOnClick = true; this.tsbQRCodeSwitch.ForeColor = System.Drawing.Color.Black; this.tsbQRCodeSwitch.Image = global::v2rayN.Properties.Resources.share; - resources.ApplyResources(this.tsbQRCodeSwitch, "tsbQRCodeSwitch"); this.tsbQRCodeSwitch.Name = "tsbQRCodeSwitch"; this.tsbQRCodeSwitch.CheckedChanged += new System.EventHandler(this.tsbQRCodeSwitch_CheckedChanged); // // toolStripSeparator8 // - this.toolStripSeparator8.Name = "toolStripSeparator8"; resources.ApplyResources(this.toolStripSeparator8, "toolStripSeparator8"); + this.toolStripSeparator8.Name = "toolStripSeparator8"; // // tsbOptionSetting // - this.tsbOptionSetting.Image = global::v2rayN.Properties.Resources.option; resources.ApplyResources(this.tsbOptionSetting, "tsbOptionSetting"); + this.tsbOptionSetting.Image = global::v2rayN.Properties.Resources.option; this.tsbOptionSetting.Name = "tsbOptionSetting"; this.tsbOptionSetting.Click += new System.EventHandler(this.tsbOptionSetting_Click); // // toolStripSeparator5 // - this.toolStripSeparator5.Name = "toolStripSeparator5"; resources.ApplyResources(this.toolStripSeparator5, "toolStripSeparator5"); + this.toolStripSeparator5.Name = "toolStripSeparator5"; // // tsbReload // @@ -697,11 +707,12 @@ // // toolStripSeparator7 // - this.toolStripSeparator7.Name = "toolStripSeparator7"; resources.ApplyResources(this.toolStripSeparator7, "toolStripSeparator7"); + this.toolStripSeparator7.Name = "toolStripSeparator7"; // // tsbCheckUpdate // + resources.ApplyResources(this.tsbCheckUpdate, "tsbCheckUpdate"); this.tsbCheckUpdate.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.tsbCheckUpdateN, this.tsbCheckUpdateCore, @@ -709,45 +720,45 @@ this.toolStripSeparator13, this.tsbCheckClearPACList}); this.tsbCheckUpdate.Image = global::v2rayN.Properties.Resources.checkupdate; - resources.ApplyResources(this.tsbCheckUpdate, "tsbCheckUpdate"); this.tsbCheckUpdate.Name = "tsbCheckUpdate"; // // tsbCheckUpdateN // - this.tsbCheckUpdateN.Name = "tsbCheckUpdateN"; resources.ApplyResources(this.tsbCheckUpdateN, "tsbCheckUpdateN"); + this.tsbCheckUpdateN.Name = "tsbCheckUpdateN"; this.tsbCheckUpdateN.Click += new System.EventHandler(this.tsbCheckUpdateN_Click); // // tsbCheckUpdateCore // - this.tsbCheckUpdateCore.Name = "tsbCheckUpdateCore"; resources.ApplyResources(this.tsbCheckUpdateCore, "tsbCheckUpdateCore"); + this.tsbCheckUpdateCore.Name = "tsbCheckUpdateCore"; this.tsbCheckUpdateCore.Click += new System.EventHandler(this.tsbCheckUpdateCore_Click); // // tsbCheckUpdatePACList // - this.tsbCheckUpdatePACList.Name = "tsbCheckUpdatePACList"; resources.ApplyResources(this.tsbCheckUpdatePACList, "tsbCheckUpdatePACList"); + this.tsbCheckUpdatePACList.Name = "tsbCheckUpdatePACList"; this.tsbCheckUpdatePACList.Click += new System.EventHandler(this.tsbCheckUpdatePACList_Click); // // toolStripSeparator13 // - this.toolStripSeparator13.Name = "toolStripSeparator13"; resources.ApplyResources(this.toolStripSeparator13, "toolStripSeparator13"); + this.toolStripSeparator13.Name = "toolStripSeparator13"; // // tsbCheckClearPACList // - this.tsbCheckClearPACList.Name = "tsbCheckClearPACList"; resources.ApplyResources(this.tsbCheckClearPACList, "tsbCheckClearPACList"); + this.tsbCheckClearPACList.Name = "tsbCheckClearPACList"; this.tsbCheckClearPACList.Click += new System.EventHandler(this.tsbCheckClearPACList_Click); // // toolStripSeparator10 // - this.toolStripSeparator10.Name = "toolStripSeparator10"; resources.ApplyResources(this.toolStripSeparator10, "toolStripSeparator10"); + this.toolStripSeparator10.Name = "toolStripSeparator10"; // // tsbHelp // + resources.ApplyResources(this.tsbHelp, "tsbHelp"); this.tsbHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.tsbAbout, this.tsbV2rayWebsite, @@ -755,50 +766,49 @@ this.tsbLanguageDef, this.tsbLanguageZhHans}); this.tsbHelp.Image = global::v2rayN.Properties.Resources.help; - resources.ApplyResources(this.tsbHelp, "tsbHelp"); this.tsbHelp.Name = "tsbHelp"; // // tsbAbout // - this.tsbAbout.Name = "tsbAbout"; resources.ApplyResources(this.tsbAbout, "tsbAbout"); + this.tsbAbout.Name = "tsbAbout"; this.tsbAbout.Click += new System.EventHandler(this.tsbAbout_Click); // // tsbV2rayWebsite // - this.tsbV2rayWebsite.Name = "tsbV2rayWebsite"; resources.ApplyResources(this.tsbV2rayWebsite, "tsbV2rayWebsite"); + this.tsbV2rayWebsite.Name = "tsbV2rayWebsite"; this.tsbV2rayWebsite.Click += new System.EventHandler(this.tsbV2rayWebsite_Click); // // toolStripSeparator12 // - this.toolStripSeparator12.Name = "toolStripSeparator12"; resources.ApplyResources(this.toolStripSeparator12, "toolStripSeparator12"); + this.toolStripSeparator12.Name = "toolStripSeparator12"; // // tsbLanguageDef // - this.tsbLanguageDef.Name = "tsbLanguageDef"; resources.ApplyResources(this.tsbLanguageDef, "tsbLanguageDef"); + this.tsbLanguageDef.Name = "tsbLanguageDef"; this.tsbLanguageDef.Click += new System.EventHandler(this.tsbLanguageDef_Click); // // tsbLanguageZhHans // - this.tsbLanguageZhHans.Name = "tsbLanguageZhHans"; resources.ApplyResources(this.tsbLanguageZhHans, "tsbLanguageZhHans"); + this.tsbLanguageZhHans.Name = "tsbLanguageZhHans"; this.tsbLanguageZhHans.Click += new System.EventHandler(this.tsbLanguageZhHans_Click); // // tsbPromotion // + resources.ApplyResources(this.tsbPromotion, "tsbPromotion"); this.tsbPromotion.ForeColor = System.Drawing.Color.Black; this.tsbPromotion.Image = global::v2rayN.Properties.Resources.promotion; - resources.ApplyResources(this.tsbPromotion, "tsbPromotion"); this.tsbPromotion.Name = "tsbPromotion"; this.tsbPromotion.Click += new System.EventHandler(this.tsbPromotion_Click); // // toolStripSeparator11 // - this.toolStripSeparator11.Name = "toolStripSeparator11"; resources.ApplyResources(this.toolStripSeparator11, "toolStripSeparator11"); + this.toolStripSeparator11.Name = "toolStripSeparator11"; // // tsbClose // @@ -806,12 +816,6 @@ this.tsbClose.Name = "tsbClose"; this.tsbClose.Click += new System.EventHandler(this.tsbClose_Click); // - // menuAddVlessServer - // - this.menuAddVlessServer.Name = "menuAddVlessServer"; - resources.ApplyResources(this.menuAddVlessServer, "menuAddVlessServer"); - this.menuAddVlessServer.Click += new System.EventHandler(this.menuAddVlessServer_Click); - // // MainForm // resources.ApplyResources(this, "$this"); diff --git a/v2rayN/v2rayN/Forms/MainForm.resx b/v2rayN/v2rayN/Forms/MainForm.resx index cca0d7a7..de7f141e 100644 --- a/v2rayN/v2rayN/Forms/MainForm.resx +++ b/v2rayN/v2rayN/Forms/MainForm.resx @@ -117,190 +117,713 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fill + + Remove duplicate servers - - 3, 17 - - - 327, 17 - - + 355, 22 - - Add [VMess] server + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + Magenta + + + 355, 22 + + + 97, 53 + + 355, 22 Add [VLESS] server - - 355, 22 + + 2 - - Add [Shadowsocks] server + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 355, 22 + + Restart service + + + 184, 6 + + + tsbSubSetting + + + 264, 22 + + + groupBox2 + + + menuMoveUp Add [Socks] server - + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 355, 22 - - Add a custom configuration server + + + ImageAboveText - - 355, 22 + + 语言-[中文简体] - - Import bulk URL from clipboard (Ctrl+V) + + NoControl - - 355, 22 + + Top - - Scan QR code on the screen (Ctrl+S) + + tsbHelp - - 352, 6 + + 5 - - 355, 22 + + + False - - Remove selected servers (Delete) - - - 355, 22 - - - Remove duplicate servers - - - 355, 22 - - - Clone selected server - - - 355, 22 + + toolStripSeparator6 Set as active server (Enter) - - 352, 6 + + 99, 53 - + + Update subscriptions + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 187, 22 + + + groupBox2 + + + toolSslBlank2 + + 355, 22 - - Move to top (T) - - - 355, 22 - - - Up (U) - - - 355, 22 - - - Down (D) - - - 355, 22 - - - Move to bottom (B) - - - 355, 22 - - - Select All (Ctrl+A) - - - 352, 6 - - - 355, 22 - - - Test servers ping (Ctrl+P) - - - 355, 22 - - - Test servers with tcping (Ctrl+O) - - - 355, 22 - - - Test servers real delay (Ctrl+R) - - - 355, 22 - - - Test servers download speed (Ctrl+T) - - - 355, 22 - - - Test current service status - - - 352, 6 - - - 355, 22 - - - Export selected server for client configuration - - - 355, 22 - - - Export selected server for server configuration - 355, 22 - - Export share URLs to clipboard (Ctrl+C) + + tsbCheckUpdateN - + + Only open Http proxy and do nothing + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator7 + + + Update v2rayCore + + + Magenta + + 355, 22 - - Export subscription (base64) share to clipboard + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 356, 600 + + menuExport2SubContent - - cmsLv + + 52, 17 + + + Share + + + tsbQRCodeSwitch + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAADJJREFUWEftzrENACAIRUFGdVMdTZkAG4zFXfI68kMAAD8ap9lUbpfyaDV19QAA + 8FDEBl3RImu5VcdbAAAAAElFTkSuQmCC + + + + 355, 22 + + + 0, 0 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Export selected server for server configuration + + + 0, 17 + + + 952, 56 + + + System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 + + + Test servers real delay (Ctrl+R) + + + menuTcpingServer + + + 0 + + + ImageAboveText + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 6, 56 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + v2rayN + + + 411, 22 + + + 355, 22 + + + toolStripSeparator1 + + + 3 + + + System.Windows.Forms.ToolStripDropDownButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 393, 22 + + + 0, 56 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbClose + + + 355, 22 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuPingServer + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbLanguageDef + + + Import bulk URL from clipboard (Ctrl+V) + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAATdJREFUWEftloENAiEMRW8ER3AEN9ANdARHcAPdwBF0A91AN9INtC+5JvUCJwWM + mvCTFw3QUiiU65qa/lUTYT6Ato9rJZyERwT6GFNdU+EihCYNwVhsqmgm3AR1fheOAitd9PCfNvp0HDbY + FolV2MmZZCzX9J0FG0TRTlwFdbahIVE7Qe1IR5bYVnXCyr2yO5F1MNUBec25YtjomcCXSxhr9DmrV2Gr + flyL4GSrYcm9tmnEZ7JsAC7DgWr5ydbXA8hOAcVjG8FTD6ocQgvXKrW8MqFWUfc1DAXgmRwVFaJQAHsh + VbYUU87diqWA934sl/TZ7wV2Lesx0gBwsO5/1Sl5PQhLQb+G+E+bfTm9KXsRAVgHrMK+jO9gbNEzzMSh + 6DlM9nANoa+kdCeLXLNLFtc9b2r6EXXdE4e4mdByNuG1AAAAAElFTkSuQmCC + + + + 411, 22 + + + 3 + + + 3, 17 + + + 355, 22 + + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Fill + + + 6, 56 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 220, 17 + + + menuAddCustomServer + + + statusStrip1 + + + menuMoveDown + + + Import bulk URL from clipboard + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Move to bottom (B) + + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 6, 12 + + + 48, 53 + + + 355, 22 + + + System.ComponentModel.BackgroundWorker, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel1 + + + 195, 17 + + + 0 + + + 686, 331 + + + toolStripSeparator4 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Bottom + + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + scMain.Panel2 + + + 39, 17 + + + menuAddServers2 + + + Fill + + + Add [VMess] server + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + + + tsbAbout + + + 195, 17 + + + toolStripSeparator5 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 352, 6 + + + 355, 22 + + + 0, 0 + + + 256, 331 + + + 4, 4, 4, 4 + + + Test servers with tcping (Ctrl+O) + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 6, 56 + + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 195, 17 + + + 2 + + + 125, 22 + + + 0, 17 + + + scMain.Panel2 + + + 58, 53 + + + 355, 22 + + + 187, 22 + + + 6, 56 + + + Test servers download speed (Ctrl+T) + + + ssMain + + + 686 + + + ImageAboveText + + + 52, 53 + + + 265, 164 + + + 411, 22 + + + $this + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + scMain + + + Check for updates + + + 0, 17 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 4 + + + 125, 22 + + + Only open Http proxy and clear the proxy settings + + + scMain + + + HTTP: + + + Remove selected servers (Delete) + + + 411, 22 + + + menuKeepPAC + + + 0 + + + Help + + + menuSelectAll + + + Move to top (T) + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Scan QR code on the screen (Ctrl+S) + + + ImageAboveText + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 187, 22 + + + menuAddServers + + + 355, 22 + + + menuAddVmessServer + + + tsbLanguageZhHans + + + menuRemoveDuplicateServer + + + BottomCenter + + + menuExport2ShareUrl + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbReload + + + v2rayN (this software) + + + Magenta + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0, 66 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbV2rayWebsite + + + Server + + + v2rayN.Base.ListViewFlickerFree, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + + + menuAddShadowsocksServer + + + txtMsgBox + + + toolSslBlank4 + + + 261, 6 + + + v2rayN + + + Language-[English] + + + 264, 22 + + + 0 + + + toolSslBlank3 + + + 128, 53 + + + tsMain + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ImageAboveText System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Fill + + 0, 417 + + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 352, 6 + + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + V2Ray Website + + + No + + + 1 + + + toolSslPacPort + + + System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Settings + + + menuMoveTop + + + menuKeep @@ -319,620 +842,533 @@ ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAMAAAADAAAACw== - - 0, 0 + + 952, 351 - - 686, 331 + + menuScanScreen - - - 0 + + cmsLv - - lvServers + + toolStripSeparator12 - - v2rayN.Base.ListViewFlickerFree, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + + 6, 56 - - scMain.Panel1 - - - 0 - - - scMain.Panel1 - - - System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - scMain - - - 0 - - + Fill - - 0, 0 + + toolSslBlank1 - - 256, 331 + + tsbSubUpdate - - 2 + + 微软雅黑, 8pt - - qrCodeControl + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - v2rayN.Forms.QRCodeControl, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + + SPEED Disabled - - scMain.Panel2 + + Promotion - - 0 + + menuSysAgentMode - - scMain.Panel2 + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - scMain - - - 1 - - - 100 - - - 946, 331 - - - 686 - - - 0 - - - scMain - - - System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - 0 - - - Magenta - - - 64, 53 - - - Servers - - + ImageAboveText - - 17, 17 - - - 137, 17 - - - NoControl + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 411, 22 + + menuScanScreen2 - - Not Enabled Http Proxy + + cmsMain - - 411, 22 + + 264, 22 - - Open Http proxy and set the system proxy (global mode) + + menuServers + + + menuUpdateSubscriptions + + + $this + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator13 + + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 264, 22 + + + 3, 151 + + + True + + + 355, 22 + + + Subscriptions + + + 952, 10 + + + Updates + + + 264, 22 + + + menuNotEnabledHttp + + + 0 + + + toolStripSeparator8 + + + 89, 53 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + BottomCenter + + + Test servers ping (Ctrl+P) + + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 355, 22 + + + 264, 22 + + + System.Windows.Forms.ToolStripDropDownButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuSetDefaultServer + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Settings + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuCopyServer + + + Http proxy + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 411, 22 - - Open PAC and set the system proxy (PAC mode) - - - 411, 22 - - - Only open Http proxy and clear the proxy settings - - - 411, 22 - Only open PAC and clear the proxy settings - - 411, 22 + + 355, 22 - - Only open Http proxy and do nothing + + groupBox1 - - 411, 22 + + MainForm - - Only open PAC and do nothing + + toolStripSeparator9 - - 264, 22 + + menuExit - - Http proxy - - - 264, 22 - - - Server - - - 264, 22 - - - Import bulk URL from clipboard - - - 264, 22 - - - Scan QR code on the screen - - - 264, 22 - - - Copy local PAC URL - - - 264, 22 - - - Update subscriptions - - - 261, 6 - - - 264, 22 - - - Exit - - - 265, 164 - - - cmsMain - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - v2rayN - - - True - - - 498, 17 - - - Fill - - - 0, 66 - - - 952, 351 - - - 0 + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Servers list - - groupBox1 + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + lvServers - - $this + + menuRealPingServer - - 2 + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Fill + + menuGlobal - - 3, 17 - - - 0 - - - True - - - Vertical - - - 946, 134 - - - 3 - - - txtMsgBox - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 0 - - - 228, 18 - - - 微软雅黑, 8pt - - - 52, 17 - - - SOCKS5: - - - 0, 17 - - - 微软雅黑, 8pt - - - 195, 17 - - - 微软雅黑, 8pt - - - 39, 17 - - - HTTP: - - - 0, 17 - - - 微软雅黑, 8pt - - - 195, 17 - - - 微软雅黑, 8pt - - - 33, 17 - - - PAC: - - - 0, 17 - - - 微软雅黑, 8pt - - - 195, 17 - - - False - - - 微软雅黑, 8pt - - - No - - - 220, 17 - - - SPEED Disabled - - - MiddleRight - - - 0, 17 - - - 3, 151 - - - 946, 22 - - - 0 - - - statusStrip1 - - - ssMain - - - System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - 1 - - - Bottom - - - 0, 417 - - - 952, 176 - - - 3 - - - Informations - - - groupBox2 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 3 - - - Top - - - 0, 56 - - - 952, 10 + + 100 2 - - panel1 + + Magenta - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + menuKeepPACNothing + + + Check for updated PAC (need the HTTP proxy are ON) + + + toolStripSeparator11 + + + 355, 22 + + + v2rayN Project + + + Servers + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Select All (Ctrl+A) + + + Informations + + + 3 + + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbCheckUpdateCore + + + SOCKS5: + + + 33, 17 + + + toolSslServerSpeed + + + menuRemoveServer + + + 355, 22 + + + tsbTestMe + + + 355, 22 + + + 946, 134 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.NotifyIcon, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + scMain + + + Down (D) + + + menuCopyPACUrl + + + 352, 6 + + + Magenta + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 355, 22 + + + tsbSub + + + Magenta + + + ImageAboveText + + + Clone selected server + + + 0, 0 + + + Add [Shadowsocks] server + + + System.Windows.Forms.ToolStripDropDownButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + tsbCheckUpdate + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 微软雅黑, 8pt + + + Export share URLs to clipboard (Ctrl+C) + + + 411, 22 + + + 355, 22 + + + 微软雅黑, 8pt + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Simplify PAC (need to set Core route) + + + menuExport2ClientConfig + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0 $this - - 4 + + Fill - - 409, 17 - - - 6, 56 + + qrCodeControl - - 180, 22 + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Settings + + tsbServer - - 180, 22 + + 0 - - Updates + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Magenta + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 99, 53 + + 微软雅黑, 8pt - - Subscriptions + + tsbPromotion - + ImageAboveText - + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuGlobalPAC + + + 393, 22 + + + 356, 578 + + + $this + + + scMain.Panel1 + + + Up (U) + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + notifyMain + + + Open Http proxy and set the system proxy (global mode) + + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + MiddleRight + + + Magenta + + + tsbOptionSetting + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + menuAddSocksServer + + + scMain.Panel1 + + + 微软雅黑, 8pt + + + 64, 53 + + + 1 + + + 946, 22 + + + Open PAC and set the system proxy (PAC mode) + + Magenta 45, 53 - - Share + + menuAddVlessServer - - BottomCenter + + 946, 331 - - ImageAboveText + + v2rayN.Forms.QRCodeControl, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - - 6, 56 - - - Magenta - - - 58, 53 - - - Settings - - - ImageAboveText - - - 6, 56 - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE3SURBVFhH7ZaBDQIhDEVvBEdwBDfQDXQER3AD3cARdAPd - QDfSDbQvuSb1AicFjJrwkxcN0FIolOuamv5VE2E+gLaPayWchEcE+hhTXVPhIoQmDcFYbKpoJtwEdX4X - jgIrXfTwnzb6dBw22BaJVdjJmWQs1/SdBRtE0U5cBXW2oSFRO0HtSEeW2FZ1wsq9sjuRdTDVAXnNuWLY - 6JnAl0sYa/Q5q1dhq35ci+Bkq2HJvbZpxGeybAAuw4Fq+cnW1wPITgHFYxvBUw+qHEIL1yq1vDKhVlH3 - NQwF4JkcFRWiUAB7IVW2FFPO3YqlgPd+LJf02e8Fdi3rMdIAcLDuf9UpeT0IS0G/hvhPm305vSl7EQFY - B6zCvozvYGzRM8zEoeg5TPZwDaGvpHQni1yzSxbXPW9q+hF13ROHuJnQcjbhtQAAAABJRU5ErkJggg== - - - - BottomCenter - - - Magenta - - - 97, 53 - - - Restart service - - - ImageAboveText - - - 6, 56 - - - 393, 22 - - - v2rayN (this software) - - - 393, 22 - - - Update v2rayCore - - - 393, 22 - - - Check for updated PAC (need the HTTP proxy are ON) + + Not Enabled Http Proxy 390, 6 - + + 微软雅黑, 8pt + + + 952, 593 + + + 411, 22 + + + tsbCheckClearPACList + + + Test current service status + + + toolSslSocksPort + + + toolStripSeparator10 + + + toolSslHttpPortLab + + + menuMoveBottom + + 393, 22 - - Simplify PAC (need to set Core route) + + 1 - + Magenta - - 128, 53 - - - Check for updates - - - ImageAboveText - - - 6, 56 - - - 187, 22 - - - v2rayN Project - - - 187, 22 - - - V2Ray Website - - - 184, 6 + + menuKeepNothing 187, 22 - - Language-[English] + + menuExport2ServerConfig - - 187, 22 - - - 语言-[中文简体] - - - Magenta - - - 48, 53 - - - Help - - - ImageAboveText - - - Magenta - - - 89, 53 - - - Promotion + + 0 ImageAboveText @@ -940,572 +1376,139 @@ 6, 56 - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAySURBVFhH7c6xDQAgCEVBRnVTHU2ZABuMxV3yOvJDAAA/ - GqfZVG6X8mg1dfUAAPBQxAZd0SJruVXHWwAAAABJRU5ErkJggg== - - - - Magenta - - - 52, 53 - - - Close - - - ImageAboveText - - - 0, 0 - - - 952, 56 - - - 1 - - - tsMain - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 5 - - - True - - - 108 - - - 6, 12 - - - 952, 593 - - - 4, 4, 4, 4 - - - v2rayN - - - menuAddVmessServer - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuAddShadowsocksServer - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuAddSocksServer - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuAddCustomServer - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuAddServers - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuScanScreen - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator1 - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - menuRemoveServer + + Export subscription (base64) share to clipboard - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuRemoveDuplicateServer - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuCopyServer - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuSetDefaultServer - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator3 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuMoveTop - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuMoveUp - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuMoveDown - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuMoveBottom - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuSelectAll - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator9 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuPingServer - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuTcpingServer - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuRealPingServer - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuSpeedServer - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tsbTestMe - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator6 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuExport2ClientConfig - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuExport2ServerConfig - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuExport2ShareUrl - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuExport2SubContent - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tsbServer - - - System.Windows.Forms.ToolStripDropDownButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - notifyMain - - - System.Windows.Forms.NotifyIcon, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuSysAgentMode - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuNotEnabledHttp - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuGlobal - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuGlobalPAC - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuKeep - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuKeepPAC - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuKeepNothing - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuKeepPACNothing - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuServers - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuAddServers2 - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuScanScreen2 - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuCopyPACUrl - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuUpdateSubscriptions - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator2 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuExit - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - bgwScan - - - System.ComponentModel.BackgroundWorker, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolSslSocksPortLab - - - System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolSslSocksPort - - - System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolSslBlank1 - - - System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolSslHttpPortLab - - - System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolSslHttpPort - - - System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolSslBlank2 - - - System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 393, 22 toolSslPacPortLab - - System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolSslPacPort - - - System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolSslBlank3 - - - System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolSslServerSpeed - - - System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolSslBlank4 - - - System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator4 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tsbSub - - - System.Windows.Forms.ToolStripDropDownButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tsbSubSetting - - + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - tsbSubUpdate + + Exit - + + bgwScan + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - tsbQRCodeSwitch + + Scan QR code on the screen - - System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + PAC: - - toolStripSeparator8 + + Close - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 264, 22 - - tsbOptionSetting + + 0, 17 - - System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Only open PAC and do nothing - - toolStripSeparator5 + + Export selected server for client configuration - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + toolStripSeparator2 - - tsbReload + + toolSslSocksPortLab + + + Add a custom configuration server + + + toolSslHttpPort System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - toolStripSeparator7 + + 352, 6 - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 952, 176 - - tsbCheckUpdate + + menuSpeedServer - + System.Windows.Forms.ToolStripDropDownButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - tsbCheckUpdateN + + 0 - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Fill - - tsbCheckUpdateCore + + Copy local PAC URL - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 3, 17 + + + toolStripSeparator3 + + + Vertical + + + 355, 22 + + + 微软雅黑, 8pt + + + 355, 22 + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 tsbCheckUpdatePACList - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator13 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tsbCheckClearPACList - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator10 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tsbHelp - - - System.Windows.Forms.ToolStripDropDownButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tsbAbout - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tsbV2rayWebsite - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator12 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tsbLanguageDef - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tsbLanguageZhHans - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tsbPromotion - - - System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator11 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tsbClose - - - System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menuAddVlessServer - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - MainForm - - - v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - + + 228, 18 + + + zh-Hans + + + True + + + 17, 17 + + + 108 + + + 137, 17 + + + 498, 17 + + + 409, 17 + + + 327, 17 + \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx index 21164412..ff36e4a2 100644 --- a/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx @@ -124,6 +124,12 @@ 添加[VMess]服务器 + + 300, 22 + + + 添加[VLESS]服务器 + 300, 22 @@ -241,6 +247,12 @@ 测试服务器速度(多选) (Ctrl+T) + + 300, 22 + + + 测试当前服务状态 + 297, 6 @@ -275,7 +287,7 @@ 服务器 - 301, 534 + 301, 600 @@ -294,6 +306,15 @@ ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAMAAAADAAAACw== + + 196, 164 + + + 195, 22 + + + Http代理 + 316, 22 @@ -336,12 +357,6 @@ 仅开启PAC,不改变系统代理 - - 195, 22 - - - Http代理 - 195, 22 @@ -381,17 +396,80 @@ 退出 - - 196, 164 - 服务器列表 + + 信息 + 网速显示未启用 - - 信息 + + 61, 53 + + + 订阅 + + + 52, 53 + + + 分享 + + + 76, 53 + + + 参数设置 + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE3SURBVFhH7ZaBDQIhDEVvBEdwBDfQDXQER3AD3cARdAPd + QDfSDbQvuSb1AicFjJrwkxcN0FIolOuamv5VE2E+gLaPayWchEcE+hhTXVPhIoQmDcFYbKpoJtwEdX4X + jgIrXfTwnzb6dBw22BaJVdjJmWQs1/SdBRtE0U5cBXW2oSFRO0HtSEeW2FZ1wsq9sjuRdTDVAXnNuWLY + 6JnAl0sYa/Q5q1dhq35ci+Bkq2HJvbZpxGeybAAuw4Fq+cnW1wPITgHFYxvBUw+qHEIL1yq1vDKhVlH3 + NQwF4JkcFRWiUAB7IVW2FFPO3YqlgPd+LJf02e8Fdi3rMdIAcLDuf9UpeT0IS0G/hvhPm305vSl7EQFY + B6zCvozvYGzRM8zEoeg5TPZwDaGvpHQni1yzSxbXPW9q+hF13ROHuJnQcjbhtQAAAABJRU5ErkJggg== + + + + 76, 53 + + + 重启服务 + + + 85, 53 + + + 检查更新 + + + 69, 53 + + + 帮助 + + + 68, 53 + + + 推广 + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAySURBVFhH7c6xDQAgCEVBRnVTHU2ZABuMxV3yOvJDAAA/ + GqfZVG6X8mg1dfUAAPBQxAZd0SJruVXHWwAAAABJRU5ErkJggg== + + + + 76, 53 + + + 关闭窗口 124, 22 @@ -405,47 +483,6 @@ 更新订阅 - - 61, 53 - - - 订阅 - - - 76, 53 - - - 参数设置 - - - 148, 22 - - - 重启服务 - - - 148, 22 - - - 测试当前服务状态 - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAATdJREFUWEftloENAiEMRW8ER3AEN9ANdARHcAPdwBF0A91AN9INtC+5JvUCJwWM - mvCTFw3QUiiU65qa/lUTYT6Ato9rJZyERwT6GFNdU+EihCYNwVhsqmgm3AR1fheOAitd9PCfNvp0HDbY - FolV2MmZZCzX9J0FG0TRTlwFdbahIVE7Qe1IR5bYVnXCyr2yO5F1MNUBec25YtjomcCXSxhr9DmrV2Gr - flyL4GSrYcm9tmnEZ7JsAC7DgWr5ydbXA8hOAcVjG8FTD6ocQgvXKrW8MqFWUfc1DAXgmRwVFaJQAHsh - VbYUU87diqWA934sl/TZ7wV2Lesx0gBwsO5/1Sl5PQhLQb+G+E+bfTm9KXsRAVgHrMK+jO9gbNEzzMSh - 6DlM9nANoa+kdCeLXLNLFtc9b2r6EXXdE4e4mdByNuG1AAAAAElFTkSuQmCC - - - - 85, 53 - - - 当前服务 - 223, 22 @@ -473,44 +510,10 @@ 简化PAC (请设置Core路由) - - 85, 53 - - - 检查更新 - v2rayN 项目 V2Ray 官网 - - 69, 53 - - - 帮助 - - - 68, 53 - - - 推广 - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAADJJREFUWEftzrENACAIRUFGdVMdTZkAG4zFXfI68kMAAD8ap9lUbpfyaDV19QAA - 8FDEBl3RImu5VcdbAAAAAElFTkSuQmCC - - - - 76, 53 - - - 关闭窗口 - - - 分享 - \ No newline at end of file diff --git a/v2rayN/v2rayN/Global.cs b/v2rayN/v2rayN/Global.cs index 01181dfb..487b307d 100644 --- a/v2rayN/v2rayN/Global.cs +++ b/v2rayN/v2rayN/Global.cs @@ -116,14 +116,26 @@ namespace v2rayN /// public const string vmessProtocol = "vmess://"; /// + /// vmess + /// + public const string vmessProtocolLite = "vmess"; + /// /// shadowsocks /// public const string ssProtocol = "ss://"; /// + /// shadowsocks + /// + public const string ssProtocolLite = "shadowsocks"; + /// /// socks /// public const string socksProtocol = "socks://"; /// + /// socks + /// + public const string socksProtocolLite = "socks"; + /// /// http /// public const string httpProtocol = "http://"; @@ -131,6 +143,14 @@ namespace v2rayN /// https /// public const string httpsProtocol = "https://"; + /// + /// vless + /// + public const string vlessProtocol = "vless://"; + /// + /// vless + /// + public const string vlessProtocolLite = "vless"; /// /// pac diff --git a/v2rayN/v2rayN/Handler/ConfigHandler.cs b/v2rayN/v2rayN/Handler/ConfigHandler.cs index fefad821..aeb94abb 100644 --- a/v2rayN/v2rayN/Handler/ConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/ConfigHandler.cs @@ -960,5 +960,56 @@ namespace v2rayN.Handler ToJsonFile(config); return 0; } + + /// + /// 添加服务器或编辑 + /// + /// + /// + /// + /// + public static int AddVlessServer(ref Config config, VmessItem vmessItem, int index) + { + vmessItem.configVersion = 2; + vmessItem.configType = (int)EConfigType.Vless; + + vmessItem.address = vmessItem.address.TrimEx(); + vmessItem.id = vmessItem.id.TrimEx(); + vmessItem.security = vmessItem.security.TrimEx(); + vmessItem.network = vmessItem.network.TrimEx(); + vmessItem.headerType = vmessItem.headerType.TrimEx(); + vmessItem.requestHost = vmessItem.requestHost.TrimEx(); + vmessItem.path = vmessItem.path.TrimEx(); + vmessItem.streamSecurity = vmessItem.streamSecurity.TrimEx(); + + if (index >= 0) + { + //修改 + config.vmess[index] = vmessItem; + if (config.index.Equals(index)) + { + Global.reloadV2ray = true; + } + } + else + { + //添加 + if (Utils.IsNullOrEmpty(vmessItem.allowInsecure)) + { + vmessItem.allowInsecure = config.defAllowInsecure.ToString(); + } + config.vmess.Add(vmessItem); + if (config.vmess.Count == 1) + { + config.index = 0; + Global.reloadV2ray = true; + } + } + + ToJsonFile(config); + + return 0; + } + } } diff --git a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs index 127f2b7a..888fe0b5 100644 --- a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs @@ -370,7 +370,7 @@ namespace v2rayN.Handler StreamSettings streamSettings = outbound.streamSettings; boundStreamSettings(config, "out", ref streamSettings); - outbound.protocol = "vmess"; + outbound.protocol = Global.vmessProtocolLite; outbound.settings.servers = null; } else if (config.configType() == (int)EConfigType.Shadowsocks) @@ -398,7 +398,7 @@ namespace v2rayN.Handler outbound.mux.concurrency = -1; - outbound.protocol = "shadowsocks"; + outbound.protocol = Global.ssProtocolLite; outbound.settings.vnext = null; } else if (config.configType() == (int)EConfigType.Socks) @@ -435,9 +435,51 @@ namespace v2rayN.Handler outbound.mux.enabled = false; outbound.mux.concurrency = -1; - outbound.protocol = "socks"; + outbound.protocol = Global.socksProtocolLite; outbound.settings.vnext = null; } + else if (config.configType() == (int)EConfigType.Vless) + { + VnextItem vnextItem; + if (outbound.settings.vnext.Count <= 0) + { + vnextItem = new VnextItem(); + outbound.settings.vnext.Add(vnextItem); + } + else + { + vnextItem = outbound.settings.vnext[0]; + } + //远程服务器地址和端口 + vnextItem.address = config.address(); + vnextItem.port = config.port(); + + UsersItem usersItem; + if (vnextItem.users.Count <= 0) + { + usersItem = new UsersItem(); + vnextItem.users.Add(usersItem); + } + else + { + usersItem = vnextItem.users[0]; + } + //远程服务器用户ID + usersItem.id = config.id(); + usersItem.email = Global.userEMail; + usersItem.encryption = config.security(); + + //Mux + outbound.mux.enabled = config.muxEnabled; + outbound.mux.concurrency = config.muxEnabled ? 8 : -1; + + //远程服务器底层传输配置 + StreamSettings streamSettings = outbound.streamSettings; + boundStreamSettings(config, "out", ref streamSettings); + + outbound.protocol = Global.vlessProtocolLite; + outbound.settings.servers = null; + } } catch { @@ -922,7 +964,7 @@ namespace v2rayN.Handler Outbounds outbound = v2rayConfig.outbounds[0]; if (outbound == null || Utils.IsNullOrEmpty(outbound.protocol) - || outbound.protocol != "vmess" + || outbound.protocol != Global.vmessProtocolLite || outbound.settings == null || outbound.settings.vnext == null || outbound.settings.vnext.Count <= 0 @@ -1068,7 +1110,7 @@ namespace v2rayN.Handler Inbounds inbound = v2rayConfig.inbounds[0]; if (inbound == null || Utils.IsNullOrEmpty(inbound.protocol) - || inbound.protocol != "vmess" + || inbound.protocol != Global.vmessProtocolLite || inbound.settings == null || inbound.settings.clients == null || inbound.settings.clients.Count <= 0) diff --git a/v2rayN/v2rayN/Mode/Config.cs b/v2rayN/v2rayN/Mode/Config.cs index 3c8bf76b..8c656a3e 100644 --- a/v2rayN/v2rayN/Mode/Config.cs +++ b/v2rayN/v2rayN/Mode/Config.cs @@ -422,6 +422,10 @@ namespace v2rayN.Mode { summary += string.Format("{0}({1}:{2})", remarks, addr, port); } + if (configType == (int)EConfigType.Vless) + { + summary += string.Format("{0}({1}:{2})", remarks, addr, port); + } else { summary += string.Format("{0}", remarks); diff --git a/v2rayN/v2rayN/Properties/AssemblyInfo.cs b/v2rayN/v2rayN/Properties/AssemblyInfo.cs index 97197c1b..de099cbc 100644 --- a/v2rayN/v2rayN/Properties/AssemblyInfo.cs +++ b/v2rayN/v2rayN/Properties/AssemblyInfo.cs @@ -32,4 +32,4 @@ using System.Runtime.InteropServices; // 方法是按如下所示使用“*”: //[assembly: AssemblyVersion("1.0.*")] //[assembly: AssemblyVersion("1.0.0")] -[assembly: AssemblyFileVersion("3.19")] +[assembly: AssemblyFileVersion("3.20")] From 57299cf18253d2f4f75e41e9ee3565d7cf2195b4 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Sat, 8 Aug 2020 13:43:26 +0800 Subject: [PATCH 14/17] up vless 3 --- v2rayN/v2rayN/Forms/MainForm.cs | 2 +- v2rayN/v2rayN/Handler/ConfigHandler.cs | 2 +- v2rayN/v2rayN/Handler/MainFormHandler.cs | 6 ++++-- v2rayN/v2rayN/Handler/V2rayConfigHandler.cs | 17 +++++++++++++++-- v2rayN/v2rayN/Mode/Config.cs | 2 +- v2rayN/v2rayN/Mode/EConfigType.cs | 2 +- 6 files changed, 23 insertions(+), 8 deletions(-) diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index be5fe009..bfbbc40f 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -513,7 +513,7 @@ namespace v2rayN.Forms LoadV2ray(); } } - else if (config.vmess[index].configType == (int)EConfigType.Vless) + else if (config.vmess[index].configType == (int)EConfigType.VLESS) { AddServer5Form fm = new AddServer5Form { diff --git a/v2rayN/v2rayN/Handler/ConfigHandler.cs b/v2rayN/v2rayN/Handler/ConfigHandler.cs index aeb94abb..d8a1a7f0 100644 --- a/v2rayN/v2rayN/Handler/ConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/ConfigHandler.cs @@ -971,7 +971,7 @@ namespace v2rayN.Handler public static int AddVlessServer(ref Config config, VmessItem vmessItem, int index) { vmessItem.configVersion = 2; - vmessItem.configType = (int)EConfigType.Vless; + vmessItem.configType = (int)EConfigType.VLESS; vmessItem.address = vmessItem.address.TrimEx(); vmessItem.id = vmessItem.id.TrimEx(); diff --git a/v2rayN/v2rayN/Handler/MainFormHandler.cs b/v2rayN/v2rayN/Handler/MainFormHandler.cs index 83865d92..419ba374 100644 --- a/v2rayN/v2rayN/Handler/MainFormHandler.cs +++ b/v2rayN/v2rayN/Handler/MainFormHandler.cs @@ -72,7 +72,8 @@ namespace v2rayN.Handler { return; } - if (config.vmess[index].configType != (int)EConfigType.Vmess) + if (config.vmess[index].configType != (int)EConfigType.Vmess + && config.vmess[index].configType != (int)EConfigType.VLESS) { UI.Show(UIRes.I18N("NonVmessService")); return; @@ -112,7 +113,8 @@ namespace v2rayN.Handler { return; } - if (config.vmess[index].configType != (int)EConfigType.Vmess) + if (config.vmess[index].configType != (int)EConfigType.Vmess + && config.vmess[index].configType != (int)EConfigType.VLESS) { UI.Show(UIRes.I18N("NonVmessService")); return; diff --git a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs index 888fe0b5..535cb887 100644 --- a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs @@ -438,7 +438,7 @@ namespace v2rayN.Handler outbound.protocol = Global.socksProtocolLite; outbound.settings.vnext = null; } - else if (config.configType() == (int)EConfigType.Vless) + else if (config.configType() == (int)EConfigType.VLESS) { VnextItem vnextItem; if (outbound.settings.vnext.Count <= 0) @@ -466,6 +466,7 @@ namespace v2rayN.Handler } //远程服务器用户ID usersItem.id = config.id(); + usersItem.alterId = 0; usersItem.email = Global.userEMail; usersItem.encryption = config.security(); @@ -888,9 +889,21 @@ namespace v2rayN.Handler //远程服务器用户ID usersItem.id = config.id(); - usersItem.alterId = config.alterId(); usersItem.email = Global.userEMail; + if (config.configType() == (int)EConfigType.Vmess) + { + inbound.protocol = Global.vmessProtocolLite; + usersItem.alterId = config.alterId(); + + } + else if (config.configType() == (int)EConfigType.VLESS) + { + inbound.protocol = Global.vlessProtocolLite; + usersItem.alterId = 0; + inbound.settings.decryption = config.security(); + } + //远程服务器底层传输配置 StreamSettings streamSettings = inbound.streamSettings; boundStreamSettings(config, "in", ref streamSettings); diff --git a/v2rayN/v2rayN/Mode/Config.cs b/v2rayN/v2rayN/Mode/Config.cs index 8c656a3e..d2450fd2 100644 --- a/v2rayN/v2rayN/Mode/Config.cs +++ b/v2rayN/v2rayN/Mode/Config.cs @@ -422,7 +422,7 @@ namespace v2rayN.Mode { summary += string.Format("{0}({1}:{2})", remarks, addr, port); } - if (configType == (int)EConfigType.Vless) + if (configType == (int)EConfigType.VLESS) { summary += string.Format("{0}({1}:{2})", remarks, addr, port); } diff --git a/v2rayN/v2rayN/Mode/EConfigType.cs b/v2rayN/v2rayN/Mode/EConfigType.cs index 2d7ab219..13381ea5 100644 --- a/v2rayN/v2rayN/Mode/EConfigType.cs +++ b/v2rayN/v2rayN/Mode/EConfigType.cs @@ -7,6 +7,6 @@ namespace v2rayN.Mode Custom = 2, Shadowsocks = 3, Socks = 4, - Vless = 5 + VLESS = 5 } } From 478521d6d989e179a8fd514eb8bad6f9156b42d1 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Sat, 8 Aug 2020 13:47:19 +0800 Subject: [PATCH 15/17] Update AssemblyInfo.cs --- v2rayN/v2rayN/Properties/AssemblyInfo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v2rayN/v2rayN/Properties/AssemblyInfo.cs b/v2rayN/v2rayN/Properties/AssemblyInfo.cs index de099cbc..2e8c5a95 100644 --- a/v2rayN/v2rayN/Properties/AssemblyInfo.cs +++ b/v2rayN/v2rayN/Properties/AssemblyInfo.cs @@ -32,4 +32,4 @@ using System.Runtime.InteropServices; // 方法是按如下所示使用“*”: //[assembly: AssemblyVersion("1.0.*")] //[assembly: AssemblyVersion("1.0.0")] -[assembly: AssemblyFileVersion("3.20")] +[assembly: AssemblyFileVersion("3.21")] From 76e67693fa27d5efaabc7f192b276a581db93193 Mon Sep 17 00:00:00 2001 From: RPRX <63339210+rprx@users.noreply.github.com> Date: Sat, 8 Aug 2020 08:10:23 +0000 Subject: [PATCH 16/17] =?UTF-8?q?=E5=8A=A0=E5=AF=86=E6=96=B9=E5=BC=8F(decr?= =?UTF-8?q?yption)=20->=20=E5=8A=A0=E5=AF=86(encryption)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx b/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx index b5001a79..e518fc44 100644 --- a/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx @@ -149,10 +149,10 @@ 别名(remarks) - 125, 12 + 107, 12 - 加密方式(decryption) + 加密(encryption) 65, 12 @@ -299,4 +299,4 @@ 编辑或添加[VLESS]服务器 - \ No newline at end of file + From c0430536a6a05bd6599aebc8e00972201b4386ee Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Sat, 8 Aug 2020 17:07:23 +0800 Subject: [PATCH 17/17] up vless 4 --- .../v2rayN/Forms/AddServer5Form.Designer.cs | 32 +- v2rayN/v2rayN/Forms/AddServer5Form.resx | 2107 ++++++++--------- .../v2rayN/Forms/AddServer5Form.zh-Hans.resx | 92 +- 3 files changed, 1114 insertions(+), 1117 deletions(-) diff --git a/v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs b/v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs index f290e0d9..2a58add6 100644 --- a/v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs +++ b/v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs @@ -85,15 +85,14 @@ // // btnClose // - resources.ApplyResources(this.btnClose, "btnClose"); this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + resources.ApplyResources(this.btnClose, "btnClose"); this.btnClose.Name = "btnClose"; this.btnClose.UseVisualStyleBackColor = true; this.btnClose.Click += new System.EventHandler(this.btnClose_Click); // // groupBox1 // - resources.ApplyResources(this.groupBox1, "groupBox1"); this.groupBox1.Controls.Add(this.btnGUID); this.groupBox1.Controls.Add(this.label13); this.groupBox1.Controls.Add(this.groupBox2); @@ -108,6 +107,7 @@ this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.txtAddress); this.groupBox1.Controls.Add(this.label1); + resources.ApplyResources(this.groupBox1, "groupBox1"); this.groupBox1.Name = "groupBox1"; this.groupBox1.TabStop = false; // @@ -125,7 +125,6 @@ // // groupBox2 // - resources.ApplyResources(this.groupBox2, "groupBox2"); this.groupBox2.Controls.Add(this.label24); this.groupBox2.Controls.Add(this.label23); this.groupBox2.Controls.Add(this.panTlsMore); @@ -146,6 +145,7 @@ this.groupBox2.Controls.Add(this.label11); this.groupBox2.Controls.Add(this.label10); this.groupBox2.Controls.Add(this.cmbHeaderType); + resources.ApplyResources(this.groupBox2, "groupBox2"); this.groupBox2.Name = "groupBox2"; this.groupBox2.TabStop = false; // @@ -161,9 +161,9 @@ // // panTlsMore // - resources.ApplyResources(this.panTlsMore, "panTlsMore"); this.panTlsMore.Controls.Add(this.label21); this.panTlsMore.Controls.Add(this.cmbAllowInsecure); + resources.ApplyResources(this.panTlsMore, "panTlsMore"); this.panTlsMore.Name = "panTlsMore"; // // label21 @@ -173,13 +173,13 @@ // // cmbAllowInsecure // - resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure"); this.cmbAllowInsecure.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbAllowInsecure.FormattingEnabled = true; this.cmbAllowInsecure.Items.AddRange(new object[] { resources.GetString("cmbAllowInsecure.Items"), resources.GetString("cmbAllowInsecure.Items1"), resources.GetString("cmbAllowInsecure.Items2")}); + resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure"); this.cmbAllowInsecure.Name = "cmbAllowInsecure"; // // label9 @@ -199,7 +199,6 @@ // // cmbNetwork // - resources.ApplyResources(this.cmbNetwork, "cmbNetwork"); this.cmbNetwork.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbNetwork.FormattingEnabled = true; this.cmbNetwork.Items.AddRange(new object[] { @@ -208,6 +207,7 @@ resources.GetString("cmbNetwork.Items2"), resources.GetString("cmbNetwork.Items3"), resources.GetString("cmbNetwork.Items4")}); + resources.ApplyResources(this.cmbNetwork, "cmbNetwork"); this.cmbNetwork.Name = "cmbNetwork"; this.cmbNetwork.SelectedIndexChanged += new System.EventHandler(this.cmbNetwork_SelectedIndexChanged); // @@ -248,12 +248,12 @@ // // cmbStreamSecurity // - resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity"); this.cmbStreamSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbStreamSecurity.FormattingEnabled = true; this.cmbStreamSecurity.Items.AddRange(new object[] { resources.GetString("cmbStreamSecurity.Items"), resources.GetString("cmbStreamSecurity.Items1")}); + resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity"); this.cmbStreamSecurity.Name = "cmbStreamSecurity"; this.cmbStreamSecurity.SelectedIndexChanged += new System.EventHandler(this.cmbStreamSecurity_SelectedIndexChanged); // @@ -279,7 +279,6 @@ // // cmbHeaderType // - resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType"); this.cmbHeaderType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbHeaderType.FormattingEnabled = true; this.cmbHeaderType.Items.AddRange(new object[] { @@ -290,6 +289,7 @@ resources.GetString("cmbHeaderType.Items4"), resources.GetString("cmbHeaderType.Items5"), resources.GetString("cmbHeaderType.Items6")}); + resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType"); this.cmbHeaderType.Name = "cmbHeaderType"; // // label8 @@ -299,11 +299,11 @@ // // cmbSecurity // - resources.ApplyResources(this.cmbSecurity, "cmbSecurity"); this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.Simple; this.cmbSecurity.FormattingEnabled = true; this.cmbSecurity.Items.AddRange(new object[] { resources.GetString("cmbSecurity.Items")}); + resources.ApplyResources(this.cmbSecurity, "cmbSecurity"); this.cmbSecurity.Name = "cmbSecurity"; // // txtRemarks @@ -353,9 +353,9 @@ // // panel2 // - resources.ApplyResources(this.panel2, "panel2"); this.panel2.Controls.Add(this.btnClose); this.panel2.Controls.Add(this.btnOK); + resources.ApplyResources(this.panel2, "panel2"); this.panel2.Name = "panel2"; // // btnOK @@ -372,42 +372,42 @@ // // menuServer // - resources.ApplyResources(this.menuServer, "menuServer"); this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.MenuItem1}); + resources.ApplyResources(this.menuServer, "menuServer"); this.menuServer.Name = "menuServer"; // // MenuItem1 // - resources.ApplyResources(this.MenuItem1, "MenuItem1"); this.MenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.MenuItemImportClient, this.MenuItemImportServer, this.toolStripSeparator1, this.MenuItemImportClipboard}); this.MenuItem1.Name = "MenuItem1"; + resources.ApplyResources(this.MenuItem1, "MenuItem1"); // // MenuItemImportClient // - resources.ApplyResources(this.MenuItemImportClient, "MenuItemImportClient"); this.MenuItemImportClient.Name = "MenuItemImportClient"; + resources.ApplyResources(this.MenuItemImportClient, "MenuItemImportClient"); this.MenuItemImportClient.Click += new System.EventHandler(this.MenuItemImportClient_Click); // // MenuItemImportServer // - resources.ApplyResources(this.MenuItemImportServer, "MenuItemImportServer"); this.MenuItemImportServer.Name = "MenuItemImportServer"; + resources.ApplyResources(this.MenuItemImportServer, "MenuItemImportServer"); this.MenuItemImportServer.Click += new System.EventHandler(this.MenuItemImportServer_Click); // // toolStripSeparator1 // - resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1"); this.toolStripSeparator1.Name = "toolStripSeparator1"; + resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1"); // // MenuItemImportClipboard // - resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard"); this.MenuItemImportClipboard.Name = "MenuItemImportClipboard"; + resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard"); this.MenuItemImportClipboard.Click += new System.EventHandler(this.MenuItemImportClipboard_Click); // // AddServer5Form diff --git a/v2rayN/v2rayN/Forms/AddServer5Form.resx b/v2rayN/v2rayN/Forms/AddServer5Form.resx index 154a4a9c..9bc18f5d 100644 --- a/v2rayN/v2rayN/Forms/AddServer5Form.resx +++ b/v2rayN/v2rayN/Forms/AddServer5Form.resx @@ -117,1195 +117,1192 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 4 - - - 113, 12 + + 396, 17 - - 285, 179 - - - 124, 62 - - - 6 - - - Path - - - 83, 12 - - - Transport protocol(network) - - - 7 - - - groupBox1 - - - 1 - - - label15 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - cmbStreamSecurity - - - 3)h2 host Separated by commas (,) - - - none - - - - Top - - - - 3 - - - 17 - - - false - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 19 - - - True - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 6 - - - 21 - - - 411, 83 - - - Address - - - groupBox1 - - + 75, 23 - - 59, 12 - - - 1)ws path - - - 19 - - - True - - - 26 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - txtId - - - True - - - 729, 499 - - - - - - 12, 89 - - - groupBox2 - - - tls - - - True - - - 299, 12 - - - cmbAllowInsecure - - - 127, 85 - - - 16 - - - 12, 179 + + + 4 &Cancel - - label10 - - - 723, 281 - - - 5 - - - label21 - - - 359, 21 - - - System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Edit or add a [VLESS] server - - - 143, 12 - - - groupBox2 - - - toolStripSeparator1 - - - NoControl - - - 21 - - - label11 - - - 5 - - - 158, 90 - - - 2 - - - 29, 12 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 237, 22 - - - 12 - - - 3)QUIC key - - - 127, 56 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - txtPort - - - 2 - - - groupBox2 - - - Bottom - - - True - - - 127, 175 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True + + btnClose System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 29, 12 + + panel2 - - True + + 0 - - ws + + 411, 83 - - 729, 60 + + 75, 23 - - 9, 66 - - - 13 - - - Import server configuration - - - 6, 12 - - - 1 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 15 - - - label17 - - - panel1 - - - label14 - - - groupBox2 - - - 5 - - - 215, 12 - - - 0, 0 - - - 396, 17 - - - 338, 35 - - - 12, 60 - - - MenuItemImportClient - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 23 &Generate - - Encryption method (encryption) + + btnGUID - - txtRemarks + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - - - groupBox2 - - - true - - - panTlsMore - - - True - - - cmbNetwork - - - 284, 234 - - - 95, 12 - - - NoControl - - - 350, 32 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + groupBox1 - - True - - - 24 - - - 127, 27 - - - label12 - - - 729, 594 - - - True - - - 282, 66 - - - 12 - - - *tcp or kcp or QUIC camouflage type, default none - - - 25 - - - label23 - - - allowInsecure - - - 143, 20 - - - $this - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 33 - - - 6 - - - 0 - - - 47, 12 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - label8 - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - label13 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 0 + + True + + + 285, 179 + + + 113, 12 + + + 22 + + + * Fill in manually + + + label13 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 1 + + + True + + + + NoControl + + + 526, 197 + + + 65, 12 + 35 - - 13 + + 3)QUIC key - - 9 + + label24 - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 11 - - - True - - - 469, 85 - - - label9 - - - label20 - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - label18 - - - MenuItem1 - - - label1 - - - 13 - - - label7 - - - 22 - - - 143, 20 - - - groupBox2 - - - groupBox2 - - - btnClose - - + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - label19 + + groupBox2 - - 143, 21 + + 0 - - 95, 12 + + True - - groupBox1 + + NoControl - - 0, 35 + + 470, 131 - - panTlsMore + + 89, 12 34 - + + 4)QUIC securty + + + label23 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 1 + + True - + + 12, 11 + + + 83, 12 + + + 31 + + + allowInsecure + + + label21 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panTlsMore + + + 0 + + + + + + true + + + false + + + 107, 7 + + + 91, 20 + + + 30 + + + cmbAllowInsecure + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panTlsMore + + + 1 + + + 284, 234 + + + 338, 35 + + + 33 + + + panTlsMore + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 2 + + + True + + + 350, 32 + + + 113, 12 + + + 15 + + + *Default value tcp + + + label9 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 3 + + True 469, 115 - - quic + + 203, 12 - + + 29 + + + 3)h2 host Separated by commas (,) + + + label20 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + groupBox2 - - h2 + + 4 - - kcp - - - 7 - - - 143, 21 - - - 526, 162 - - - 18 - - - 12, 147 - - - 18 - - - groupBox1 - - - label2 - - - groupBox2 - - - 234, 6 - - - groupBox2 - - - 119, 12 + + 124, 157 True - + + 396, 54 + + + 28 + + + txtPath + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 5 + + + tcp + + + kcp + + + ws + + + h2 + + + quic + + + 192, 28 + + + 143, 20 + + + 12 + + + cmbNetwork + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 6 + + True - - Bottom + + 9, 32 - - 91, 20 + + 167, 12 + + + 13 + + + Transport protocol(network) + + + label7 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 7 + + + True + + + 9, 157 + + + 29, 12 27 + + Path + + + label19 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 8 + + + True + + + 526, 179 + + + 59, 12 + + + 26 + + + 2)h2 path + + + label18 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 9 + + + True + + + 469, 100 + + + 59, 12 + + + 25 + + + 2)ws host + + + label17 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 10 + + + True + + + 526, 162 + + + 59, 12 + + + 24 + + + 1)ws path + + + label16 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 11 + + + True + + + 469, 85 + + + 215, 12 + + + 23 + + + 1)http host Separated by commas (,) + + + label14 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 12 + + + True + + + 9, 246 + + + 23, 12 + + + 22 + + + TLS + + + label15 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 13 + + + + + + tls + + + 124, 242 + + + 143, 20 + + + 21 + + + cmbStreamSecurity + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + groupBox2 + + 14 + + + True + + + 282, 66 + + + 299, 12 + + + 20 + + + *tcp or kcp or QUIC camouflage type, default none + + + label12 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 15 + + + 158, 90 + + + True + + + 300, 53 + + + 16 + + + txtRequestHost + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 16 + + + True + + + 9, 66 + + + 95, 12 + + + 19 + + + Camouflage type + + + label11 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + 17 - - Port + + True - + + 9, 94 + + + 143, 12 + + + 17 + + + Camouflage domain(host) + + + label10 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + groupBox2 - - Fill + + 18 - - 10 + + none - + + http + + + srtp + + + utp + + + wechat-video + + + dtls + + + wireguard + + + 124, 62 + + + 143, 20 + + + 18 + + + cmbHeaderType + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 19 + + + Bottom + + + 3, 215 + + + 723, 281 + + + 21 + + + Transport + + groupBox2 System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - groupBox1 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 0 - - - 75, 23 - - - 4 - - - True - - - 11 - - - groupBox1 - - - 8 - - - *Recommended (none) - - - 195, 143 - - - 4 - groupBox1 - - panel2 - - - 143, 20 - - - 23 - - - 1 - - - 10 - - - groupBox2 - - - 14 - - - True - - - 3, 215 - - - Import configuration file - - - wechat-video - - - 9, 32 - - - btnOK - - - 729, 10 - - - 107, 7 - - - 470, 131 - - - True - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 22 - - - 300, 53 - - - 12, 31 - - - 14 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - dtls - - - MenuItemImportServer - - - groupBox2 - - - panel2 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 0, 534 - - - groupBox1 - - - AddServer5Form - - - wireguard - - - groupBox1 - - - Server - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 303, 17 - - - 2)ws host - - - 6 - - - True - - - 2)h2 path - - - True - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 167, 12 - - - 8 - - - Transport - - - groupBox2 - - - * Fill in manually - - - 9, 157 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 396, 54 - - - True - - - 89, 12 - - - 29 - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 1 - - - True - - - txtPath - - - 162, 21 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - txtRequestHost - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Alias (remarks) - - - 124, 157 - - - 4 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - &OK - - - 7 - - - 3 - - - http - - - 526, 179 - - - 9 - - - groupBox2 - - - Camouflage type - - - menuServer - - - 20 - - - TLS - - - 1 - - - 3 - - - UUID(id) - - - $this - - - MenuItemImportClipboard - - - $this - - - 3 - - - groupBox1 - - - 237, 22 - - - 143, 20 - - - panTlsMore - - - 8 - - - 15 - - - 0 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 113, 12 - - - 11 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 192, 28 - - - 203, 12 - - - utp - - - txtAddress - - - 30 - - - 12 - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 23 - - - 8 - - - groupBox1 - - + 2 - - 9, 94 - - - label3 - - - srtp - - - 5 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Import URL from clipboard - - - 469, 100 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Camouflage domain(host) - - - 185, 12 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 0 - - + True - - *Default value tcp - - - 31 - - - 124, 242 - - - 9, 246 - 353, 147 - - none + + 119, 12 - + + 14 + + + *Recommended (none) + + + label8 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - groupBox1 - - - label5 - - - 3 - - - label16 - groupBox1 - - 237, 22 + + 3 - - 16 + + none - - 1 + + 161, 143 - - 28 + + 177, 20 - - - - - groupBox2 - - - Import client configuration - - - 4)QUIC securty - - - 0, 25 + + 6 cmbSecurity - - tcp - - - groupBox2 - - - btnGUID - - - 75, 23 - - - 23, 12 - - + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + groupBox1 - - 12, 11 + + 4 - - 0 + + 127, 175 - - groupBox2 + + 143, 21 - - 278, 21 + + 11 - - 1)http host Separated by commas (,) + + txtRemarks - - label24 + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 59, 12 + + groupBox1 - - panel2 + + 5 - - 65, 12 - - - groupBox2 - - - $this - - + True - - label6 + + 12, 179 - - 59, 12 + + 95, 12 10 - - 729, 25 + + Alias (remarks) - - cmbHeaderType + + label6 - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 526, 197 + + groupBox1 - - 2 + + 6 + + + True + + + 12, 147 + + + 137, 12 + + + 8 + + + Encryption(encryption) + + + label5 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 7 + + + 127, 85 + + + 278, 21 + + + 5 + + + txtId + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 8 + + + True + + + 12, 89 53, 12 - + + 4 + + + UUID(id) + + + label3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 9 + + + 127, 56 + + + 143, 21 + + + 3 + + + txtPort + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 10 + + True - - - zh-Hans - + + + 12, 60 + + + 29, 12 + + + 2 + + + Port + + + label2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 11 + + + 127, 27 + + + 359, 21 + + + 1 + + + txtAddress + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 12 + + + True + + + 12, 31 + + + 47, 12 + + + 0 + + + Address + + + label1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 13 + + + Fill + + + 0, 35 + + + 729, 499 + + + 3 + + + Server + + + groupBox1 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + 303, 17 + + + 75, 23 + + + 5 + + + &OK + + + btnOK + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel2 + + + 1 + + + Bottom + + + 0, 534 + + + 729, 60 + + + 7 + + + panel2 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + Top + + + 0, 25 + + + 729, 10 + + + 6 + + + panel1 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + 17, 17 + + 237, 22 + + + Import client configuration + + + 237, 22 + + + Import server configuration + + + 234, 6 + + + 237, 22 + + + Import URL from clipboard + + + 162, 21 + + + Import configuration file + + + 0, 0 + + + 729, 25 + + + 8 + + + menuServer + + + System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 3 + + + True + + + 6, 12 + + + 729, 594 + + + Edit or add a [VLESS] server + + + MenuItem1 + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + MenuItemImportClient + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + MenuItemImportServer + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator1 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + MenuItemImportClipboard + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + AddServer5Form + + + v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx b/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx index e518fc44..197b5506 100644 --- a/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx @@ -120,6 +120,9 @@ 取消(&C) + + 服务器 + 生成(&G) @@ -130,51 +133,6 @@ 底层传输方式(transport) - - 71, 12 - - - *非空(none) - - - 143, 143 - - - 195, 20 - - - 83, 12 - - - 别名(remarks) - - - 107, 12 - - - 加密(encryption) - - - 65, 12 - - - 用户ID(id) - - - 65, 12 - - - 端口(port) - - - 83, 12 - - - 地址(address) - - - 服务器 - 95, 12 @@ -262,6 +220,48 @@ 伪装域名(host) + + 71, 12 + + + *非空(none) + + + 127, 143 + + + 220, 20 + + + 83, 12 + + + 别名(remarks) + + + 101, 12 + + + 加密(encryption) + + + 65, 12 + + + 用户ID(id) + + + 65, 12 + + + 端口(port) + + + 83, 12 + + + 地址(address) + 确定(&O) @@ -299,4 +299,4 @@ 编辑或添加[VLESS]服务器 - + \ No newline at end of file