diff --git a/v2rayN/v2rayN/Forms/MainForm.Designer.cs b/v2rayN/v2rayN/Forms/MainForm.Designer.cs index 0b5d0a6f..31002523 100644 --- a/v2rayN/v2rayN/Forms/MainForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/MainForm.Designer.cs @@ -72,6 +72,8 @@ this.menuKeepPAC = new System.Windows.Forms.ToolStripMenuItem(); this.menuKeepNothing = new System.Windows.Forms.ToolStripMenuItem(); this.menuKeepPACNothing = new System.Windows.Forms.ToolStripMenuItem(); + this.menuClearAndKeepNothing = new System.Windows.Forms.ToolStripMenuItem(); + this.menuClearAndKeepPACNothing = new System.Windows.Forms.ToolStripMenuItem(); this.menuServers = new System.Windows.Forms.ToolStripMenuItem(); this.menuAddServers2 = new System.Windows.Forms.ToolStripMenuItem(); this.menuScanScreen2 = new System.Windows.Forms.ToolStripMenuItem(); @@ -411,7 +413,9 @@ this.menuKeep, this.menuKeepPAC, this.menuKeepNothing, - this.menuKeepPACNothing}); + this.menuKeepPACNothing, + this.menuClearAndKeepNothing, + this.menuClearAndKeepPACNothing}); this.menuSysAgentMode.Name = "menuSysAgentMode"; // // menuNotEnabledHttp @@ -456,6 +460,18 @@ this.menuKeepPACNothing.Name = "menuKeepPACNothing"; this.menuKeepPACNothing.Click += new System.EventHandler(this.menuKeepPACNothing_Click); // + // menuClearAndKeepNothing + // + resources.ApplyResources(this.menuClearAndKeepNothing, "menuClearAndKeepNothing"); + this.menuClearAndKeepNothing.Name = "menuClearAndKeepNothing"; + this.menuClearAndKeepNothing.Click += new System.EventHandler(this.MenuClearAndKeepNothing_Click); + // + // menuClearAndKeepPACNothing + // + resources.ApplyResources(this.menuClearAndKeepPACNothing, "menuClearAndKeepPACNothing"); + this.menuClearAndKeepPACNothing.Name = "menuClearAndKeepPACNothing"; + this.menuClearAndKeepPACNothing.Click += new System.EventHandler(this.MenuClearAndKeepPACNothing_Click); + // // menuServers // resources.ApplyResources(this.menuServers, "menuServers"); @@ -933,6 +949,8 @@ private System.Windows.Forms.ToolStripDropDownButton tsbService; private System.Windows.Forms.ToolStripMenuItem tsbReload; private System.Windows.Forms.ToolStripMenuItem tsbTestMe; + private System.Windows.Forms.ToolStripMenuItem menuClearAndKeepNothing; + private System.Windows.Forms.ToolStripMenuItem menuClearAndKeepPACNothing; } } diff --git a/v2rayN/v2rayN/Forms/MainForm.cs b/v2rayN/v2rayN/Forms/MainForm.cs index f8a12cb8..d4291c8b 100644 --- a/v2rayN/v2rayN/Forms/MainForm.cs +++ b/v2rayN/v2rayN/Forms/MainForm.cs @@ -1161,6 +1161,16 @@ namespace v2rayN.Forms { SetListenerType(ListenerType.PacOpenOnly); } + private void MenuClearAndKeepNothing_Click(object sender, EventArgs e) + { + SysProxyHandle.ResetIEProxy(); + SetListenerType(ListenerType.HttpOpenAndClearOnce); + } + private void MenuClearAndKeepPACNothing_Click(object sender, EventArgs e) + { + SysProxyHandle.ResetIEProxy(); + SetListenerType(ListenerType.PacOpenAndClearOnce); + } private void SetListenerType(ListenerType type) { config.listenerType = type; diff --git a/v2rayN/v2rayN/Forms/MainForm.resx b/v2rayN/v2rayN/Forms/MainForm.resx index a634be9b..3edbc017 100644 --- a/v2rayN/v2rayN/Forms/MainForm.resx +++ b/v2rayN/v2rayN/Forms/MainForm.resx @@ -321,6 +321,12 @@ 411, 22 + + 411, 22 + + + 411, 22 + 355, 22 @@ -608,6 +614,12 @@ 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.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 @@ -1024,6 +1036,12 @@ menuKeepPACNothing + + menuClearAndKeepNothing + + + menuClearAndKeepPACNothing + Check for updated PAC (need the HTTP proxy are ON) @@ -1099,6 +1117,12 @@ Only open PAC and do nothing + + Only open Http proxy and clear the proxy settings once + + + Only open PAC and clear the proxy settings once + 355, 22 diff --git a/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx index 11f388c1..80b198d7 100644 --- a/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx @@ -336,6 +336,18 @@ 仅开启PAC,不改变系统代理 + + 316, 22 + + + 仅开启Http代理,并清除系统代理一次 + + + 316, 22 + + + 仅开启PAC,并清除系统代理一次 + 195, 22 diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs b/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs index 797915f1..4d9c7130 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs @@ -186,7 +186,9 @@ resources.GetString("cmblistenerType.Items3"), resources.GetString("cmblistenerType.Items4"), resources.GetString("cmblistenerType.Items5"), - resources.GetString("cmblistenerType.Items6")}); + resources.GetString("cmblistenerType.Items6"), + resources.GetString("cmblistenerType.Items7"), + resources.GetString("cmblistenerType.Items8")}); this.cmblistenerType.Name = "cmblistenerType"; // // chksniffingEnabled2 diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.cs b/v2rayN/v2rayN/Forms/OptionSettingForm.cs index a882018b..079d2b92 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.cs +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.cs @@ -176,6 +176,9 @@ namespace v2rayN.Forms return; } + if (config.listenerType == ListenerType.HttpOpenAndClearOnce || config.listenerType == ListenerType.PacOpenAndClearOnce) { + SysProxyHandle.ResetIEProxy(); + } if (ConfigHandler.SaveConfig(ref config) == 0) { this.DialogResult = DialogResult.OK; diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.resx b/v2rayN/v2rayN/Forms/OptionSettingForm.resx index 00829fc2..a6426af3 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.resx +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.resx @@ -420,6 +420,12 @@ Only open PAC and do nothing + + Only open Http proxy, and clear the system proxy once + + + Only open PAC, and clear the system proxy once + 124, 94 diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx index f59095a3..b330571e 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx @@ -228,6 +228,12 @@ 仅开启PAC,不改变系统代理 + + 仅开启Http代理,并清除系统代理一次 + + + 仅开启PAC,并清除系统代理一次 + 全局 diff --git a/v2rayN/v2rayN/HttpProxyHandler/HttpProxyHandle.cs b/v2rayN/v2rayN/HttpProxyHandler/HttpProxyHandle.cs index 0236c5a8..d5112410 100644 --- a/v2rayN/v2rayN/HttpProxyHandler/HttpProxyHandle.cs +++ b/v2rayN/v2rayN/HttpProxyHandler/HttpProxyHandle.cs @@ -14,7 +14,9 @@ namespace v2rayN.HttpProxyHandler HttpOpenAndClear = 3, PacOpenAndClear = 4, HttpOpenOnly = 5, - PacOpenOnly = 6 + PacOpenOnly = 6, + HttpOpenAndClearOnce = 7, + PacOpenAndClearOnce = 8 } /// /// 系统代理(http)总处理 @@ -67,12 +69,12 @@ namespace v2rayN.HttpProxyHandler //PACServerHandle.Stop(); PACServerHandle.Init(config); } - else if (type == ListenerType.HttpOpenOnly) + else if (type == ListenerType.HttpOpenOnly || type == ListenerType.HttpOpenAndClearOnce) { //PACServerHandle.Stop(); //SysProxyHandle.ResetIEProxy(); } - else if (type == ListenerType.PacOpenOnly) + else if (type == ListenerType.PacOpenOnly || type == ListenerType.PacOpenAndClearOnce) { string pacUrl = GetPacUrl(); //SysProxyHandle.ResetIEProxy(); @@ -127,7 +129,7 @@ namespace v2rayN.HttpProxyHandler { try { - if (config.listenerType != ListenerType.HttpOpenOnly && config.listenerType != ListenerType.PacOpenOnly) + if (config.listenerType != ListenerType.HttpOpenOnly && config.listenerType != ListenerType.PacOpenOnly && config.listenerType != ListenerType.HttpOpenAndClearOnce && config.listenerType != ListenerType.PacOpenAndClearOnce) { Update(config, true); }