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);
}