Compare commits
90 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c0a364d03 | ||
|
|
f892f0c533 | ||
|
|
0713c0c667 | ||
|
|
ab4d34b6ac | ||
|
|
3823e5ca91 | ||
|
|
c0430536a6 | ||
|
|
6f85b5318b | ||
|
|
76e67693fa | ||
|
|
478521d6d9 | ||
|
|
57299cf182 | ||
|
|
45738a7160 | ||
|
|
583bd22244 | ||
|
|
ba68f5008b | ||
|
|
2f3f52c5e0 | ||
|
|
1dcb72e9dc | ||
|
|
153c8a0a74 | ||
|
|
4e8ea374d8 | ||
|
|
e313e004eb | ||
|
|
93b8dec63e | ||
|
|
5c9c35c199 | ||
|
|
4a6b8968d5 | ||
|
|
088d2e6834 | ||
|
|
4f39f7a932 | ||
|
|
2615b72cee | ||
|
|
a799420d0f | ||
|
|
70069a05e6 | ||
|
|
d385b44a48 | ||
|
|
56c1557f4a | ||
|
|
737d563ebb | ||
|
|
81b70195cf | ||
|
|
e60851153b | ||
|
|
009a15f0d9 | ||
|
|
f234775bd5 | ||
|
|
9b8bd0fa8a | ||
|
|
f74191946c | ||
|
|
ffa8b6296d | ||
|
|
0b2a392de2 | ||
|
|
f6b044c10c | ||
|
|
88c87aec0e | ||
|
|
b632dee0ce | ||
|
|
0db772aaeb | ||
|
|
fedfed4028 | ||
|
|
3b27e7be36 | ||
|
|
78402118ef | ||
|
|
aa3094f796 | ||
|
|
20498ce453 | ||
|
|
56559e6509 | ||
|
|
9549d17b03 | ||
|
|
a822fa9766 | ||
|
|
dee4b19775 | ||
|
|
f4b885dce5 | ||
|
|
2c02285def | ||
|
|
be7d76947b | ||
|
|
a81254dfff | ||
|
|
cb24a909ae | ||
|
|
8a87318b68 | ||
|
|
219f544a43 | ||
|
|
46c887537e | ||
|
|
8cf66da07c | ||
|
|
57bcf8a1a7 | ||
|
|
05efff10da | ||
|
|
414ac3225a | ||
|
|
0a8e822f35 | ||
|
|
301d1dd998 | ||
|
|
621565f4a4 | ||
|
|
6f51d447c7 | ||
|
|
f9c7556c54 | ||
|
|
32b98524ff | ||
|
|
efaec3ee17 | ||
|
|
28826cad1b | ||
|
|
ca9840abf4 | ||
|
|
8813d66274 | ||
|
|
da2b0f7dd4 | ||
|
|
b1773dab90 | ||
|
|
9538a67be1 | ||
|
|
fbfbc811d4 | ||
|
|
1c04b752cd | ||
|
|
3b1a2287d5 | ||
|
|
f3e6bd2736 | ||
|
|
4e449811e7 | ||
|
|
910be7f471 | ||
|
|
1e088f851b | ||
|
|
a0b0ad53d2 | ||
|
|
5b3f09aaf7 | ||
|
|
f48468029e | ||
|
|
c837ba5482 | ||
|
|
2708ff7c1a | ||
|
|
1722e50402 | ||
|
|
244da05e70 | ||
|
|
0c26662602 |
@@ -7,4 +7,4 @@
|
|||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
- Microsoft [.NET Framework 4.6](https://docs.microsoft.com/zh-cn/dotnet/framework/install/guide-for-developers) or higher
|
- 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)
|
||||||
|
|||||||
512
v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs
generated
Normal file
512
v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs
generated
Normal file
@@ -0,0 +1,512 @@
|
|||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
partial class AddServer5Form
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
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.cmbFlow = new System.Windows.Forms.ComboBox();
|
||||||
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
|
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.cmbFlow);
|
||||||
|
this.groupBox1.Controls.Add(this.label4);
|
||||||
|
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;
|
||||||
|
//
|
||||||
|
// cmbFlow
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.cmbFlow, "cmbFlow");
|
||||||
|
this.cmbFlow.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbFlow.FormattingEnabled = true;
|
||||||
|
this.cmbFlow.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("cmbFlow.Items"),
|
||||||
|
resources.GetString("cmbFlow.Items1"),
|
||||||
|
resources.GetString("cmbFlow.Items2")});
|
||||||
|
this.cmbFlow.Name = "cmbFlow";
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label4, "label4");
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
//
|
||||||
|
// 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"),
|
||||||
|
resources.GetString("cmbStreamSecurity.Items2")});
|
||||||
|
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;
|
||||||
|
private System.Windows.Forms.ComboBox cmbFlow;
|
||||||
|
private System.Windows.Forms.Label label4;
|
||||||
|
}
|
||||||
|
}
|
||||||
288
v2rayN/v2rayN/Forms/AddServer5Form.cs
Normal file
288
v2rayN/v2rayN/Forms/AddServer5Form.cs
Normal file
@@ -0,0 +1,288 @@
|
|||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 绑定数据
|
||||||
|
/// </summary>
|
||||||
|
private void BindingServer()
|
||||||
|
{
|
||||||
|
txtAddress.Text = vmessItem.address;
|
||||||
|
txtPort.Text = vmessItem.port.ToString();
|
||||||
|
txtId.Text = vmessItem.id;
|
||||||
|
cmbFlow.Text = vmessItem.flow;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 清除设置
|
||||||
|
/// </summary>
|
||||||
|
private void ClearServer()
|
||||||
|
{
|
||||||
|
txtAddress.Text = "";
|
||||||
|
txtPort.Text = "";
|
||||||
|
txtId.Text = "";
|
||||||
|
cmbFlow.Text = "";
|
||||||
|
cmbSecurity.Text = Global.None;
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设置伪装选项
|
||||||
|
/// </summary>
|
||||||
|
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 flow = cmbFlow.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.flow = flow;
|
||||||
|
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.AddVlessServer(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;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cmbStreamSecurity_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string security = cmbStreamSecurity.Text;
|
||||||
|
if (Utils.IsNullOrEmpty(security))
|
||||||
|
{
|
||||||
|
panTlsMore.Hide();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
panTlsMore.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 导入客户端/服务端配置
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 导入客户端
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void MenuItemImportClient_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
MenuItemImport(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 导入服务端
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 从剪贴板导入URL
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
1371
v2rayN/v2rayN/Forms/AddServer5Form.resx
Normal file
1371
v2rayN/v2rayN/Forms/AddServer5Form.resx
Normal file
File diff suppressed because it is too large
Load Diff
308
v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx
Normal file
308
v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx
Normal file
@@ -0,0 +1,308 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>取消(&C)</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>服务器</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Text" xml:space="preserve">
|
||||||
|
<value>流控(Flow)</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnGUID.Text" xml:space="preserve">
|
||||||
|
<value>生成(&G)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Text" xml:space="preserve">
|
||||||
|
<value>*手填,方便识别管理</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Text" xml:space="preserve">
|
||||||
|
<value>底层传输方式(transport)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label24.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>149, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label24.Text" xml:space="preserve">
|
||||||
|
<value>3)QUIC 加密密钥/Kcp seed</value>
|
||||||
|
</data>
|
||||||
|
<data name="label23.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>95, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label23.Text" xml:space="preserve">
|
||||||
|
<value>4)QUIC 加密方式</value>
|
||||||
|
</data>
|
||||||
|
<data name="label21.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>167, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label21.Text" xml:space="preserve">
|
||||||
|
<value>跳过证书验证(allowInsecure)</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>223, 7</value>
|
||||||
|
</data>
|
||||||
|
<data name="label9.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>143, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label9.Text" xml:space="preserve">
|
||||||
|
<value>*默认tcp,选错会无法连接</value>
|
||||||
|
</data>
|
||||||
|
<data name="label20.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>149, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label20.Text" xml:space="preserve">
|
||||||
|
<value>3)h2 host中间逗号(,)隔开</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>124, 32</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>211, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="label7.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>107, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label7.Text" xml:space="preserve">
|
||||||
|
<value>传输协议(network)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label19.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label19.Text" xml:space="preserve">
|
||||||
|
<value>路径(path)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label14.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>161, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label14.Text" xml:space="preserve">
|
||||||
|
<value>1)http host中间逗号(,)隔开</value>
|
||||||
|
</data>
|
||||||
|
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>77, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label15.Text" xml:space="preserve">
|
||||||
|
<value>底层传输安全</value>
|
||||||
|
</data>
|
||||||
|
<data name="label12.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>197, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label12.Text" xml:space="preserve">
|
||||||
|
<value>*tcp或kcp或QUIC伪装类型,默认none</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>124, 94</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>334, 51</value>
|
||||||
|
</data>
|
||||||
|
<data name="label11.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>89, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label11.Text" xml:space="preserve">
|
||||||
|
<value>伪装类型(type)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label10.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>89, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label10.Text" xml:space="preserve">
|
||||||
|
<value>伪装域名(host)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label8.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>71, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label8.Text" xml:space="preserve">
|
||||||
|
<value>*非空(none)</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 143</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>220, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>83, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Text" xml:space="preserve">
|
||||||
|
<value>别名(remarks)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>101, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.Text" xml:space="preserve">
|
||||||
|
<value>加密(encryption)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>用户ID(id)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>端口(port)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>83, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>地址(address)</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="MenuItem1.Enabled" type="System.Boolean, mscorlib">
|
||||||
|
<value>False</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>92, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItem1.Text" xml:space="preserve">
|
||||||
|
<value>导入配置文件</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItemImportClient.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>171, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItemImportClient.Text" xml:space="preserve">
|
||||||
|
<value>导入客户端配置</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItemImportServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>171, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItemImportServer.Text" xml:space="preserve">
|
||||||
|
<value>导入服务端配置</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>168, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItemImportClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>171, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItemImportClipboard.Text" xml:space="preserve">
|
||||||
|
<value>从剪贴板导入URL</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>编辑或添加[VLESS]服务器</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
98
v2rayN/v2rayN/Forms/AddServerForm.Designer.cs
generated
98
v2rayN/v2rayN/Forms/AddServerForm.Designer.cs
generated
@@ -37,11 +37,13 @@
|
|||||||
this.label24 = new System.Windows.Forms.Label();
|
this.label24 = new System.Windows.Forms.Label();
|
||||||
this.label23 = new System.Windows.Forms.Label();
|
this.label23 = new System.Windows.Forms.Label();
|
||||||
this.panTlsMore = new System.Windows.Forms.Panel();
|
this.panTlsMore = new System.Windows.Forms.Panel();
|
||||||
this.label22 = new System.Windows.Forms.Label();
|
|
||||||
this.label21 = new System.Windows.Forms.Label();
|
this.label21 = new System.Windows.Forms.Label();
|
||||||
this.cmbAllowInsecure = new System.Windows.Forms.ComboBox();
|
this.cmbAllowInsecure = new System.Windows.Forms.ComboBox();
|
||||||
|
this.label9 = new System.Windows.Forms.Label();
|
||||||
this.label20 = new System.Windows.Forms.Label();
|
this.label20 = new System.Windows.Forms.Label();
|
||||||
this.txtPath = new System.Windows.Forms.TextBox();
|
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.label19 = new System.Windows.Forms.Label();
|
||||||
this.label18 = new System.Windows.Forms.Label();
|
this.label18 = new System.Windows.Forms.Label();
|
||||||
this.label17 = new System.Windows.Forms.Label();
|
this.label17 = new System.Windows.Forms.Label();
|
||||||
@@ -54,10 +56,7 @@
|
|||||||
this.label11 = new System.Windows.Forms.Label();
|
this.label11 = new System.Windows.Forms.Label();
|
||||||
this.label10 = new System.Windows.Forms.Label();
|
this.label10 = new System.Windows.Forms.Label();
|
||||||
this.cmbHeaderType = new System.Windows.Forms.ComboBox();
|
this.cmbHeaderType = new System.Windows.Forms.ComboBox();
|
||||||
this.label9 = new System.Windows.Forms.Label();
|
|
||||||
this.label8 = 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.cmbSecurity = new System.Windows.Forms.ComboBox();
|
||||||
this.txtRemarks = new System.Windows.Forms.TextBox();
|
this.txtRemarks = new System.Windows.Forms.TextBox();
|
||||||
this.label6 = new System.Windows.Forms.Label();
|
this.label6 = new System.Windows.Forms.Label();
|
||||||
@@ -88,21 +87,19 @@
|
|||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
//
|
//
|
||||||
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
|
||||||
resources.ApplyResources(this.btnClose, "btnClose");
|
resources.ApplyResources(this.btnClose, "btnClose");
|
||||||
|
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
this.btnClose.Name = "btnClose";
|
this.btnClose.Name = "btnClose";
|
||||||
this.btnClose.UseVisualStyleBackColor = true;
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
//
|
//
|
||||||
// groupBox1
|
// groupBox1
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
this.groupBox1.Controls.Add(this.btnGUID);
|
this.groupBox1.Controls.Add(this.btnGUID);
|
||||||
this.groupBox1.Controls.Add(this.label13);
|
this.groupBox1.Controls.Add(this.label13);
|
||||||
this.groupBox1.Controls.Add(this.groupBox2);
|
this.groupBox1.Controls.Add(this.groupBox2);
|
||||||
this.groupBox1.Controls.Add(this.label9);
|
|
||||||
this.groupBox1.Controls.Add(this.label8);
|
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.cmbSecurity);
|
||||||
this.groupBox1.Controls.Add(this.txtRemarks);
|
this.groupBox1.Controls.Add(this.txtRemarks);
|
||||||
this.groupBox1.Controls.Add(this.label6);
|
this.groupBox1.Controls.Add(this.label6);
|
||||||
@@ -115,7 +112,6 @@
|
|||||||
this.groupBox1.Controls.Add(this.label2);
|
this.groupBox1.Controls.Add(this.label2);
|
||||||
this.groupBox1.Controls.Add(this.txtAddress);
|
this.groupBox1.Controls.Add(this.txtAddress);
|
||||||
this.groupBox1.Controls.Add(this.label1);
|
this.groupBox1.Controls.Add(this.label1);
|
||||||
resources.ApplyResources(this.groupBox1, "groupBox1");
|
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
//
|
//
|
||||||
@@ -133,11 +129,15 @@
|
|||||||
//
|
//
|
||||||
// groupBox2
|
// groupBox2
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.groupBox2, "groupBox2");
|
||||||
this.groupBox2.Controls.Add(this.label24);
|
this.groupBox2.Controls.Add(this.label24);
|
||||||
this.groupBox2.Controls.Add(this.label23);
|
this.groupBox2.Controls.Add(this.label23);
|
||||||
this.groupBox2.Controls.Add(this.panTlsMore);
|
this.groupBox2.Controls.Add(this.panTlsMore);
|
||||||
|
this.groupBox2.Controls.Add(this.label9);
|
||||||
this.groupBox2.Controls.Add(this.label20);
|
this.groupBox2.Controls.Add(this.label20);
|
||||||
this.groupBox2.Controls.Add(this.txtPath);
|
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.label19);
|
||||||
this.groupBox2.Controls.Add(this.label18);
|
this.groupBox2.Controls.Add(this.label18);
|
||||||
this.groupBox2.Controls.Add(this.label17);
|
this.groupBox2.Controls.Add(this.label17);
|
||||||
@@ -150,7 +150,6 @@
|
|||||||
this.groupBox2.Controls.Add(this.label11);
|
this.groupBox2.Controls.Add(this.label11);
|
||||||
this.groupBox2.Controls.Add(this.label10);
|
this.groupBox2.Controls.Add(this.label10);
|
||||||
this.groupBox2.Controls.Add(this.cmbHeaderType);
|
this.groupBox2.Controls.Add(this.cmbHeaderType);
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
|
||||||
this.groupBox2.Name = "groupBox2";
|
this.groupBox2.Name = "groupBox2";
|
||||||
this.groupBox2.TabStop = false;
|
this.groupBox2.TabStop = false;
|
||||||
//
|
//
|
||||||
@@ -166,17 +165,11 @@
|
|||||||
//
|
//
|
||||||
// panTlsMore
|
// panTlsMore
|
||||||
//
|
//
|
||||||
this.panTlsMore.Controls.Add(this.label22);
|
resources.ApplyResources(this.panTlsMore, "panTlsMore");
|
||||||
this.panTlsMore.Controls.Add(this.label21);
|
this.panTlsMore.Controls.Add(this.label21);
|
||||||
this.panTlsMore.Controls.Add(this.cmbAllowInsecure);
|
this.panTlsMore.Controls.Add(this.cmbAllowInsecure);
|
||||||
resources.ApplyResources(this.panTlsMore, "panTlsMore");
|
|
||||||
this.panTlsMore.Name = "panTlsMore";
|
this.panTlsMore.Name = "panTlsMore";
|
||||||
//
|
//
|
||||||
// label22
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label22, "label22");
|
|
||||||
this.label22.Name = "label22";
|
|
||||||
//
|
|
||||||
// label21
|
// label21
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label21, "label21");
|
resources.ApplyResources(this.label21, "label21");
|
||||||
@@ -184,15 +177,20 @@
|
|||||||
//
|
//
|
||||||
// cmbAllowInsecure
|
// cmbAllowInsecure
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure");
|
||||||
this.cmbAllowInsecure.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbAllowInsecure.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbAllowInsecure.FormattingEnabled = true;
|
this.cmbAllowInsecure.FormattingEnabled = true;
|
||||||
this.cmbAllowInsecure.Items.AddRange(new object[] {
|
this.cmbAllowInsecure.Items.AddRange(new object[] {
|
||||||
resources.GetString("cmbAllowInsecure.Items"),
|
resources.GetString("cmbAllowInsecure.Items"),
|
||||||
resources.GetString("cmbAllowInsecure.Items1"),
|
resources.GetString("cmbAllowInsecure.Items1"),
|
||||||
resources.GetString("cmbAllowInsecure.Items2")});
|
resources.GetString("cmbAllowInsecure.Items2")});
|
||||||
resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure");
|
|
||||||
this.cmbAllowInsecure.Name = "cmbAllowInsecure";
|
this.cmbAllowInsecure.Name = "cmbAllowInsecure";
|
||||||
//
|
//
|
||||||
|
// label9
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label9, "label9");
|
||||||
|
this.label9.Name = "label9";
|
||||||
|
//
|
||||||
// label20
|
// label20
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label20, "label20");
|
resources.ApplyResources(this.label20, "label20");
|
||||||
@@ -203,6 +201,25 @@
|
|||||||
resources.ApplyResources(this.txtPath, "txtPath");
|
resources.ApplyResources(this.txtPath, "txtPath");
|
||||||
this.txtPath.Name = "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
|
// label19
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label19, "label19");
|
resources.ApplyResources(this.label19, "label19");
|
||||||
@@ -235,12 +252,12 @@
|
|||||||
//
|
//
|
||||||
// cmbStreamSecurity
|
// cmbStreamSecurity
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity");
|
||||||
this.cmbStreamSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbStreamSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbStreamSecurity.FormattingEnabled = true;
|
this.cmbStreamSecurity.FormattingEnabled = true;
|
||||||
this.cmbStreamSecurity.Items.AddRange(new object[] {
|
this.cmbStreamSecurity.Items.AddRange(new object[] {
|
||||||
resources.GetString("cmbStreamSecurity.Items"),
|
resources.GetString("cmbStreamSecurity.Items"),
|
||||||
resources.GetString("cmbStreamSecurity.Items1")});
|
resources.GetString("cmbStreamSecurity.Items1")});
|
||||||
resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity");
|
|
||||||
this.cmbStreamSecurity.Name = "cmbStreamSecurity";
|
this.cmbStreamSecurity.Name = "cmbStreamSecurity";
|
||||||
this.cmbStreamSecurity.SelectedIndexChanged += new System.EventHandler(this.cmbStreamSecurity_SelectedIndexChanged);
|
this.cmbStreamSecurity.SelectedIndexChanged += new System.EventHandler(this.cmbStreamSecurity_SelectedIndexChanged);
|
||||||
//
|
//
|
||||||
@@ -266,6 +283,7 @@
|
|||||||
//
|
//
|
||||||
// cmbHeaderType
|
// cmbHeaderType
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType");
|
||||||
this.cmbHeaderType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbHeaderType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbHeaderType.FormattingEnabled = true;
|
this.cmbHeaderType.FormattingEnabled = true;
|
||||||
this.cmbHeaderType.Items.AddRange(new object[] {
|
this.cmbHeaderType.Items.AddRange(new object[] {
|
||||||
@@ -276,40 +294,16 @@
|
|||||||
resources.GetString("cmbHeaderType.Items4"),
|
resources.GetString("cmbHeaderType.Items4"),
|
||||||
resources.GetString("cmbHeaderType.Items5"),
|
resources.GetString("cmbHeaderType.Items5"),
|
||||||
resources.GetString("cmbHeaderType.Items6")});
|
resources.GetString("cmbHeaderType.Items6")});
|
||||||
resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType");
|
|
||||||
this.cmbHeaderType.Name = "cmbHeaderType";
|
this.cmbHeaderType.Name = "cmbHeaderType";
|
||||||
//
|
//
|
||||||
// label9
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label9, "label9");
|
|
||||||
this.label9.Name = "label9";
|
|
||||||
//
|
|
||||||
// label8
|
// label8
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label8, "label8");
|
resources.ApplyResources(this.label8, "label8");
|
||||||
this.label8.Name = "label8";
|
this.label8.Name = "label8";
|
||||||
//
|
//
|
||||||
// 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";
|
|
||||||
//
|
|
||||||
// cmbSecurity
|
// cmbSecurity
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cmbSecurity, "cmbSecurity");
|
||||||
this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbSecurity.FormattingEnabled = true;
|
this.cmbSecurity.FormattingEnabled = true;
|
||||||
this.cmbSecurity.Items.AddRange(new object[] {
|
this.cmbSecurity.Items.AddRange(new object[] {
|
||||||
@@ -317,7 +311,6 @@
|
|||||||
resources.GetString("cmbSecurity.Items1"),
|
resources.GetString("cmbSecurity.Items1"),
|
||||||
resources.GetString("cmbSecurity.Items2"),
|
resources.GetString("cmbSecurity.Items2"),
|
||||||
resources.GetString("cmbSecurity.Items3")});
|
resources.GetString("cmbSecurity.Items3")});
|
||||||
resources.ApplyResources(this.cmbSecurity, "cmbSecurity");
|
|
||||||
this.cmbSecurity.Name = "cmbSecurity";
|
this.cmbSecurity.Name = "cmbSecurity";
|
||||||
//
|
//
|
||||||
// txtRemarks
|
// txtRemarks
|
||||||
@@ -377,9 +370,9 @@
|
|||||||
//
|
//
|
||||||
// panel2
|
// panel2
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
this.panel2.Controls.Add(this.btnClose);
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
this.panel2.Controls.Add(this.btnOK);
|
this.panel2.Controls.Add(this.btnOK);
|
||||||
resources.ApplyResources(this.panel2, "panel2");
|
|
||||||
this.panel2.Name = "panel2";
|
this.panel2.Name = "panel2";
|
||||||
//
|
//
|
||||||
// btnOK
|
// btnOK
|
||||||
@@ -396,42 +389,42 @@
|
|||||||
//
|
//
|
||||||
// menuServer
|
// menuServer
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.menuServer, "menuServer");
|
||||||
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.MenuItem1});
|
this.MenuItem1});
|
||||||
resources.ApplyResources(this.menuServer, "menuServer");
|
|
||||||
this.menuServer.Name = "menuServer";
|
this.menuServer.Name = "menuServer";
|
||||||
//
|
//
|
||||||
// MenuItem1
|
// MenuItem1
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.MenuItem1, "MenuItem1");
|
||||||
this.MenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.MenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.MenuItemImportClient,
|
this.MenuItemImportClient,
|
||||||
this.MenuItemImportServer,
|
this.MenuItemImportServer,
|
||||||
this.toolStripSeparator1,
|
this.toolStripSeparator1,
|
||||||
this.MenuItemImportClipboard});
|
this.MenuItemImportClipboard});
|
||||||
this.MenuItem1.Name = "MenuItem1";
|
this.MenuItem1.Name = "MenuItem1";
|
||||||
resources.ApplyResources(this.MenuItem1, "MenuItem1");
|
|
||||||
//
|
//
|
||||||
// MenuItemImportClient
|
// MenuItemImportClient
|
||||||
//
|
//
|
||||||
this.MenuItemImportClient.Name = "MenuItemImportClient";
|
|
||||||
resources.ApplyResources(this.MenuItemImportClient, "MenuItemImportClient");
|
resources.ApplyResources(this.MenuItemImportClient, "MenuItemImportClient");
|
||||||
|
this.MenuItemImportClient.Name = "MenuItemImportClient";
|
||||||
this.MenuItemImportClient.Click += new System.EventHandler(this.MenuItemImportClient_Click);
|
this.MenuItemImportClient.Click += new System.EventHandler(this.MenuItemImportClient_Click);
|
||||||
//
|
//
|
||||||
// MenuItemImportServer
|
// MenuItemImportServer
|
||||||
//
|
//
|
||||||
this.MenuItemImportServer.Name = "MenuItemImportServer";
|
|
||||||
resources.ApplyResources(this.MenuItemImportServer, "MenuItemImportServer");
|
resources.ApplyResources(this.MenuItemImportServer, "MenuItemImportServer");
|
||||||
|
this.MenuItemImportServer.Name = "MenuItemImportServer";
|
||||||
this.MenuItemImportServer.Click += new System.EventHandler(this.MenuItemImportServer_Click);
|
this.MenuItemImportServer.Click += new System.EventHandler(this.MenuItemImportServer_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator1
|
// toolStripSeparator1
|
||||||
//
|
//
|
||||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
|
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
|
||||||
|
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
//
|
//
|
||||||
// MenuItemImportClipboard
|
// MenuItemImportClipboard
|
||||||
//
|
//
|
||||||
this.MenuItemImportClipboard.Name = "MenuItemImportClipboard";
|
|
||||||
resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard");
|
resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard");
|
||||||
|
this.MenuItemImportClipboard.Name = "MenuItemImportClipboard";
|
||||||
this.MenuItemImportClipboard.Click += new System.EventHandler(this.MenuItemImportClipboard_Click);
|
this.MenuItemImportClipboard.Click += new System.EventHandler(this.MenuItemImportClipboard_Click);
|
||||||
//
|
//
|
||||||
// AddServerForm
|
// AddServerForm
|
||||||
@@ -508,7 +501,6 @@
|
|||||||
private System.Windows.Forms.Label label20;
|
private System.Windows.Forms.Label label20;
|
||||||
private System.Windows.Forms.Label label21;
|
private System.Windows.Forms.Label label21;
|
||||||
private System.Windows.Forms.ComboBox cmbAllowInsecure;
|
private System.Windows.Forms.ComboBox cmbAllowInsecure;
|
||||||
private System.Windows.Forms.Label label22;
|
|
||||||
private System.Windows.Forms.Panel panTlsMore;
|
private System.Windows.Forms.Panel panTlsMore;
|
||||||
private System.Windows.Forms.Label label24;
|
private System.Windows.Forms.Label label24;
|
||||||
private System.Windows.Forms.Label label23;
|
private System.Windows.Forms.Label label23;
|
||||||
|
|||||||
@@ -180,6 +180,18 @@ namespace v2rayN.Forms
|
|||||||
this.DialogResult = DialogResult.Cancel;
|
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 导入客户端/服务端配置
|
#region 导入客户端/服务端配置
|
||||||
|
|
||||||
@@ -278,17 +290,5 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private void cmbStreamSecurity_SelectedIndexChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
string security = cmbStreamSecurity.Text;
|
|
||||||
if (Utils.IsNullOrEmpty(security))
|
|
||||||
{
|
|
||||||
panTlsMore.Hide();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
panTlsMore.Show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -117,63 +117,66 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>编辑或添加[VMess]服务器</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnClose.Text" xml:space="preserve">
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
<value>取消(&C)</value>
|
<value>取消(&C)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnGUID.Text" xml:space="preserve">
|
<data name="btnGUID.Text" xml:space="preserve">
|
||||||
<value>生成(&G)</value>
|
<value>生成(&G)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="label13.Text" xml:space="preserve">
|
||||||
<value>确定(&O)</value>
|
<value>*手填,方便识别管理</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="label24.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>149, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label24.Text" xml:space="preserve">
|
||||||
|
<value>3)QUIC 加密密钥/Kcp seed</value>
|
||||||
|
</data>
|
||||||
|
<data name="label23.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>95, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label23.Text" xml:space="preserve">
|
||||||
|
<value>4)QUIC 加密方式</value>
|
||||||
|
</data>
|
||||||
|
<data name="label21.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>167, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label21.Text" xml:space="preserve">
|
||||||
|
<value>跳过证书验证(allowInsecure)</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>223, 7</value>
|
||||||
|
</data>
|
||||||
|
<data name="label9.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>143, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label9.Text" xml:space="preserve">
|
||||||
|
<value>*默认tcp,选错会无法连接</value>
|
||||||
|
</data>
|
||||||
|
<data name="label20.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>149, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label20.Text" xml:space="preserve">
|
||||||
|
<value>3)h2 host中间逗号(,)隔开</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="cmbNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 171</value>
|
<value>124, 32</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmbNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>211, 20</value>
|
<value>211, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label7.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>127, 143</value>
|
<value>107, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label7.Text" xml:space="preserve">
|
||||||
<value>211, 20</value>
|
<value>传输协议(network)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
<data name="label19.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>服务器</value>
|
<value>65, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
<data name="label19.Text" xml:space="preserve">
|
||||||
<value>不清楚则保持默认值</value>
|
<value>路径(path)</value>
|
||||||
</data>
|
|
||||||
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>83, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Text" xml:space="preserve">
|
|
||||||
<value>地址(address)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label10.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>89, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label10.Text" xml:space="preserve">
|
|
||||||
<value>伪装域名(host)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label11.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>89, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label11.Text" xml:space="preserve">
|
|
||||||
<value>伪装类型(type)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label12.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>197, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label12.Text" xml:space="preserve">
|
|
||||||
<value>*tcp或kcp或QUIC伪装类型,默认none</value>
|
|
||||||
</data>
|
|
||||||
<data name="label13.Text" xml:space="preserve">
|
|
||||||
<value>*手填,方便识别管理</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="label14.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label14.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>161, 12</value>
|
<value>161, 12</value>
|
||||||
@@ -187,71 +190,32 @@
|
|||||||
<data name="label15.Text" xml:space="preserve">
|
<data name="label15.Text" xml:space="preserve">
|
||||||
<value>底层传输安全</value>
|
<value>底层传输安全</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label19.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label12.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>65, 12</value>
|
<value>197, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label19.Text" xml:space="preserve">
|
<data name="label12.Text" xml:space="preserve">
|
||||||
<value>路径(path)</value>
|
<value>*tcp或kcp或QUIC伪装类型,默认none</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>65, 12</value>
|
<value>124, 94</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.Text" xml:space="preserve">
|
<data name="txtRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>端口(port)</value>
|
<value>334, 51</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label20.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label11.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>149, 12</value>
|
<value>89, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label20.Text" xml:space="preserve">
|
<data name="label11.Text" xml:space="preserve">
|
||||||
<value>3)h2 host中间逗号(,)隔开</value>
|
<value>伪装类型(type)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label22.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label10.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>53, 12</value>
|
<value>89, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label22.Text" xml:space="preserve">
|
<data name="label10.Text" xml:space="preserve">
|
||||||
<value>默认false</value>
|
<value>伪装域名(host)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label23.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="groupBox2.Text" xml:space="preserve">
|
||||||
<value>95, 12</value>
|
<value>底层传输方式(transport)</value>
|
||||||
</data>
|
|
||||||
<data name="label23.Text" xml:space="preserve">
|
|
||||||
<value>4)QUIC 加密方式</value>
|
|
||||||
</data>
|
|
||||||
<data name="label24.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>95, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label24.Text" xml:space="preserve">
|
|
||||||
<value>3)QUIC 加密密钥</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>65, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Text" xml:space="preserve">
|
|
||||||
<value>用户ID(id)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>95, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Text" xml:space="preserve">
|
|
||||||
<value>额外ID(alterId)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label5.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>113, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label5.Text" xml:space="preserve">
|
|
||||||
<value>加密方式(security)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>83, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Text" xml:space="preserve">
|
|
||||||
<value>别名(remarks)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label7.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>107, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label7.Text" xml:space="preserve">
|
|
||||||
<value>传输协议(network)</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="label8.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label8.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>113, 12</value>
|
<value>113, 12</value>
|
||||||
@@ -259,17 +223,53 @@
|
|||||||
<data name="label8.Text" xml:space="preserve">
|
<data name="label8.Text" xml:space="preserve">
|
||||||
<value>*随便选,建议(auto)</value>
|
<value>*随便选,建议(auto)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label9.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>143, 12</value>
|
<value>127, 143</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label9.Text" xml:space="preserve">
|
<data name="cmbSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>*默认tcp,选错会无法连接</value>
|
<value>211, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>92, 21</value>
|
<value>83, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MenuItem1.Text" xml:space="preserve">
|
<data name="label6.Text" xml:space="preserve">
|
||||||
<value>导入配置文件</value>
|
<value>别名(remarks)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>113, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.Text" xml:space="preserve">
|
||||||
|
<value>加密方式(security)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>95, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Text" xml:space="preserve">
|
||||||
|
<value>额外ID(alterId)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>用户ID(id)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>端口(port)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>83, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>地址(address)</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>服务器</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MenuItemImportClient.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="MenuItemImportClient.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>171, 22</value>
|
<value>171, 22</value>
|
||||||
@@ -277,12 +277,6 @@
|
|||||||
<data name="MenuItemImportClient.Text" xml:space="preserve">
|
<data name="MenuItemImportClient.Text" xml:space="preserve">
|
||||||
<value>导入客户端配置</value>
|
<value>导入客户端配置</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MenuItemImportClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>171, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItemImportClipboard.Text" xml:space="preserve">
|
|
||||||
<value>从剪贴板导入URL</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItemImportServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="MenuItemImportServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>171, 22</value>
|
<value>171, 22</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -292,10 +286,19 @@
|
|||||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>168, 6</value>
|
<value>168, 6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="MenuItemImportClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>124, 58</value>
|
<value>171, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="MenuItemImportClipboard.Text" xml:space="preserve">
|
||||||
<value>334, 51</value>
|
<value>从剪贴板导入URL</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>92, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItem1.Text" xml:space="preserve">
|
||||||
|
<value>导入配置文件</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>编辑或添加[VMess]服务器</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
174
v2rayN/v2rayN/Forms/MainForm.Designer.cs
generated
174
v2rayN/v2rayN/Forms/MainForm.Designer.cs
generated
@@ -34,6 +34,7 @@
|
|||||||
this.lvServers = new v2rayN.Base.ListViewFlickerFree();
|
this.lvServers = new v2rayN.Base.ListViewFlickerFree();
|
||||||
this.cmsLv = new System.Windows.Forms.ContextMenuStrip(this.components);
|
this.cmsLv = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
this.menuAddVmessServer = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuAddVmessServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuAddVlessServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuAddShadowsocksServer = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuAddShadowsocksServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuAddSocksServer = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuAddSocksServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuAddCustomServer = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuAddCustomServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@@ -144,17 +145,19 @@
|
|||||||
//
|
//
|
||||||
// scMain.Panel1
|
// scMain.Panel1
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.scMain.Panel1, "scMain.Panel1");
|
||||||
this.scMain.Panel1.Controls.Add(this.lvServers);
|
this.scMain.Panel1.Controls.Add(this.lvServers);
|
||||||
//
|
//
|
||||||
// scMain.Panel2
|
// scMain.Panel2
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.scMain.Panel2, "scMain.Panel2");
|
||||||
this.scMain.Panel2.Controls.Add(this.qrCodeControl);
|
this.scMain.Panel2.Controls.Add(this.qrCodeControl);
|
||||||
this.scMain.TabStop = false;
|
this.scMain.TabStop = false;
|
||||||
//
|
//
|
||||||
// lvServers
|
// lvServers
|
||||||
//
|
//
|
||||||
this.lvServers.ContextMenuStrip = this.cmsLv;
|
|
||||||
resources.ApplyResources(this.lvServers, "lvServers");
|
resources.ApplyResources(this.lvServers, "lvServers");
|
||||||
|
this.lvServers.ContextMenuStrip = this.cmsLv;
|
||||||
this.lvServers.FullRowSelect = true;
|
this.lvServers.FullRowSelect = true;
|
||||||
this.lvServers.GridLines = true;
|
this.lvServers.GridLines = true;
|
||||||
this.lvServers.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
this.lvServers.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
||||||
@@ -165,6 +168,7 @@
|
|||||||
this.lvServers.Name = "lvServers";
|
this.lvServers.Name = "lvServers";
|
||||||
this.lvServers.UseCompatibleStateImageBehavior = false;
|
this.lvServers.UseCompatibleStateImageBehavior = false;
|
||||||
this.lvServers.View = System.Windows.Forms.View.Details;
|
this.lvServers.View = System.Windows.Forms.View.Details;
|
||||||
|
this.lvServers.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.lvServers_ColumnClick);
|
||||||
this.lvServers.SelectedIndexChanged += new System.EventHandler(this.lvServers_SelectedIndexChanged);
|
this.lvServers.SelectedIndexChanged += new System.EventHandler(this.lvServers_SelectedIndexChanged);
|
||||||
this.lvServers.Click += new System.EventHandler(this.lvServers_Click);
|
this.lvServers.Click += new System.EventHandler(this.lvServers_Click);
|
||||||
this.lvServers.DoubleClick += new System.EventHandler(this.lvServers_DoubleClick);
|
this.lvServers.DoubleClick += new System.EventHandler(this.lvServers_DoubleClick);
|
||||||
@@ -172,9 +176,11 @@
|
|||||||
//
|
//
|
||||||
// cmsLv
|
// cmsLv
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cmsLv, "cmsLv");
|
||||||
this.cmsLv.ImageScalingSize = new System.Drawing.Size(20, 20);
|
this.cmsLv.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
this.cmsLv.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.cmsLv.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.menuAddVmessServer,
|
this.menuAddVmessServer,
|
||||||
|
this.menuAddVlessServer,
|
||||||
this.menuAddShadowsocksServer,
|
this.menuAddShadowsocksServer,
|
||||||
this.menuAddSocksServer,
|
this.menuAddSocksServer,
|
||||||
this.menuAddCustomServer,
|
this.menuAddCustomServer,
|
||||||
@@ -204,177 +210,182 @@
|
|||||||
this.menuExport2SubContent});
|
this.menuExport2SubContent});
|
||||||
this.cmsLv.Name = "cmsLv";
|
this.cmsLv.Name = "cmsLv";
|
||||||
this.cmsLv.OwnerItem = this.tsbServer;
|
this.cmsLv.OwnerItem = this.tsbServer;
|
||||||
resources.ApplyResources(this.cmsLv, "cmsLv");
|
|
||||||
//
|
//
|
||||||
// menuAddVmessServer
|
// menuAddVmessServer
|
||||||
//
|
//
|
||||||
this.menuAddVmessServer.Name = "menuAddVmessServer";
|
|
||||||
resources.ApplyResources(this.menuAddVmessServer, "menuAddVmessServer");
|
resources.ApplyResources(this.menuAddVmessServer, "menuAddVmessServer");
|
||||||
|
this.menuAddVmessServer.Name = "menuAddVmessServer";
|
||||||
this.menuAddVmessServer.Click += new System.EventHandler(this.menuAddVmessServer_Click);
|
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
|
// menuAddShadowsocksServer
|
||||||
//
|
//
|
||||||
this.menuAddShadowsocksServer.Name = "menuAddShadowsocksServer";
|
|
||||||
resources.ApplyResources(this.menuAddShadowsocksServer, "menuAddShadowsocksServer");
|
resources.ApplyResources(this.menuAddShadowsocksServer, "menuAddShadowsocksServer");
|
||||||
|
this.menuAddShadowsocksServer.Name = "menuAddShadowsocksServer";
|
||||||
this.menuAddShadowsocksServer.Click += new System.EventHandler(this.menuAddShadowsocksServer_Click);
|
this.menuAddShadowsocksServer.Click += new System.EventHandler(this.menuAddShadowsocksServer_Click);
|
||||||
//
|
//
|
||||||
// menuAddSocksServer
|
// menuAddSocksServer
|
||||||
//
|
//
|
||||||
this.menuAddSocksServer.Name = "menuAddSocksServer";
|
|
||||||
resources.ApplyResources(this.menuAddSocksServer, "menuAddSocksServer");
|
resources.ApplyResources(this.menuAddSocksServer, "menuAddSocksServer");
|
||||||
|
this.menuAddSocksServer.Name = "menuAddSocksServer";
|
||||||
this.menuAddSocksServer.Click += new System.EventHandler(this.menuAddSocksServer_Click);
|
this.menuAddSocksServer.Click += new System.EventHandler(this.menuAddSocksServer_Click);
|
||||||
//
|
//
|
||||||
// menuAddCustomServer
|
// menuAddCustomServer
|
||||||
//
|
//
|
||||||
this.menuAddCustomServer.Name = "menuAddCustomServer";
|
|
||||||
resources.ApplyResources(this.menuAddCustomServer, "menuAddCustomServer");
|
resources.ApplyResources(this.menuAddCustomServer, "menuAddCustomServer");
|
||||||
|
this.menuAddCustomServer.Name = "menuAddCustomServer";
|
||||||
this.menuAddCustomServer.Click += new System.EventHandler(this.menuAddCustomServer_Click);
|
this.menuAddCustomServer.Click += new System.EventHandler(this.menuAddCustomServer_Click);
|
||||||
//
|
//
|
||||||
// menuAddServers
|
// menuAddServers
|
||||||
//
|
//
|
||||||
this.menuAddServers.Name = "menuAddServers";
|
|
||||||
resources.ApplyResources(this.menuAddServers, "menuAddServers");
|
resources.ApplyResources(this.menuAddServers, "menuAddServers");
|
||||||
|
this.menuAddServers.Name = "menuAddServers";
|
||||||
this.menuAddServers.Click += new System.EventHandler(this.menuAddServers_Click);
|
this.menuAddServers.Click += new System.EventHandler(this.menuAddServers_Click);
|
||||||
//
|
//
|
||||||
// menuScanScreen
|
// menuScanScreen
|
||||||
//
|
//
|
||||||
this.menuScanScreen.Name = "menuScanScreen";
|
|
||||||
resources.ApplyResources(this.menuScanScreen, "menuScanScreen");
|
resources.ApplyResources(this.menuScanScreen, "menuScanScreen");
|
||||||
|
this.menuScanScreen.Name = "menuScanScreen";
|
||||||
this.menuScanScreen.Click += new System.EventHandler(this.menuScanScreen_Click);
|
this.menuScanScreen.Click += new System.EventHandler(this.menuScanScreen_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator1
|
// toolStripSeparator1
|
||||||
//
|
//
|
||||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
|
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
|
||||||
|
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
//
|
//
|
||||||
// menuRemoveServer
|
// menuRemoveServer
|
||||||
//
|
//
|
||||||
this.menuRemoveServer.Name = "menuRemoveServer";
|
|
||||||
resources.ApplyResources(this.menuRemoveServer, "menuRemoveServer");
|
resources.ApplyResources(this.menuRemoveServer, "menuRemoveServer");
|
||||||
|
this.menuRemoveServer.Name = "menuRemoveServer";
|
||||||
this.menuRemoveServer.Click += new System.EventHandler(this.menuRemoveServer_Click);
|
this.menuRemoveServer.Click += new System.EventHandler(this.menuRemoveServer_Click);
|
||||||
//
|
//
|
||||||
// menuRemoveDuplicateServer
|
// menuRemoveDuplicateServer
|
||||||
//
|
//
|
||||||
this.menuRemoveDuplicateServer.Name = "menuRemoveDuplicateServer";
|
|
||||||
resources.ApplyResources(this.menuRemoveDuplicateServer, "menuRemoveDuplicateServer");
|
resources.ApplyResources(this.menuRemoveDuplicateServer, "menuRemoveDuplicateServer");
|
||||||
|
this.menuRemoveDuplicateServer.Name = "menuRemoveDuplicateServer";
|
||||||
this.menuRemoveDuplicateServer.Click += new System.EventHandler(this.menuRemoveDuplicateServer_Click);
|
this.menuRemoveDuplicateServer.Click += new System.EventHandler(this.menuRemoveDuplicateServer_Click);
|
||||||
//
|
//
|
||||||
// menuCopyServer
|
// menuCopyServer
|
||||||
//
|
//
|
||||||
this.menuCopyServer.Name = "menuCopyServer";
|
|
||||||
resources.ApplyResources(this.menuCopyServer, "menuCopyServer");
|
resources.ApplyResources(this.menuCopyServer, "menuCopyServer");
|
||||||
|
this.menuCopyServer.Name = "menuCopyServer";
|
||||||
this.menuCopyServer.Click += new System.EventHandler(this.menuCopyServer_Click);
|
this.menuCopyServer.Click += new System.EventHandler(this.menuCopyServer_Click);
|
||||||
//
|
//
|
||||||
// menuSetDefaultServer
|
// menuSetDefaultServer
|
||||||
//
|
//
|
||||||
this.menuSetDefaultServer.Name = "menuSetDefaultServer";
|
|
||||||
resources.ApplyResources(this.menuSetDefaultServer, "menuSetDefaultServer");
|
resources.ApplyResources(this.menuSetDefaultServer, "menuSetDefaultServer");
|
||||||
|
this.menuSetDefaultServer.Name = "menuSetDefaultServer";
|
||||||
this.menuSetDefaultServer.Click += new System.EventHandler(this.menuSetDefaultServer_Click);
|
this.menuSetDefaultServer.Click += new System.EventHandler(this.menuSetDefaultServer_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator3
|
// toolStripSeparator3
|
||||||
//
|
//
|
||||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator3, "toolStripSeparator3");
|
resources.ApplyResources(this.toolStripSeparator3, "toolStripSeparator3");
|
||||||
|
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||||
//
|
//
|
||||||
// menuMoveTop
|
// menuMoveTop
|
||||||
//
|
//
|
||||||
this.menuMoveTop.Name = "menuMoveTop";
|
|
||||||
resources.ApplyResources(this.menuMoveTop, "menuMoveTop");
|
resources.ApplyResources(this.menuMoveTop, "menuMoveTop");
|
||||||
|
this.menuMoveTop.Name = "menuMoveTop";
|
||||||
this.menuMoveTop.Click += new System.EventHandler(this.menuMoveTop_Click);
|
this.menuMoveTop.Click += new System.EventHandler(this.menuMoveTop_Click);
|
||||||
//
|
//
|
||||||
// menuMoveUp
|
// menuMoveUp
|
||||||
//
|
//
|
||||||
this.menuMoveUp.Name = "menuMoveUp";
|
|
||||||
resources.ApplyResources(this.menuMoveUp, "menuMoveUp");
|
resources.ApplyResources(this.menuMoveUp, "menuMoveUp");
|
||||||
|
this.menuMoveUp.Name = "menuMoveUp";
|
||||||
this.menuMoveUp.Click += new System.EventHandler(this.menuMoveUp_Click);
|
this.menuMoveUp.Click += new System.EventHandler(this.menuMoveUp_Click);
|
||||||
//
|
//
|
||||||
// menuMoveDown
|
// menuMoveDown
|
||||||
//
|
//
|
||||||
this.menuMoveDown.Name = "menuMoveDown";
|
|
||||||
resources.ApplyResources(this.menuMoveDown, "menuMoveDown");
|
resources.ApplyResources(this.menuMoveDown, "menuMoveDown");
|
||||||
|
this.menuMoveDown.Name = "menuMoveDown";
|
||||||
this.menuMoveDown.Click += new System.EventHandler(this.menuMoveDown_Click);
|
this.menuMoveDown.Click += new System.EventHandler(this.menuMoveDown_Click);
|
||||||
//
|
//
|
||||||
// menuMoveBottom
|
// menuMoveBottom
|
||||||
//
|
//
|
||||||
this.menuMoveBottom.Name = "menuMoveBottom";
|
|
||||||
resources.ApplyResources(this.menuMoveBottom, "menuMoveBottom");
|
resources.ApplyResources(this.menuMoveBottom, "menuMoveBottom");
|
||||||
|
this.menuMoveBottom.Name = "menuMoveBottom";
|
||||||
this.menuMoveBottom.Click += new System.EventHandler(this.menuMoveBottom_Click);
|
this.menuMoveBottom.Click += new System.EventHandler(this.menuMoveBottom_Click);
|
||||||
//
|
//
|
||||||
// menuSelectAll
|
// menuSelectAll
|
||||||
//
|
//
|
||||||
this.menuSelectAll.Name = "menuSelectAll";
|
|
||||||
resources.ApplyResources(this.menuSelectAll, "menuSelectAll");
|
resources.ApplyResources(this.menuSelectAll, "menuSelectAll");
|
||||||
|
this.menuSelectAll.Name = "menuSelectAll";
|
||||||
this.menuSelectAll.Click += new System.EventHandler(this.menuSelectAll_Click);
|
this.menuSelectAll.Click += new System.EventHandler(this.menuSelectAll_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator9
|
// toolStripSeparator9
|
||||||
//
|
//
|
||||||
this.toolStripSeparator9.Name = "toolStripSeparator9";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator9, "toolStripSeparator9");
|
resources.ApplyResources(this.toolStripSeparator9, "toolStripSeparator9");
|
||||||
|
this.toolStripSeparator9.Name = "toolStripSeparator9";
|
||||||
//
|
//
|
||||||
// menuPingServer
|
// menuPingServer
|
||||||
//
|
//
|
||||||
this.menuPingServer.Name = "menuPingServer";
|
|
||||||
resources.ApplyResources(this.menuPingServer, "menuPingServer");
|
resources.ApplyResources(this.menuPingServer, "menuPingServer");
|
||||||
|
this.menuPingServer.Name = "menuPingServer";
|
||||||
this.menuPingServer.Click += new System.EventHandler(this.menuPingServer_Click);
|
this.menuPingServer.Click += new System.EventHandler(this.menuPingServer_Click);
|
||||||
//
|
//
|
||||||
// menuTcpingServer
|
// menuTcpingServer
|
||||||
//
|
//
|
||||||
this.menuTcpingServer.Name = "menuTcpingServer";
|
|
||||||
resources.ApplyResources(this.menuTcpingServer, "menuTcpingServer");
|
resources.ApplyResources(this.menuTcpingServer, "menuTcpingServer");
|
||||||
|
this.menuTcpingServer.Name = "menuTcpingServer";
|
||||||
this.menuTcpingServer.Click += new System.EventHandler(this.menuTcpingServer_Click);
|
this.menuTcpingServer.Click += new System.EventHandler(this.menuTcpingServer_Click);
|
||||||
//
|
//
|
||||||
// menuRealPingServer
|
// menuRealPingServer
|
||||||
//
|
//
|
||||||
this.menuRealPingServer.Name = "menuRealPingServer";
|
|
||||||
resources.ApplyResources(this.menuRealPingServer, "menuRealPingServer");
|
resources.ApplyResources(this.menuRealPingServer, "menuRealPingServer");
|
||||||
|
this.menuRealPingServer.Name = "menuRealPingServer";
|
||||||
this.menuRealPingServer.Click += new System.EventHandler(this.menuRealPingServer_Click);
|
this.menuRealPingServer.Click += new System.EventHandler(this.menuRealPingServer_Click);
|
||||||
//
|
//
|
||||||
// menuSpeedServer
|
// menuSpeedServer
|
||||||
//
|
//
|
||||||
this.menuSpeedServer.Name = "menuSpeedServer";
|
|
||||||
resources.ApplyResources(this.menuSpeedServer, "menuSpeedServer");
|
resources.ApplyResources(this.menuSpeedServer, "menuSpeedServer");
|
||||||
|
this.menuSpeedServer.Name = "menuSpeedServer";
|
||||||
this.menuSpeedServer.Click += new System.EventHandler(this.menuSpeedServer_Click);
|
this.menuSpeedServer.Click += new System.EventHandler(this.menuSpeedServer_Click);
|
||||||
//
|
//
|
||||||
// tsbTestMe
|
// tsbTestMe
|
||||||
//
|
//
|
||||||
this.tsbTestMe.Name = "tsbTestMe";
|
|
||||||
resources.ApplyResources(this.tsbTestMe, "tsbTestMe");
|
resources.ApplyResources(this.tsbTestMe, "tsbTestMe");
|
||||||
|
this.tsbTestMe.Name = "tsbTestMe";
|
||||||
this.tsbTestMe.Click += new System.EventHandler(this.tsbTestMe_Click);
|
this.tsbTestMe.Click += new System.EventHandler(this.tsbTestMe_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator6
|
// toolStripSeparator6
|
||||||
//
|
//
|
||||||
this.toolStripSeparator6.Name = "toolStripSeparator6";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator6, "toolStripSeparator6");
|
resources.ApplyResources(this.toolStripSeparator6, "toolStripSeparator6");
|
||||||
|
this.toolStripSeparator6.Name = "toolStripSeparator6";
|
||||||
//
|
//
|
||||||
// menuExport2ClientConfig
|
// menuExport2ClientConfig
|
||||||
//
|
//
|
||||||
this.menuExport2ClientConfig.Name = "menuExport2ClientConfig";
|
|
||||||
resources.ApplyResources(this.menuExport2ClientConfig, "menuExport2ClientConfig");
|
resources.ApplyResources(this.menuExport2ClientConfig, "menuExport2ClientConfig");
|
||||||
|
this.menuExport2ClientConfig.Name = "menuExport2ClientConfig";
|
||||||
this.menuExport2ClientConfig.Click += new System.EventHandler(this.menuExport2ClientConfig_Click);
|
this.menuExport2ClientConfig.Click += new System.EventHandler(this.menuExport2ClientConfig_Click);
|
||||||
//
|
//
|
||||||
// menuExport2ServerConfig
|
// menuExport2ServerConfig
|
||||||
//
|
//
|
||||||
this.menuExport2ServerConfig.Name = "menuExport2ServerConfig";
|
|
||||||
resources.ApplyResources(this.menuExport2ServerConfig, "menuExport2ServerConfig");
|
resources.ApplyResources(this.menuExport2ServerConfig, "menuExport2ServerConfig");
|
||||||
|
this.menuExport2ServerConfig.Name = "menuExport2ServerConfig";
|
||||||
this.menuExport2ServerConfig.Click += new System.EventHandler(this.menuExport2ServerConfig_Click);
|
this.menuExport2ServerConfig.Click += new System.EventHandler(this.menuExport2ServerConfig_Click);
|
||||||
//
|
//
|
||||||
// menuExport2ShareUrl
|
// menuExport2ShareUrl
|
||||||
//
|
//
|
||||||
this.menuExport2ShareUrl.Name = "menuExport2ShareUrl";
|
|
||||||
resources.ApplyResources(this.menuExport2ShareUrl, "menuExport2ShareUrl");
|
resources.ApplyResources(this.menuExport2ShareUrl, "menuExport2ShareUrl");
|
||||||
|
this.menuExport2ShareUrl.Name = "menuExport2ShareUrl";
|
||||||
this.menuExport2ShareUrl.Click += new System.EventHandler(this.menuExport2ShareUrl_Click);
|
this.menuExport2ShareUrl.Click += new System.EventHandler(this.menuExport2ShareUrl_Click);
|
||||||
//
|
//
|
||||||
// menuExport2SubContent
|
// menuExport2SubContent
|
||||||
//
|
//
|
||||||
this.menuExport2SubContent.Name = "menuExport2SubContent";
|
|
||||||
resources.ApplyResources(this.menuExport2SubContent, "menuExport2SubContent");
|
resources.ApplyResources(this.menuExport2SubContent, "menuExport2SubContent");
|
||||||
|
this.menuExport2SubContent.Name = "menuExport2SubContent";
|
||||||
this.menuExport2SubContent.Click += new System.EventHandler(this.menuExport2SubContent_Click);
|
this.menuExport2SubContent.Click += new System.EventHandler(this.menuExport2SubContent_Click);
|
||||||
//
|
//
|
||||||
// tsbServer
|
// tsbServer
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tsbServer, "tsbServer");
|
||||||
this.tsbServer.DropDown = this.cmsLv;
|
this.tsbServer.DropDown = this.cmsLv;
|
||||||
this.tsbServer.Image = global::v2rayN.Properties.Resources.server;
|
this.tsbServer.Image = global::v2rayN.Properties.Resources.server;
|
||||||
resources.ApplyResources(this.tsbServer, "tsbServer");
|
|
||||||
this.tsbServer.Name = "tsbServer";
|
this.tsbServer.Name = "tsbServer";
|
||||||
//
|
//
|
||||||
// qrCodeControl
|
// qrCodeControl
|
||||||
@@ -384,14 +395,14 @@
|
|||||||
//
|
//
|
||||||
// notifyMain
|
// notifyMain
|
||||||
//
|
//
|
||||||
this.notifyMain.ContextMenuStrip = this.cmsMain;
|
|
||||||
resources.ApplyResources(this.notifyMain, "notifyMain");
|
resources.ApplyResources(this.notifyMain, "notifyMain");
|
||||||
|
this.notifyMain.ContextMenuStrip = this.cmsMain;
|
||||||
this.notifyMain.MouseClick += new System.Windows.Forms.MouseEventHandler(this.notifyMain_MouseClick);
|
this.notifyMain.MouseClick += new System.Windows.Forms.MouseEventHandler(this.notifyMain_MouseClick);
|
||||||
//
|
//
|
||||||
// cmsMain
|
// cmsMain
|
||||||
//
|
//
|
||||||
this.cmsMain.ImageScalingSize = new System.Drawing.Size(20, 20);
|
|
||||||
resources.ApplyResources(this.cmsMain, "cmsMain");
|
resources.ApplyResources(this.cmsMain, "cmsMain");
|
||||||
|
this.cmsMain.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
this.cmsMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.cmsMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.menuSysAgentMode,
|
this.menuSysAgentMode,
|
||||||
this.menuServers,
|
this.menuServers,
|
||||||
@@ -408,6 +419,7 @@
|
|||||||
//
|
//
|
||||||
// menuSysAgentMode
|
// menuSysAgentMode
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.menuSysAgentMode, "menuSysAgentMode");
|
||||||
this.menuSysAgentMode.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.menuSysAgentMode.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.menuNotEnabledHttp,
|
this.menuNotEnabledHttp,
|
||||||
this.menuGlobal,
|
this.menuGlobal,
|
||||||
@@ -417,88 +429,87 @@
|
|||||||
this.menuKeepNothing,
|
this.menuKeepNothing,
|
||||||
this.menuKeepPACNothing});
|
this.menuKeepPACNothing});
|
||||||
this.menuSysAgentMode.Name = "menuSysAgentMode";
|
this.menuSysAgentMode.Name = "menuSysAgentMode";
|
||||||
resources.ApplyResources(this.menuSysAgentMode, "menuSysAgentMode");
|
|
||||||
//
|
//
|
||||||
// menuNotEnabledHttp
|
// menuNotEnabledHttp
|
||||||
//
|
//
|
||||||
this.menuNotEnabledHttp.Name = "menuNotEnabledHttp";
|
|
||||||
resources.ApplyResources(this.menuNotEnabledHttp, "menuNotEnabledHttp");
|
resources.ApplyResources(this.menuNotEnabledHttp, "menuNotEnabledHttp");
|
||||||
|
this.menuNotEnabledHttp.Name = "menuNotEnabledHttp";
|
||||||
this.menuNotEnabledHttp.Click += new System.EventHandler(this.menuNotEnabledHttp_Click);
|
this.menuNotEnabledHttp.Click += new System.EventHandler(this.menuNotEnabledHttp_Click);
|
||||||
//
|
//
|
||||||
// menuGlobal
|
// menuGlobal
|
||||||
//
|
//
|
||||||
this.menuGlobal.Name = "menuGlobal";
|
|
||||||
resources.ApplyResources(this.menuGlobal, "menuGlobal");
|
resources.ApplyResources(this.menuGlobal, "menuGlobal");
|
||||||
|
this.menuGlobal.Name = "menuGlobal";
|
||||||
this.menuGlobal.Click += new System.EventHandler(this.menuGlobal_Click);
|
this.menuGlobal.Click += new System.EventHandler(this.menuGlobal_Click);
|
||||||
//
|
//
|
||||||
// menuGlobalPAC
|
// menuGlobalPAC
|
||||||
//
|
//
|
||||||
this.menuGlobalPAC.Name = "menuGlobalPAC";
|
|
||||||
resources.ApplyResources(this.menuGlobalPAC, "menuGlobalPAC");
|
resources.ApplyResources(this.menuGlobalPAC, "menuGlobalPAC");
|
||||||
|
this.menuGlobalPAC.Name = "menuGlobalPAC";
|
||||||
this.menuGlobalPAC.Click += new System.EventHandler(this.menuGlobalPAC_Click);
|
this.menuGlobalPAC.Click += new System.EventHandler(this.menuGlobalPAC_Click);
|
||||||
//
|
//
|
||||||
// menuKeep
|
// menuKeep
|
||||||
//
|
//
|
||||||
this.menuKeep.Name = "menuKeep";
|
|
||||||
resources.ApplyResources(this.menuKeep, "menuKeep");
|
resources.ApplyResources(this.menuKeep, "menuKeep");
|
||||||
|
this.menuKeep.Name = "menuKeep";
|
||||||
this.menuKeep.Click += new System.EventHandler(this.menuKeep_Click);
|
this.menuKeep.Click += new System.EventHandler(this.menuKeep_Click);
|
||||||
//
|
//
|
||||||
// menuKeepPAC
|
// menuKeepPAC
|
||||||
//
|
//
|
||||||
this.menuKeepPAC.Name = "menuKeepPAC";
|
|
||||||
resources.ApplyResources(this.menuKeepPAC, "menuKeepPAC");
|
resources.ApplyResources(this.menuKeepPAC, "menuKeepPAC");
|
||||||
|
this.menuKeepPAC.Name = "menuKeepPAC";
|
||||||
this.menuKeepPAC.Click += new System.EventHandler(this.menuKeepPAC_Click);
|
this.menuKeepPAC.Click += new System.EventHandler(this.menuKeepPAC_Click);
|
||||||
//
|
//
|
||||||
// menuKeepNothing
|
// menuKeepNothing
|
||||||
//
|
//
|
||||||
this.menuKeepNothing.Name = "menuKeepNothing";
|
|
||||||
resources.ApplyResources(this.menuKeepNothing, "menuKeepNothing");
|
resources.ApplyResources(this.menuKeepNothing, "menuKeepNothing");
|
||||||
|
this.menuKeepNothing.Name = "menuKeepNothing";
|
||||||
this.menuKeepNothing.Click += new System.EventHandler(this.menuKeepNothing_Click);
|
this.menuKeepNothing.Click += new System.EventHandler(this.menuKeepNothing_Click);
|
||||||
//
|
//
|
||||||
// menuKeepPACNothing
|
// menuKeepPACNothing
|
||||||
//
|
//
|
||||||
this.menuKeepPACNothing.Name = "menuKeepPACNothing";
|
|
||||||
resources.ApplyResources(this.menuKeepPACNothing, "menuKeepPACNothing");
|
resources.ApplyResources(this.menuKeepPACNothing, "menuKeepPACNothing");
|
||||||
|
this.menuKeepPACNothing.Name = "menuKeepPACNothing";
|
||||||
this.menuKeepPACNothing.Click += new System.EventHandler(this.menuKeepPACNothing_Click);
|
this.menuKeepPACNothing.Click += new System.EventHandler(this.menuKeepPACNothing_Click);
|
||||||
//
|
//
|
||||||
// menuServers
|
// menuServers
|
||||||
//
|
//
|
||||||
this.menuServers.Name = "menuServers";
|
|
||||||
resources.ApplyResources(this.menuServers, "menuServers");
|
resources.ApplyResources(this.menuServers, "menuServers");
|
||||||
|
this.menuServers.Name = "menuServers";
|
||||||
//
|
//
|
||||||
// menuAddServers2
|
// menuAddServers2
|
||||||
//
|
//
|
||||||
this.menuAddServers2.Name = "menuAddServers2";
|
|
||||||
resources.ApplyResources(this.menuAddServers2, "menuAddServers2");
|
resources.ApplyResources(this.menuAddServers2, "menuAddServers2");
|
||||||
|
this.menuAddServers2.Name = "menuAddServers2";
|
||||||
this.menuAddServers2.Click += new System.EventHandler(this.menuAddServers_Click);
|
this.menuAddServers2.Click += new System.EventHandler(this.menuAddServers_Click);
|
||||||
//
|
//
|
||||||
// menuScanScreen2
|
// menuScanScreen2
|
||||||
//
|
//
|
||||||
this.menuScanScreen2.Name = "menuScanScreen2";
|
|
||||||
resources.ApplyResources(this.menuScanScreen2, "menuScanScreen2");
|
resources.ApplyResources(this.menuScanScreen2, "menuScanScreen2");
|
||||||
|
this.menuScanScreen2.Name = "menuScanScreen2";
|
||||||
this.menuScanScreen2.Click += new System.EventHandler(this.menuScanScreen_Click);
|
this.menuScanScreen2.Click += new System.EventHandler(this.menuScanScreen_Click);
|
||||||
//
|
//
|
||||||
// menuCopyPACUrl
|
// menuCopyPACUrl
|
||||||
//
|
//
|
||||||
this.menuCopyPACUrl.Name = "menuCopyPACUrl";
|
|
||||||
resources.ApplyResources(this.menuCopyPACUrl, "menuCopyPACUrl");
|
resources.ApplyResources(this.menuCopyPACUrl, "menuCopyPACUrl");
|
||||||
|
this.menuCopyPACUrl.Name = "menuCopyPACUrl";
|
||||||
this.menuCopyPACUrl.Click += new System.EventHandler(this.menuCopyPACUrl_Click);
|
this.menuCopyPACUrl.Click += new System.EventHandler(this.menuCopyPACUrl_Click);
|
||||||
//
|
//
|
||||||
// menuUpdateSubscriptions
|
// menuUpdateSubscriptions
|
||||||
//
|
//
|
||||||
this.menuUpdateSubscriptions.Name = "menuUpdateSubscriptions";
|
|
||||||
resources.ApplyResources(this.menuUpdateSubscriptions, "menuUpdateSubscriptions");
|
resources.ApplyResources(this.menuUpdateSubscriptions, "menuUpdateSubscriptions");
|
||||||
|
this.menuUpdateSubscriptions.Name = "menuUpdateSubscriptions";
|
||||||
this.menuUpdateSubscriptions.Click += new System.EventHandler(this.menuUpdateSubscriptions_Click);
|
this.menuUpdateSubscriptions.Click += new System.EventHandler(this.menuUpdateSubscriptions_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator2
|
// toolStripSeparator2
|
||||||
//
|
//
|
||||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator2, "toolStripSeparator2");
|
resources.ApplyResources(this.toolStripSeparator2, "toolStripSeparator2");
|
||||||
|
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||||
//
|
//
|
||||||
// menuExit
|
// menuExit
|
||||||
//
|
//
|
||||||
this.menuExit.Name = "menuExit";
|
|
||||||
resources.ApplyResources(this.menuExit, "menuExit");
|
resources.ApplyResources(this.menuExit, "menuExit");
|
||||||
|
this.menuExit.Name = "menuExit";
|
||||||
this.menuExit.Click += new System.EventHandler(this.menuExit_Click);
|
this.menuExit.Click += new System.EventHandler(this.menuExit_Click);
|
||||||
//
|
//
|
||||||
// bgwScan
|
// bgwScan
|
||||||
@@ -509,30 +520,31 @@
|
|||||||
//
|
//
|
||||||
// groupBox1
|
// groupBox1
|
||||||
//
|
//
|
||||||
this.groupBox1.Controls.Add(this.scMain);
|
|
||||||
resources.ApplyResources(this.groupBox1, "groupBox1");
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Controls.Add(this.scMain);
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
//
|
//
|
||||||
// groupBox2
|
// groupBox2
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.groupBox2, "groupBox2");
|
||||||
this.groupBox2.Controls.Add(this.txtMsgBox);
|
this.groupBox2.Controls.Add(this.txtMsgBox);
|
||||||
this.groupBox2.Controls.Add(this.ssMain);
|
this.groupBox2.Controls.Add(this.ssMain);
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
|
||||||
this.groupBox2.Name = "groupBox2";
|
this.groupBox2.Name = "groupBox2";
|
||||||
this.groupBox2.TabStop = false;
|
this.groupBox2.TabStop = false;
|
||||||
//
|
//
|
||||||
// txtMsgBox
|
// txtMsgBox
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.txtMsgBox, "txtMsgBox");
|
||||||
this.txtMsgBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(41)))), ((int)(((byte)(49)))), ((int)(((byte)(52)))));
|
this.txtMsgBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(41)))), ((int)(((byte)(49)))), ((int)(((byte)(52)))));
|
||||||
this.txtMsgBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
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.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(226)))), ((int)(((byte)(228)))));
|
||||||
this.txtMsgBox.Name = "txtMsgBox";
|
this.txtMsgBox.Name = "txtMsgBox";
|
||||||
this.txtMsgBox.ReadOnly = true;
|
this.txtMsgBox.ReadOnly = true;
|
||||||
//
|
//
|
||||||
// ssMain
|
// ssMain
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.ssMain, "ssMain");
|
||||||
this.ssMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.ssMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.toolSslSocksPortLab,
|
this.toolSslSocksPortLab,
|
||||||
this.toolSslSocksPort,
|
this.toolSslSocksPort,
|
||||||
@@ -545,7 +557,6 @@
|
|||||||
this.toolSslBlank3,
|
this.toolSslBlank3,
|
||||||
this.toolSslServerSpeed,
|
this.toolSslServerSpeed,
|
||||||
this.toolSslBlank4});
|
this.toolSslBlank4});
|
||||||
resources.ApplyResources(this.ssMain, "ssMain");
|
|
||||||
this.ssMain.Name = "ssMain";
|
this.ssMain.Name = "ssMain";
|
||||||
this.ssMain.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.ssMain_ItemClicked);
|
this.ssMain.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.ssMain_ItemClicked);
|
||||||
//
|
//
|
||||||
@@ -556,8 +567,8 @@
|
|||||||
//
|
//
|
||||||
// toolSslSocksPort
|
// toolSslSocksPort
|
||||||
//
|
//
|
||||||
this.toolSslSocksPort.Name = "toolSslSocksPort";
|
|
||||||
resources.ApplyResources(this.toolSslSocksPort, "toolSslSocksPort");
|
resources.ApplyResources(this.toolSslSocksPort, "toolSslSocksPort");
|
||||||
|
this.toolSslSocksPort.Name = "toolSslSocksPort";
|
||||||
//
|
//
|
||||||
// toolSslBlank1
|
// toolSslBlank1
|
||||||
//
|
//
|
||||||
@@ -572,8 +583,8 @@
|
|||||||
//
|
//
|
||||||
// toolSslHttpPort
|
// toolSslHttpPort
|
||||||
//
|
//
|
||||||
this.toolSslHttpPort.Name = "toolSslHttpPort";
|
|
||||||
resources.ApplyResources(this.toolSslHttpPort, "toolSslHttpPort");
|
resources.ApplyResources(this.toolSslHttpPort, "toolSslHttpPort");
|
||||||
|
this.toolSslHttpPort.Name = "toolSslHttpPort";
|
||||||
//
|
//
|
||||||
// toolSslBlank2
|
// toolSslBlank2
|
||||||
//
|
//
|
||||||
@@ -588,8 +599,8 @@
|
|||||||
//
|
//
|
||||||
// toolSslPacPort
|
// toolSslPacPort
|
||||||
//
|
//
|
||||||
this.toolSslPacPort.Name = "toolSslPacPort";
|
|
||||||
resources.ApplyResources(this.toolSslPacPort, "toolSslPacPort");
|
resources.ApplyResources(this.toolSslPacPort, "toolSslPacPort");
|
||||||
|
this.toolSslPacPort.Name = "toolSslPacPort";
|
||||||
//
|
//
|
||||||
// toolSslBlank3
|
// toolSslBlank3
|
||||||
//
|
//
|
||||||
@@ -605,8 +616,8 @@
|
|||||||
//
|
//
|
||||||
// toolSslBlank4
|
// toolSslBlank4
|
||||||
//
|
//
|
||||||
this.toolSslBlank4.Name = "toolSslBlank4";
|
|
||||||
resources.ApplyResources(this.toolSslBlank4, "toolSslBlank4");
|
resources.ApplyResources(this.toolSslBlank4, "toolSslBlank4");
|
||||||
|
this.toolSslBlank4.Name = "toolSslBlank4";
|
||||||
//
|
//
|
||||||
// panel1
|
// panel1
|
||||||
//
|
//
|
||||||
@@ -615,6 +626,7 @@
|
|||||||
//
|
//
|
||||||
// tsMain
|
// tsMain
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tsMain, "tsMain");
|
||||||
this.tsMain.ImageScalingSize = new System.Drawing.Size(32, 32);
|
this.tsMain.ImageScalingSize = new System.Drawing.Size(32, 32);
|
||||||
this.tsMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.tsMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.tsbServer,
|
this.tsbServer,
|
||||||
@@ -632,61 +644,60 @@
|
|||||||
this.tsbPromotion,
|
this.tsbPromotion,
|
||||||
this.toolStripSeparator11,
|
this.toolStripSeparator11,
|
||||||
this.tsbClose});
|
this.tsbClose});
|
||||||
resources.ApplyResources(this.tsMain, "tsMain");
|
|
||||||
this.tsMain.Name = "tsMain";
|
this.tsMain.Name = "tsMain";
|
||||||
this.tsMain.TabStop = true;
|
this.tsMain.TabStop = true;
|
||||||
//
|
//
|
||||||
// toolStripSeparator4
|
// toolStripSeparator4
|
||||||
//
|
//
|
||||||
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator4, "toolStripSeparator4");
|
resources.ApplyResources(this.toolStripSeparator4, "toolStripSeparator4");
|
||||||
|
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
||||||
//
|
//
|
||||||
// tsbSub
|
// tsbSub
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tsbSub, "tsbSub");
|
||||||
this.tsbSub.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.tsbSub.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.tsbSubSetting,
|
this.tsbSubSetting,
|
||||||
this.tsbSubUpdate});
|
this.tsbSubUpdate});
|
||||||
this.tsbSub.Image = global::v2rayN.Properties.Resources.sub;
|
this.tsbSub.Image = global::v2rayN.Properties.Resources.sub;
|
||||||
resources.ApplyResources(this.tsbSub, "tsbSub");
|
|
||||||
this.tsbSub.Name = "tsbSub";
|
this.tsbSub.Name = "tsbSub";
|
||||||
//
|
//
|
||||||
// tsbSubSetting
|
// tsbSubSetting
|
||||||
//
|
//
|
||||||
this.tsbSubSetting.Name = "tsbSubSetting";
|
|
||||||
resources.ApplyResources(this.tsbSubSetting, "tsbSubSetting");
|
resources.ApplyResources(this.tsbSubSetting, "tsbSubSetting");
|
||||||
|
this.tsbSubSetting.Name = "tsbSubSetting";
|
||||||
this.tsbSubSetting.Click += new System.EventHandler(this.tsbSubSetting_Click);
|
this.tsbSubSetting.Click += new System.EventHandler(this.tsbSubSetting_Click);
|
||||||
//
|
//
|
||||||
// tsbSubUpdate
|
// tsbSubUpdate
|
||||||
//
|
//
|
||||||
this.tsbSubUpdate.Name = "tsbSubUpdate";
|
|
||||||
resources.ApplyResources(this.tsbSubUpdate, "tsbSubUpdate");
|
resources.ApplyResources(this.tsbSubUpdate, "tsbSubUpdate");
|
||||||
|
this.tsbSubUpdate.Name = "tsbSubUpdate";
|
||||||
this.tsbSubUpdate.Click += new System.EventHandler(this.tsbSubUpdate_Click);
|
this.tsbSubUpdate.Click += new System.EventHandler(this.tsbSubUpdate_Click);
|
||||||
//
|
//
|
||||||
// tsbQRCodeSwitch
|
// tsbQRCodeSwitch
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tsbQRCodeSwitch, "tsbQRCodeSwitch");
|
||||||
this.tsbQRCodeSwitch.CheckOnClick = true;
|
this.tsbQRCodeSwitch.CheckOnClick = true;
|
||||||
this.tsbQRCodeSwitch.ForeColor = System.Drawing.Color.Black;
|
this.tsbQRCodeSwitch.ForeColor = System.Drawing.Color.Black;
|
||||||
this.tsbQRCodeSwitch.Image = global::v2rayN.Properties.Resources.share;
|
this.tsbQRCodeSwitch.Image = global::v2rayN.Properties.Resources.share;
|
||||||
resources.ApplyResources(this.tsbQRCodeSwitch, "tsbQRCodeSwitch");
|
|
||||||
this.tsbQRCodeSwitch.Name = "tsbQRCodeSwitch";
|
this.tsbQRCodeSwitch.Name = "tsbQRCodeSwitch";
|
||||||
this.tsbQRCodeSwitch.CheckedChanged += new System.EventHandler(this.tsbQRCodeSwitch_CheckedChanged);
|
this.tsbQRCodeSwitch.CheckedChanged += new System.EventHandler(this.tsbQRCodeSwitch_CheckedChanged);
|
||||||
//
|
//
|
||||||
// toolStripSeparator8
|
// toolStripSeparator8
|
||||||
//
|
//
|
||||||
this.toolStripSeparator8.Name = "toolStripSeparator8";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator8, "toolStripSeparator8");
|
resources.ApplyResources(this.toolStripSeparator8, "toolStripSeparator8");
|
||||||
|
this.toolStripSeparator8.Name = "toolStripSeparator8";
|
||||||
//
|
//
|
||||||
// tsbOptionSetting
|
// tsbOptionSetting
|
||||||
//
|
//
|
||||||
this.tsbOptionSetting.Image = global::v2rayN.Properties.Resources.option;
|
|
||||||
resources.ApplyResources(this.tsbOptionSetting, "tsbOptionSetting");
|
resources.ApplyResources(this.tsbOptionSetting, "tsbOptionSetting");
|
||||||
|
this.tsbOptionSetting.Image = global::v2rayN.Properties.Resources.option;
|
||||||
this.tsbOptionSetting.Name = "tsbOptionSetting";
|
this.tsbOptionSetting.Name = "tsbOptionSetting";
|
||||||
this.tsbOptionSetting.Click += new System.EventHandler(this.tsbOptionSetting_Click);
|
this.tsbOptionSetting.Click += new System.EventHandler(this.tsbOptionSetting_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator5
|
// toolStripSeparator5
|
||||||
//
|
//
|
||||||
this.toolStripSeparator5.Name = "toolStripSeparator5";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator5, "toolStripSeparator5");
|
resources.ApplyResources(this.toolStripSeparator5, "toolStripSeparator5");
|
||||||
|
this.toolStripSeparator5.Name = "toolStripSeparator5";
|
||||||
//
|
//
|
||||||
// tsbReload
|
// tsbReload
|
||||||
//
|
//
|
||||||
@@ -696,11 +707,12 @@
|
|||||||
//
|
//
|
||||||
// toolStripSeparator7
|
// toolStripSeparator7
|
||||||
//
|
//
|
||||||
this.toolStripSeparator7.Name = "toolStripSeparator7";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator7, "toolStripSeparator7");
|
resources.ApplyResources(this.toolStripSeparator7, "toolStripSeparator7");
|
||||||
|
this.toolStripSeparator7.Name = "toolStripSeparator7";
|
||||||
//
|
//
|
||||||
// tsbCheckUpdate
|
// tsbCheckUpdate
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tsbCheckUpdate, "tsbCheckUpdate");
|
||||||
this.tsbCheckUpdate.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.tsbCheckUpdate.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.tsbCheckUpdateN,
|
this.tsbCheckUpdateN,
|
||||||
this.tsbCheckUpdateCore,
|
this.tsbCheckUpdateCore,
|
||||||
@@ -708,45 +720,45 @@
|
|||||||
this.toolStripSeparator13,
|
this.toolStripSeparator13,
|
||||||
this.tsbCheckClearPACList});
|
this.tsbCheckClearPACList});
|
||||||
this.tsbCheckUpdate.Image = global::v2rayN.Properties.Resources.checkupdate;
|
this.tsbCheckUpdate.Image = global::v2rayN.Properties.Resources.checkupdate;
|
||||||
resources.ApplyResources(this.tsbCheckUpdate, "tsbCheckUpdate");
|
|
||||||
this.tsbCheckUpdate.Name = "tsbCheckUpdate";
|
this.tsbCheckUpdate.Name = "tsbCheckUpdate";
|
||||||
//
|
//
|
||||||
// tsbCheckUpdateN
|
// tsbCheckUpdateN
|
||||||
//
|
//
|
||||||
this.tsbCheckUpdateN.Name = "tsbCheckUpdateN";
|
|
||||||
resources.ApplyResources(this.tsbCheckUpdateN, "tsbCheckUpdateN");
|
resources.ApplyResources(this.tsbCheckUpdateN, "tsbCheckUpdateN");
|
||||||
|
this.tsbCheckUpdateN.Name = "tsbCheckUpdateN";
|
||||||
this.tsbCheckUpdateN.Click += new System.EventHandler(this.tsbCheckUpdateN_Click);
|
this.tsbCheckUpdateN.Click += new System.EventHandler(this.tsbCheckUpdateN_Click);
|
||||||
//
|
//
|
||||||
// tsbCheckUpdateCore
|
// tsbCheckUpdateCore
|
||||||
//
|
//
|
||||||
this.tsbCheckUpdateCore.Name = "tsbCheckUpdateCore";
|
|
||||||
resources.ApplyResources(this.tsbCheckUpdateCore, "tsbCheckUpdateCore");
|
resources.ApplyResources(this.tsbCheckUpdateCore, "tsbCheckUpdateCore");
|
||||||
|
this.tsbCheckUpdateCore.Name = "tsbCheckUpdateCore";
|
||||||
this.tsbCheckUpdateCore.Click += new System.EventHandler(this.tsbCheckUpdateCore_Click);
|
this.tsbCheckUpdateCore.Click += new System.EventHandler(this.tsbCheckUpdateCore_Click);
|
||||||
//
|
//
|
||||||
// tsbCheckUpdatePACList
|
// tsbCheckUpdatePACList
|
||||||
//
|
//
|
||||||
this.tsbCheckUpdatePACList.Name = "tsbCheckUpdatePACList";
|
|
||||||
resources.ApplyResources(this.tsbCheckUpdatePACList, "tsbCheckUpdatePACList");
|
resources.ApplyResources(this.tsbCheckUpdatePACList, "tsbCheckUpdatePACList");
|
||||||
|
this.tsbCheckUpdatePACList.Name = "tsbCheckUpdatePACList";
|
||||||
this.tsbCheckUpdatePACList.Click += new System.EventHandler(this.tsbCheckUpdatePACList_Click);
|
this.tsbCheckUpdatePACList.Click += new System.EventHandler(this.tsbCheckUpdatePACList_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator13
|
// toolStripSeparator13
|
||||||
//
|
//
|
||||||
this.toolStripSeparator13.Name = "toolStripSeparator13";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator13, "toolStripSeparator13");
|
resources.ApplyResources(this.toolStripSeparator13, "toolStripSeparator13");
|
||||||
|
this.toolStripSeparator13.Name = "toolStripSeparator13";
|
||||||
//
|
//
|
||||||
// tsbCheckClearPACList
|
// tsbCheckClearPACList
|
||||||
//
|
//
|
||||||
this.tsbCheckClearPACList.Name = "tsbCheckClearPACList";
|
|
||||||
resources.ApplyResources(this.tsbCheckClearPACList, "tsbCheckClearPACList");
|
resources.ApplyResources(this.tsbCheckClearPACList, "tsbCheckClearPACList");
|
||||||
|
this.tsbCheckClearPACList.Name = "tsbCheckClearPACList";
|
||||||
this.tsbCheckClearPACList.Click += new System.EventHandler(this.tsbCheckClearPACList_Click);
|
this.tsbCheckClearPACList.Click += new System.EventHandler(this.tsbCheckClearPACList_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator10
|
// toolStripSeparator10
|
||||||
//
|
//
|
||||||
this.toolStripSeparator10.Name = "toolStripSeparator10";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator10, "toolStripSeparator10");
|
resources.ApplyResources(this.toolStripSeparator10, "toolStripSeparator10");
|
||||||
|
this.toolStripSeparator10.Name = "toolStripSeparator10";
|
||||||
//
|
//
|
||||||
// tsbHelp
|
// tsbHelp
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tsbHelp, "tsbHelp");
|
||||||
this.tsbHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.tsbHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.tsbAbout,
|
this.tsbAbout,
|
||||||
this.tsbV2rayWebsite,
|
this.tsbV2rayWebsite,
|
||||||
@@ -754,50 +766,49 @@
|
|||||||
this.tsbLanguageDef,
|
this.tsbLanguageDef,
|
||||||
this.tsbLanguageZhHans});
|
this.tsbLanguageZhHans});
|
||||||
this.tsbHelp.Image = global::v2rayN.Properties.Resources.help;
|
this.tsbHelp.Image = global::v2rayN.Properties.Resources.help;
|
||||||
resources.ApplyResources(this.tsbHelp, "tsbHelp");
|
|
||||||
this.tsbHelp.Name = "tsbHelp";
|
this.tsbHelp.Name = "tsbHelp";
|
||||||
//
|
//
|
||||||
// tsbAbout
|
// tsbAbout
|
||||||
//
|
//
|
||||||
this.tsbAbout.Name = "tsbAbout";
|
|
||||||
resources.ApplyResources(this.tsbAbout, "tsbAbout");
|
resources.ApplyResources(this.tsbAbout, "tsbAbout");
|
||||||
|
this.tsbAbout.Name = "tsbAbout";
|
||||||
this.tsbAbout.Click += new System.EventHandler(this.tsbAbout_Click);
|
this.tsbAbout.Click += new System.EventHandler(this.tsbAbout_Click);
|
||||||
//
|
//
|
||||||
// tsbV2rayWebsite
|
// tsbV2rayWebsite
|
||||||
//
|
//
|
||||||
this.tsbV2rayWebsite.Name = "tsbV2rayWebsite";
|
|
||||||
resources.ApplyResources(this.tsbV2rayWebsite, "tsbV2rayWebsite");
|
resources.ApplyResources(this.tsbV2rayWebsite, "tsbV2rayWebsite");
|
||||||
|
this.tsbV2rayWebsite.Name = "tsbV2rayWebsite";
|
||||||
this.tsbV2rayWebsite.Click += new System.EventHandler(this.tsbV2rayWebsite_Click);
|
this.tsbV2rayWebsite.Click += new System.EventHandler(this.tsbV2rayWebsite_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator12
|
// toolStripSeparator12
|
||||||
//
|
//
|
||||||
this.toolStripSeparator12.Name = "toolStripSeparator12";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator12, "toolStripSeparator12");
|
resources.ApplyResources(this.toolStripSeparator12, "toolStripSeparator12");
|
||||||
|
this.toolStripSeparator12.Name = "toolStripSeparator12";
|
||||||
//
|
//
|
||||||
// tsbLanguageDef
|
// tsbLanguageDef
|
||||||
//
|
//
|
||||||
this.tsbLanguageDef.Name = "tsbLanguageDef";
|
|
||||||
resources.ApplyResources(this.tsbLanguageDef, "tsbLanguageDef");
|
resources.ApplyResources(this.tsbLanguageDef, "tsbLanguageDef");
|
||||||
|
this.tsbLanguageDef.Name = "tsbLanguageDef";
|
||||||
this.tsbLanguageDef.Click += new System.EventHandler(this.tsbLanguageDef_Click);
|
this.tsbLanguageDef.Click += new System.EventHandler(this.tsbLanguageDef_Click);
|
||||||
//
|
//
|
||||||
// tsbLanguageZhHans
|
// tsbLanguageZhHans
|
||||||
//
|
//
|
||||||
this.tsbLanguageZhHans.Name = "tsbLanguageZhHans";
|
|
||||||
resources.ApplyResources(this.tsbLanguageZhHans, "tsbLanguageZhHans");
|
resources.ApplyResources(this.tsbLanguageZhHans, "tsbLanguageZhHans");
|
||||||
|
this.tsbLanguageZhHans.Name = "tsbLanguageZhHans";
|
||||||
this.tsbLanguageZhHans.Click += new System.EventHandler(this.tsbLanguageZhHans_Click);
|
this.tsbLanguageZhHans.Click += new System.EventHandler(this.tsbLanguageZhHans_Click);
|
||||||
//
|
//
|
||||||
// tsbPromotion
|
// tsbPromotion
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tsbPromotion, "tsbPromotion");
|
||||||
this.tsbPromotion.ForeColor = System.Drawing.Color.Black;
|
this.tsbPromotion.ForeColor = System.Drawing.Color.Black;
|
||||||
this.tsbPromotion.Image = global::v2rayN.Properties.Resources.promotion;
|
this.tsbPromotion.Image = global::v2rayN.Properties.Resources.promotion;
|
||||||
resources.ApplyResources(this.tsbPromotion, "tsbPromotion");
|
|
||||||
this.tsbPromotion.Name = "tsbPromotion";
|
this.tsbPromotion.Name = "tsbPromotion";
|
||||||
this.tsbPromotion.Click += new System.EventHandler(this.tsbPromotion_Click);
|
this.tsbPromotion.Click += new System.EventHandler(this.tsbPromotion_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator11
|
// toolStripSeparator11
|
||||||
//
|
//
|
||||||
this.toolStripSeparator11.Name = "toolStripSeparator11";
|
|
||||||
resources.ApplyResources(this.toolStripSeparator11, "toolStripSeparator11");
|
resources.ApplyResources(this.toolStripSeparator11, "toolStripSeparator11");
|
||||||
|
this.toolStripSeparator11.Name = "toolStripSeparator11";
|
||||||
//
|
//
|
||||||
// tsbClose
|
// tsbClose
|
||||||
//
|
//
|
||||||
@@ -935,6 +946,7 @@
|
|||||||
private System.Windows.Forms.ToolStripMenuItem tsbTestMe;
|
private System.Windows.Forms.ToolStripMenuItem tsbTestMe;
|
||||||
private System.Windows.Forms.ToolStripButton tsbReload;
|
private System.Windows.Forms.ToolStripButton tsbReload;
|
||||||
private System.Windows.Forms.ToolStripButton tsbQRCodeSwitch;
|
private System.Windows.Forms.ToolStripButton tsbQRCodeSwitch;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuAddVlessServer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ namespace v2rayN.Forms
|
|||||||
private void RefreshServers()
|
private void RefreshServers()
|
||||||
{
|
{
|
||||||
RefreshServersView();
|
RefreshServersView();
|
||||||
lvServers.AutoResizeColumns();
|
//lvServers.AutoResizeColumns();
|
||||||
RefreshServersMenu();
|
RefreshServersMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,7 +178,7 @@ namespace v2rayN.Forms
|
|||||||
lvServers.View = View.Details;
|
lvServers.View = View.Details;
|
||||||
lvServers.Scrollable = true;
|
lvServers.Scrollable = true;
|
||||||
lvServers.MultiSelect = true;
|
lvServers.MultiSelect = true;
|
||||||
lvServers.HeaderStyle = ColumnHeaderStyle.Nonclickable;
|
lvServers.HeaderStyle = ColumnHeaderStyle.Clickable;
|
||||||
|
|
||||||
lvServers.Columns.Add("", 30);
|
lvServers.Columns.Add("", 30);
|
||||||
lvServers.Columns.Add(UIRes.I18N("LvServiceType"), 80);
|
lvServers.Columns.Add(UIRes.I18N("LvServiceType"), 80);
|
||||||
@@ -239,7 +239,7 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ListViewItem lvItem = new ListViewItem(def);
|
ListViewItem lvItem = new ListViewItem(def);
|
||||||
_addSubItem(lvItem, EServerColName.type.ToString(), ((EConfigType)item.configType).ToString());
|
_addSubItem(lvItem, EServerColName.configType.ToString(), ((EConfigType)item.configType).ToString());
|
||||||
_addSubItem(lvItem, EServerColName.remarks.ToString(), item.remarks);
|
_addSubItem(lvItem, EServerColName.remarks.ToString(), item.remarks);
|
||||||
_addSubItem(lvItem, EServerColName.address.ToString(), item.address);
|
_addSubItem(lvItem, EServerColName.address.ToString(), item.address);
|
||||||
_addSubItem(lvItem, EServerColName.port.ToString(), item.port.ToString());
|
_addSubItem(lvItem, EServerColName.port.ToString(), item.port.ToString());
|
||||||
@@ -377,6 +377,35 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void lvServers_ColumnClick(object sender, ColumnClickEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Column < 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var tag = lvServers.Columns[e.Column].Tag?.ToString();
|
||||||
|
bool asc = Utils.IsNullOrEmpty(tag) ? true : !Convert.ToBoolean(tag);
|
||||||
|
if (ConfigHandler.SortServers(ref config, (EServerColName)e.Column, asc) != 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
lvServers.Columns[e.Column].Tag = Convert.ToString(asc);
|
||||||
|
RefreshServers();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.Column < 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region v2ray 操作
|
#region v2ray 操作
|
||||||
@@ -484,6 +513,19 @@ namespace v2rayN.Forms
|
|||||||
LoadV2ray();
|
LoadV2ray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (config.vmess[index].configType == (int)EConfigType.VLESS)
|
||||||
|
{
|
||||||
|
AddServer5Form fm = new AddServer5Form
|
||||||
|
{
|
||||||
|
EditIndex = index
|
||||||
|
};
|
||||||
|
if (fm.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
//刷新
|
||||||
|
RefreshServers();
|
||||||
|
LoadV2ray();
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
AddServer2Form fm2 = new AddServer2Form
|
AddServer2Form fm2 = new AddServer2Form
|
||||||
@@ -571,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)
|
private void menuRemoveServer_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -1228,11 +1284,11 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
int httpPort = config.GetLocalPort(Global.InboundHttp);
|
int httpPort = config.GetLocalPort(Global.InboundHttp);
|
||||||
WebProxy webProxy = new WebProxy(Global.Loopback, httpPort);
|
WebProxy webProxy = new WebProxy(Global.Loopback, httpPort);
|
||||||
downloadHandle.DownloadFileAsync(url, webProxy, 60);
|
downloadHandle.DownloadFileAsync(url, webProxy, 600);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
downloadHandle.DownloadFileAsync(url, null, 60);
|
downloadHandle.DownloadFileAsync(url, null, 600);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1269,7 +1325,16 @@ namespace v2rayN.Forms
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
string fileName = Utils.GetPath(downloadHandle.DownloadFileName);
|
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)
|
if (process.Id > 0)
|
||||||
{
|
{
|
||||||
menuExit_Click(null, null);
|
menuExit_Click(null, null);
|
||||||
@@ -1563,8 +1628,9 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -124,6 +124,12 @@
|
|||||||
<data name="menuAddVmessServer.Text" xml:space="preserve">
|
<data name="menuAddVmessServer.Text" xml:space="preserve">
|
||||||
<value>添加[VMess]服务器</value>
|
<value>添加[VMess]服务器</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="menuAddVlessServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>300, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuAddVlessServer.Text" xml:space="preserve">
|
||||||
|
<value>添加[VLESS]服务器</value>
|
||||||
|
</data>
|
||||||
<data name="menuAddShadowsocksServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuAddShadowsocksServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>300, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -241,6 +247,12 @@
|
|||||||
<data name="menuSpeedServer.Text" xml:space="preserve">
|
<data name="menuSpeedServer.Text" xml:space="preserve">
|
||||||
<value>测试服务器速度(多选) (Ctrl+T)</value>
|
<value>测试服务器速度(多选) (Ctrl+T)</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tsbTestMe.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>300, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbTestMe.Text" xml:space="preserve">
|
||||||
|
<value>测试当前服务状态</value>
|
||||||
|
</data>
|
||||||
<data name="toolStripSeparator6.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>297, 6</value>
|
<value>297, 6</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -275,7 +287,7 @@
|
|||||||
<value> 服务器 </value>
|
<value> 服务器 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmsLv.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmsLv.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>301, 534</value>
|
<value>301, 578</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lvServers.Items" mimetype="application/x-microsoft.net.object.binary.base64">
|
<data name="lvServers.Items" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
<value>
|
<value>
|
||||||
@@ -411,41 +423,35 @@
|
|||||||
<data name="tsbSub.Text" xml:space="preserve">
|
<data name="tsbSub.Text" xml:space="preserve">
|
||||||
<value> 订阅 </value>
|
<value> 订阅 </value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tsbQRCodeSwitch.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>52, 53</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbQRCodeSwitch.Text" xml:space="preserve">
|
||||||
|
<value> 分享 </value>
|
||||||
|
</data>
|
||||||
<data name="tsbOptionSetting.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbOptionSetting.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>76, 53</value>
|
<value>76, 53</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbOptionSetting.Text" xml:space="preserve">
|
<data name="tsbOptionSetting.Text" xml:space="preserve">
|
||||||
<value> 参数设置 </value>
|
<value> 参数设置 </value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tsbReload.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE3SURBVFhH7ZaBDQIhDEVvBEdwBDfQDXQER3AD3cARdAPd
|
||||||
|
QDfSDbQvuSb1AicFjJrwkxcN0FIolOuamv5VE2E+gLaPayWchEcE+hhTXVPhIoQmDcFYbKpoJtwEdX4X
|
||||||
|
jgIrXfTwnzb6dBw22BaJVdjJmWQs1/SdBRtE0U5cBXW2oSFRO0HtSEeW2FZ1wsq9sjuRdTDVAXnNuWLY
|
||||||
|
6JnAl0sYa/Q5q1dhq35ci+Bkq2HJvbZpxGeybAAuw4Fq+cnW1wPITgHFYxvBUw+qHEIL1yq1vDKhVlH3
|
||||||
|
NQwF4JkcFRWiUAB7IVW2FFPO3YqlgPd+LJf02e8Fdi3rMdIAcLDuf9UpeT0IS0G/hvhPm305vSl7EQFY
|
||||||
|
B6zCvozvYGzRM8zEoeg5TPZwDaGvpHQni1yzSxbXPW9q+hF13ROHuJnQcjbhtQAAAABJRU5ErkJggg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
<data name="tsbReload.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbReload.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>148, 22</value>
|
<value>76, 53</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbReload.Text" xml:space="preserve">
|
<data name="tsbReload.Text" xml:space="preserve">
|
||||||
<value> 重启服务 </value>
|
<value> 重启服务 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbTestMe.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>148, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbTestMe.Text" xml:space="preserve">
|
|
||||||
<value>测试当前服务状态</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbService.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
|
||||||
wwAADsMBx2+oZAAAATdJREFUWEftloENAiEMRW8ER3AEN9ANdARHcAPdwBF0A91AN9INtC+5JvUCJwWM
|
|
||||||
mvCTFw3QUiiU65qa/lUTYT6Ato9rJZyERwT6GFNdU+EihCYNwVhsqmgm3AR1fheOAitd9PCfNvp0HDbY
|
|
||||||
FolV2MmZZCzX9J0FG0TRTlwFdbahIVE7Qe1IR5bYVnXCyr2yO5F1MNUBec25YtjomcCXSxhr9DmrV2Gr
|
|
||||||
flyL4GSrYcm9tmnEZ7JsAC7DgWr5ydbXA8hOAcVjG8FTD6ocQgvXKrW8MqFWUfc1DAXgmRwVFaJQAHsh
|
|
||||||
VbYUU87diqWA934sl/TZ7wV2Lesx0gBwsO5/1Sl5PQhLQb+G+E+bfTm9KXsRAVgHrMK+jO9gbNEzzMSh
|
|
||||||
6DlM9nANoa+kdCeLXLNLFtc9b2r6EXXdE4e4mdByNuG1AAAAAElFTkSuQmCC
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbService.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>85, 53</value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbService.Text" xml:space="preserve">
|
|
||||||
<value> 当前服务 </value>
|
|
||||||
</data>
|
|
||||||
<data name="tsbCheckUpdateN.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbCheckUpdateN.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>223, 22</value>
|
<value>223, 22</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -499,9 +505,9 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="tsbClose.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="tsbClose.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
wwAADsMBx2+oZAAAADJJREFUWEftzrENACAIRUFGdVMdTZkAG4zFXfI68kMAAD8ap9lUbpfyaDV19QAA
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAySURBVFhH7c6xDQAgCEVBRnVTHU2ZABuMxV3yOvJDAAA/
|
||||||
8FDEBl3RImu5VcdbAAAAAElFTkSuQmCC
|
GqfZVG6X8mg1dfUAAPBQxAZd0SJruVXHWwAAAABJRU5ErkJggg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbClose.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
@@ -510,7 +516,4 @@
|
|||||||
<data name="tsbClose.Text" xml:space="preserve">
|
<data name="tsbClose.Text" xml:space="preserve">
|
||||||
<value> 关闭窗口 </value>
|
<value> 关闭窗口 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbQRCodeSwitch.Text" xml:space="preserve">
|
|
||||||
<value> 分享 </value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
61
v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs
generated
61
v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs
generated
@@ -33,6 +33,7 @@
|
|||||||
this.tabControl1 = new System.Windows.Forms.TabControl();
|
this.tabControl1 = new System.Windows.Forms.TabControl();
|
||||||
this.tabPage1 = new System.Windows.Forms.TabPage();
|
this.tabPage1 = new System.Windows.Forms.TabPage();
|
||||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.chkdefAllowInsecure = new System.Windows.Forms.CheckBox();
|
||||||
this.label16 = new System.Windows.Forms.Label();
|
this.label16 = new System.Windows.Forms.Label();
|
||||||
this.cmblistenerType = new System.Windows.Forms.ComboBox();
|
this.cmblistenerType = new System.Windows.Forms.ComboBox();
|
||||||
this.chksniffingEnabled2 = new System.Windows.Forms.CheckBox();
|
this.chksniffingEnabled2 = new System.Windows.Forms.CheckBox();
|
||||||
@@ -119,32 +120,34 @@
|
|||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
//
|
//
|
||||||
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
|
||||||
resources.ApplyResources(this.btnClose, "btnClose");
|
resources.ApplyResources(this.btnClose, "btnClose");
|
||||||
|
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
this.btnClose.Name = "btnClose";
|
this.btnClose.Name = "btnClose";
|
||||||
this.btnClose.UseVisualStyleBackColor = true;
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
//
|
//
|
||||||
// tabControl1
|
// tabControl1
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tabControl1, "tabControl1");
|
||||||
this.tabControl1.Controls.Add(this.tabPage1);
|
this.tabControl1.Controls.Add(this.tabPage1);
|
||||||
this.tabControl1.Controls.Add(this.tabPage2);
|
this.tabControl1.Controls.Add(this.tabPage2);
|
||||||
this.tabControl1.Controls.Add(this.tabPage6);
|
this.tabControl1.Controls.Add(this.tabPage6);
|
||||||
this.tabControl1.Controls.Add(this.tabPage7);
|
this.tabControl1.Controls.Add(this.tabPage7);
|
||||||
this.tabControl1.Controls.Add(this.tabPage9);
|
this.tabControl1.Controls.Add(this.tabPage9);
|
||||||
resources.ApplyResources(this.tabControl1, "tabControl1");
|
|
||||||
this.tabControl1.Name = "tabControl1";
|
this.tabControl1.Name = "tabControl1";
|
||||||
this.tabControl1.SelectedIndex = 0;
|
this.tabControl1.SelectedIndex = 0;
|
||||||
//
|
//
|
||||||
// tabPage1
|
// tabPage1
|
||||||
//
|
//
|
||||||
this.tabPage1.Controls.Add(this.groupBox1);
|
|
||||||
resources.ApplyResources(this.tabPage1, "tabPage1");
|
resources.ApplyResources(this.tabPage1, "tabPage1");
|
||||||
|
this.tabPage1.Controls.Add(this.groupBox1);
|
||||||
this.tabPage1.Name = "tabPage1";
|
this.tabPage1.Name = "tabPage1";
|
||||||
this.tabPage1.UseVisualStyleBackColor = true;
|
this.tabPage1.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// groupBox1
|
// groupBox1
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Controls.Add(this.chkdefAllowInsecure);
|
||||||
this.groupBox1.Controls.Add(this.label16);
|
this.groupBox1.Controls.Add(this.label16);
|
||||||
this.groupBox1.Controls.Add(this.cmblistenerType);
|
this.groupBox1.Controls.Add(this.cmblistenerType);
|
||||||
this.groupBox1.Controls.Add(this.chksniffingEnabled2);
|
this.groupBox1.Controls.Add(this.chksniffingEnabled2);
|
||||||
@@ -165,10 +168,15 @@
|
|||||||
this.groupBox1.Controls.Add(this.label5);
|
this.groupBox1.Controls.Add(this.label5);
|
||||||
this.groupBox1.Controls.Add(this.txtlocalPort);
|
this.groupBox1.Controls.Add(this.txtlocalPort);
|
||||||
this.groupBox1.Controls.Add(this.label2);
|
this.groupBox1.Controls.Add(this.label2);
|
||||||
resources.ApplyResources(this.groupBox1, "groupBox1");
|
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
//
|
//
|
||||||
|
// chkdefAllowInsecure
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.chkdefAllowInsecure, "chkdefAllowInsecure");
|
||||||
|
this.chkdefAllowInsecure.Name = "chkdefAllowInsecure";
|
||||||
|
this.chkdefAllowInsecure.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// label16
|
// label16
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label16, "label16");
|
resources.ApplyResources(this.label16, "label16");
|
||||||
@@ -176,6 +184,7 @@
|
|||||||
//
|
//
|
||||||
// cmblistenerType
|
// cmblistenerType
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cmblistenerType, "cmblistenerType");
|
||||||
this.cmblistenerType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmblistenerType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmblistenerType.FormattingEnabled = true;
|
this.cmblistenerType.FormattingEnabled = true;
|
||||||
this.cmblistenerType.Items.AddRange(new object[] {
|
this.cmblistenerType.Items.AddRange(new object[] {
|
||||||
@@ -186,7 +195,6 @@
|
|||||||
resources.GetString("cmblistenerType.Items4"),
|
resources.GetString("cmblistenerType.Items4"),
|
||||||
resources.GetString("cmblistenerType.Items5"),
|
resources.GetString("cmblistenerType.Items5"),
|
||||||
resources.GetString("cmblistenerType.Items6")});
|
resources.GetString("cmblistenerType.Items6")});
|
||||||
resources.ApplyResources(this.cmblistenerType, "cmblistenerType");
|
|
||||||
this.cmblistenerType.Name = "cmblistenerType";
|
this.cmblistenerType.Name = "cmblistenerType";
|
||||||
//
|
//
|
||||||
// chksniffingEnabled2
|
// chksniffingEnabled2
|
||||||
@@ -232,12 +240,12 @@
|
|||||||
//
|
//
|
||||||
// cmbprotocol2
|
// cmbprotocol2
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cmbprotocol2, "cmbprotocol2");
|
||||||
this.cmbprotocol2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbprotocol2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbprotocol2.FormattingEnabled = true;
|
this.cmbprotocol2.FormattingEnabled = true;
|
||||||
this.cmbprotocol2.Items.AddRange(new object[] {
|
this.cmbprotocol2.Items.AddRange(new object[] {
|
||||||
resources.GetString("cmbprotocol2.Items"),
|
resources.GetString("cmbprotocol2.Items"),
|
||||||
resources.GetString("cmbprotocol2.Items1")});
|
resources.GetString("cmbprotocol2.Items1")});
|
||||||
resources.ApplyResources(this.cmbprotocol2, "cmbprotocol2");
|
|
||||||
this.cmbprotocol2.Name = "cmbprotocol2";
|
this.cmbprotocol2.Name = "cmbprotocol2";
|
||||||
//
|
//
|
||||||
// label3
|
// label3
|
||||||
@@ -252,8 +260,8 @@
|
|||||||
//
|
//
|
||||||
// cmbprotocol
|
// cmbprotocol
|
||||||
//
|
//
|
||||||
this.cmbprotocol.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
resources.ApplyResources(this.cmbprotocol, "cmbprotocol");
|
resources.ApplyResources(this.cmbprotocol, "cmbprotocol");
|
||||||
|
this.cmbprotocol.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbprotocol.FormattingEnabled = true;
|
this.cmbprotocol.FormattingEnabled = true;
|
||||||
this.cmbprotocol.Items.AddRange(new object[] {
|
this.cmbprotocol.Items.AddRange(new object[] {
|
||||||
resources.GetString("cmbprotocol.Items"),
|
resources.GetString("cmbprotocol.Items"),
|
||||||
@@ -279,6 +287,7 @@
|
|||||||
//
|
//
|
||||||
// cmbloglevel
|
// cmbloglevel
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cmbloglevel, "cmbloglevel");
|
||||||
this.cmbloglevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbloglevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbloglevel.FormattingEnabled = true;
|
this.cmbloglevel.FormattingEnabled = true;
|
||||||
this.cmbloglevel.Items.AddRange(new object[] {
|
this.cmbloglevel.Items.AddRange(new object[] {
|
||||||
@@ -287,7 +296,6 @@
|
|||||||
resources.GetString("cmbloglevel.Items2"),
|
resources.GetString("cmbloglevel.Items2"),
|
||||||
resources.GetString("cmbloglevel.Items3"),
|
resources.GetString("cmbloglevel.Items3"),
|
||||||
resources.GetString("cmbloglevel.Items4")});
|
resources.GetString("cmbloglevel.Items4")});
|
||||||
resources.ApplyResources(this.cmbloglevel, "cmbloglevel");
|
|
||||||
this.cmbloglevel.Name = "cmbloglevel";
|
this.cmbloglevel.Name = "cmbloglevel";
|
||||||
//
|
//
|
||||||
// label5
|
// label5
|
||||||
@@ -307,33 +315,33 @@
|
|||||||
//
|
//
|
||||||
// tabPage2
|
// tabPage2
|
||||||
//
|
//
|
||||||
this.tabPage2.Controls.Add(this.groupBox2);
|
|
||||||
resources.ApplyResources(this.tabPage2, "tabPage2");
|
resources.ApplyResources(this.tabPage2, "tabPage2");
|
||||||
|
this.tabPage2.Controls.Add(this.groupBox2);
|
||||||
this.tabPage2.Name = "tabPage2";
|
this.tabPage2.Name = "tabPage2";
|
||||||
this.tabPage2.UseVisualStyleBackColor = true;
|
this.tabPage2.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// groupBox2
|
// groupBox2
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.groupBox2, "groupBox2");
|
||||||
this.groupBox2.Controls.Add(this.tabControl2);
|
this.groupBox2.Controls.Add(this.tabControl2);
|
||||||
this.groupBox2.Controls.Add(this.panel3);
|
this.groupBox2.Controls.Add(this.panel3);
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
|
||||||
this.groupBox2.Name = "groupBox2";
|
this.groupBox2.Name = "groupBox2";
|
||||||
this.groupBox2.TabStop = false;
|
this.groupBox2.TabStop = false;
|
||||||
//
|
//
|
||||||
// tabControl2
|
// tabControl2
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tabControl2, "tabControl2");
|
||||||
this.tabControl2.Controls.Add(this.tabPage3);
|
this.tabControl2.Controls.Add(this.tabPage3);
|
||||||
this.tabControl2.Controls.Add(this.tabPage4);
|
this.tabControl2.Controls.Add(this.tabPage4);
|
||||||
this.tabControl2.Controls.Add(this.tabPage5);
|
this.tabControl2.Controls.Add(this.tabPage5);
|
||||||
this.tabControl2.Controls.Add(this.tabPage8);
|
this.tabControl2.Controls.Add(this.tabPage8);
|
||||||
resources.ApplyResources(this.tabControl2, "tabControl2");
|
|
||||||
this.tabControl2.Name = "tabControl2";
|
this.tabControl2.Name = "tabControl2";
|
||||||
this.tabControl2.SelectedIndex = 0;
|
this.tabControl2.SelectedIndex = 0;
|
||||||
//
|
//
|
||||||
// tabPage3
|
// tabPage3
|
||||||
//
|
//
|
||||||
this.tabPage3.Controls.Add(this.txtUseragent);
|
|
||||||
resources.ApplyResources(this.tabPage3, "tabPage3");
|
resources.ApplyResources(this.tabPage3, "tabPage3");
|
||||||
|
this.tabPage3.Controls.Add(this.txtUseragent);
|
||||||
this.tabPage3.Name = "tabPage3";
|
this.tabPage3.Name = "tabPage3";
|
||||||
this.tabPage3.UseVisualStyleBackColor = true;
|
this.tabPage3.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
@@ -344,8 +352,8 @@
|
|||||||
//
|
//
|
||||||
// tabPage4
|
// tabPage4
|
||||||
//
|
//
|
||||||
this.tabPage4.Controls.Add(this.txtUserdirect);
|
|
||||||
resources.ApplyResources(this.tabPage4, "tabPage4");
|
resources.ApplyResources(this.tabPage4, "tabPage4");
|
||||||
|
this.tabPage4.Controls.Add(this.txtUserdirect);
|
||||||
this.tabPage4.Name = "tabPage4";
|
this.tabPage4.Name = "tabPage4";
|
||||||
this.tabPage4.UseVisualStyleBackColor = true;
|
this.tabPage4.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
@@ -356,8 +364,8 @@
|
|||||||
//
|
//
|
||||||
// tabPage5
|
// tabPage5
|
||||||
//
|
//
|
||||||
this.tabPage5.Controls.Add(this.txtUserblock);
|
|
||||||
resources.ApplyResources(this.tabPage5, "tabPage5");
|
resources.ApplyResources(this.tabPage5, "tabPage5");
|
||||||
|
this.tabPage5.Controls.Add(this.txtUserblock);
|
||||||
this.tabPage5.Name = "tabPage5";
|
this.tabPage5.Name = "tabPage5";
|
||||||
this.tabPage5.UseVisualStyleBackColor = true;
|
this.tabPage5.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
@@ -368,13 +376,14 @@
|
|||||||
//
|
//
|
||||||
// tabPage8
|
// tabPage8
|
||||||
//
|
//
|
||||||
this.tabPage8.Controls.Add(this.cmbroutingMode);
|
|
||||||
resources.ApplyResources(this.tabPage8, "tabPage8");
|
resources.ApplyResources(this.tabPage8, "tabPage8");
|
||||||
|
this.tabPage8.Controls.Add(this.cmbroutingMode);
|
||||||
this.tabPage8.Name = "tabPage8";
|
this.tabPage8.Name = "tabPage8";
|
||||||
this.tabPage8.UseVisualStyleBackColor = true;
|
this.tabPage8.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// cmbroutingMode
|
// cmbroutingMode
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cmbroutingMode, "cmbroutingMode");
|
||||||
this.cmbroutingMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbroutingMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbroutingMode.FormattingEnabled = true;
|
this.cmbroutingMode.FormattingEnabled = true;
|
||||||
this.cmbroutingMode.Items.AddRange(new object[] {
|
this.cmbroutingMode.Items.AddRange(new object[] {
|
||||||
@@ -382,16 +391,15 @@
|
|||||||
resources.GetString("cmbroutingMode.Items1"),
|
resources.GetString("cmbroutingMode.Items1"),
|
||||||
resources.GetString("cmbroutingMode.Items2"),
|
resources.GetString("cmbroutingMode.Items2"),
|
||||||
resources.GetString("cmbroutingMode.Items3")});
|
resources.GetString("cmbroutingMode.Items3")});
|
||||||
resources.ApplyResources(this.cmbroutingMode, "cmbroutingMode");
|
|
||||||
this.cmbroutingMode.Name = "cmbroutingMode";
|
this.cmbroutingMode.Name = "cmbroutingMode";
|
||||||
//
|
//
|
||||||
// panel3
|
// panel3
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.panel3, "panel3");
|
||||||
this.panel3.Controls.Add(this.linkLabelRoutingDoc);
|
this.panel3.Controls.Add(this.linkLabelRoutingDoc);
|
||||||
this.panel3.Controls.Add(this.btnSetDefRountingRule);
|
this.panel3.Controls.Add(this.btnSetDefRountingRule);
|
||||||
this.panel3.Controls.Add(this.labRoutingTips);
|
this.panel3.Controls.Add(this.labRoutingTips);
|
||||||
this.panel3.Controls.Add(this.cmbdomainStrategy);
|
this.panel3.Controls.Add(this.cmbdomainStrategy);
|
||||||
resources.ApplyResources(this.panel3, "panel3");
|
|
||||||
this.panel3.Name = "panel3";
|
this.panel3.Name = "panel3";
|
||||||
//
|
//
|
||||||
// linkLabelRoutingDoc
|
// linkLabelRoutingDoc
|
||||||
@@ -410,23 +418,24 @@
|
|||||||
//
|
//
|
||||||
// labRoutingTips
|
// labRoutingTips
|
||||||
//
|
//
|
||||||
this.labRoutingTips.ForeColor = System.Drawing.Color.Brown;
|
|
||||||
resources.ApplyResources(this.labRoutingTips, "labRoutingTips");
|
resources.ApplyResources(this.labRoutingTips, "labRoutingTips");
|
||||||
|
this.labRoutingTips.ForeColor = System.Drawing.Color.Brown;
|
||||||
this.labRoutingTips.Name = "labRoutingTips";
|
this.labRoutingTips.Name = "labRoutingTips";
|
||||||
//
|
//
|
||||||
// cmbdomainStrategy
|
// cmbdomainStrategy
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cmbdomainStrategy, "cmbdomainStrategy");
|
||||||
this.cmbdomainStrategy.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbdomainStrategy.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbdomainStrategy.FormattingEnabled = true;
|
this.cmbdomainStrategy.FormattingEnabled = true;
|
||||||
this.cmbdomainStrategy.Items.AddRange(new object[] {
|
this.cmbdomainStrategy.Items.AddRange(new object[] {
|
||||||
resources.GetString("cmbdomainStrategy.Items"),
|
resources.GetString("cmbdomainStrategy.Items"),
|
||||||
resources.GetString("cmbdomainStrategy.Items1"),
|
resources.GetString("cmbdomainStrategy.Items1"),
|
||||||
resources.GetString("cmbdomainStrategy.Items2")});
|
resources.GetString("cmbdomainStrategy.Items2")});
|
||||||
resources.ApplyResources(this.cmbdomainStrategy, "cmbdomainStrategy");
|
|
||||||
this.cmbdomainStrategy.Name = "cmbdomainStrategy";
|
this.cmbdomainStrategy.Name = "cmbdomainStrategy";
|
||||||
//
|
//
|
||||||
// tabPage6
|
// tabPage6
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tabPage6, "tabPage6");
|
||||||
this.tabPage6.Controls.Add(this.chkKcpcongestion);
|
this.tabPage6.Controls.Add(this.chkKcpcongestion);
|
||||||
this.tabPage6.Controls.Add(this.txtKcpwriteBufferSize);
|
this.tabPage6.Controls.Add(this.txtKcpwriteBufferSize);
|
||||||
this.tabPage6.Controls.Add(this.label10);
|
this.tabPage6.Controls.Add(this.label10);
|
||||||
@@ -440,7 +449,6 @@
|
|||||||
this.tabPage6.Controls.Add(this.label7);
|
this.tabPage6.Controls.Add(this.label7);
|
||||||
this.tabPage6.Controls.Add(this.txtKcpmtu);
|
this.tabPage6.Controls.Add(this.txtKcpmtu);
|
||||||
this.tabPage6.Controls.Add(this.label6);
|
this.tabPage6.Controls.Add(this.label6);
|
||||||
resources.ApplyResources(this.tabPage6, "tabPage6");
|
|
||||||
this.tabPage6.Name = "tabPage6";
|
this.tabPage6.Name = "tabPage6";
|
||||||
this.tabPage6.UseVisualStyleBackColor = true;
|
this.tabPage6.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
@@ -512,6 +520,7 @@
|
|||||||
//
|
//
|
||||||
// tabPage7
|
// tabPage7
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tabPage7, "tabPage7");
|
||||||
this.tabPage7.Controls.Add(this.chkKeepOlderDedupl);
|
this.tabPage7.Controls.Add(this.chkKeepOlderDedupl);
|
||||||
this.tabPage7.Controls.Add(this.cbFreshrate);
|
this.tabPage7.Controls.Add(this.cbFreshrate);
|
||||||
this.tabPage7.Controls.Add(this.lbFreshrate);
|
this.tabPage7.Controls.Add(this.lbFreshrate);
|
||||||
@@ -520,7 +529,6 @@
|
|||||||
this.tabPage7.Controls.Add(this.txturlGFWList);
|
this.tabPage7.Controls.Add(this.txturlGFWList);
|
||||||
this.tabPage7.Controls.Add(this.label13);
|
this.tabPage7.Controls.Add(this.label13);
|
||||||
this.tabPage7.Controls.Add(this.chkAutoRun);
|
this.tabPage7.Controls.Add(this.chkAutoRun);
|
||||||
resources.ApplyResources(this.tabPage7, "tabPage7");
|
|
||||||
this.tabPage7.Name = "tabPage7";
|
this.tabPage7.Name = "tabPage7";
|
||||||
this.tabPage7.UseVisualStyleBackColor = true;
|
this.tabPage7.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
@@ -532,9 +540,9 @@
|
|||||||
//
|
//
|
||||||
// cbFreshrate
|
// cbFreshrate
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.cbFreshrate, "cbFreshrate");
|
||||||
this.cbFreshrate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cbFreshrate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cbFreshrate.FormattingEnabled = true;
|
this.cbFreshrate.FormattingEnabled = true;
|
||||||
resources.ApplyResources(this.cbFreshrate, "cbFreshrate");
|
|
||||||
this.cbFreshrate.Name = "cbFreshrate";
|
this.cbFreshrate.Name = "cbFreshrate";
|
||||||
//
|
//
|
||||||
// lbFreshrate
|
// lbFreshrate
|
||||||
@@ -572,9 +580,9 @@
|
|||||||
//
|
//
|
||||||
// tabPage9
|
// tabPage9
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tabPage9, "tabPage9");
|
||||||
this.tabPage9.Controls.Add(this.txtuserPacRule);
|
this.tabPage9.Controls.Add(this.txtuserPacRule);
|
||||||
this.tabPage9.Controls.Add(this.panel4);
|
this.tabPage9.Controls.Add(this.panel4);
|
||||||
resources.ApplyResources(this.tabPage9, "tabPage9");
|
|
||||||
this.tabPage9.Name = "tabPage9";
|
this.tabPage9.Name = "tabPage9";
|
||||||
this.tabPage9.UseVisualStyleBackColor = true;
|
this.tabPage9.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
@@ -585,21 +593,21 @@
|
|||||||
//
|
//
|
||||||
// panel4
|
// panel4
|
||||||
//
|
//
|
||||||
this.panel4.Controls.Add(this.label4);
|
|
||||||
resources.ApplyResources(this.panel4, "panel4");
|
resources.ApplyResources(this.panel4, "panel4");
|
||||||
|
this.panel4.Controls.Add(this.label4);
|
||||||
this.panel4.Name = "panel4";
|
this.panel4.Name = "panel4";
|
||||||
//
|
//
|
||||||
// label4
|
// label4
|
||||||
//
|
//
|
||||||
this.label4.ForeColor = System.Drawing.Color.Brown;
|
|
||||||
resources.ApplyResources(this.label4, "label4");
|
resources.ApplyResources(this.label4, "label4");
|
||||||
|
this.label4.ForeColor = System.Drawing.Color.Brown;
|
||||||
this.label4.Name = "label4";
|
this.label4.Name = "label4";
|
||||||
//
|
//
|
||||||
// panel2
|
// panel2
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
this.panel2.Controls.Add(this.btnClose);
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
this.panel2.Controls.Add(this.btnOK);
|
this.panel2.Controls.Add(this.btnOK);
|
||||||
resources.ApplyResources(this.panel2, "panel2");
|
|
||||||
this.panel2.Name = "panel2";
|
this.panel2.Name = "panel2";
|
||||||
//
|
//
|
||||||
// btnOK
|
// btnOK
|
||||||
@@ -725,5 +733,6 @@
|
|||||||
private System.Windows.Forms.Label label4;
|
private System.Windows.Forms.Label label4;
|
||||||
private System.Windows.Forms.CheckBox chkKeepOlderDedupl;
|
private System.Windows.Forms.CheckBox chkKeepOlderDedupl;
|
||||||
private System.Windows.Forms.LinkLabel linkLabelRoutingDoc;
|
private System.Windows.Forms.LinkLabel linkLabelRoutingDoc;
|
||||||
|
private System.Windows.Forms.CheckBox chkdefAllowInsecure;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -69,6 +69,8 @@ namespace v2rayN.Forms
|
|||||||
txtremoteDNS.Text = config.remoteDNS;
|
txtremoteDNS.Text = config.remoteDNS;
|
||||||
|
|
||||||
cmblistenerType.SelectedIndex = (int)config.listenerType;
|
cmblistenerType.SelectedIndex = (int)config.listenerType;
|
||||||
|
|
||||||
|
chkdefAllowInsecure.Checked = config.defAllowInsecure;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -265,6 +267,8 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
config.listenerType = (ListenerType)Enum.ToObject(typeof(ListenerType), cmblistenerType.SelectedIndex);
|
config.listenerType = (ListenerType)Enum.ToObject(typeof(ListenerType), cmblistenerType.SelectedIndex);
|
||||||
|
|
||||||
|
config.defAllowInsecure = chkdefAllowInsecure.Checked;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -440,7 +444,7 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
private void linkLabelRoutingDoc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
private void linkLabelRoutingDoc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
{
|
{
|
||||||
System.Diagnostics.Process.Start("https://www.v2ray.com/chapter_02/03_routing.html#routingobject");
|
System.Diagnostics.Process.Start("https://www.v2fly.org/config/routing.html");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -117,88 +117,24 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>参数设置</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnClose.Text" xml:space="preserve">
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
<value>取消(&C)</value>
|
<value>取消(&C)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="tabPage1.Text" xml:space="preserve">
|
||||||
<value>确定(&O)</value>
|
<value> Core:基础设置 </value>
|
||||||
</data>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="btnSetDefRountingRule.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
|
||||||
<value>NoControl</value>
|
|
||||||
</data>
|
</data>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="btnSetDefRountingRule.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="chkdefAllowInsecure.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>351, 14</value>
|
<value>222, 16</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnSetDefRountingRule.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkdefAllowInsecure.Text" xml:space="preserve">
|
||||||
<value>201, 23</value>
|
<value>底层传输安全选tls时,默认跳过证书验证(allowInsecure)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnSetDefRountingRule.Text" xml:space="preserve">
|
<data name="label16.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>一键设置默认自定义路由规则</value>
|
<value>53, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkAllowIn2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label16.Text" xml:space="preserve">
|
||||||
<value>102, 16</value>
|
<value>Http代理</value>
|
||||||
</data>
|
|
||||||
<data name="chkAllowIn2.Text" xml:space="preserve">
|
|
||||||
<value>本地监听端口2</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkAllowLANConn.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>144, 16</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkAllowLANConn.Text" xml:space="preserve">
|
|
||||||
<value>允许来自局域网的连接</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkAutoRun.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>180, 16</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkAutoRun.Text" xml:space="preserve">
|
|
||||||
<value>开机自动启动(可能会不成功)</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkEnableStatistics.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>384, 16</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkEnableStatistics.Text" xml:space="preserve">
|
|
||||||
<value>启用统计(实时网速显示和使用流量显示,需要重启v2rayN客户端)</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkKeepOlderDedupl.Text" xml:space="preserve">
|
|
||||||
<value>去重时保留序号较小的项</value>
|
|
||||||
</data>
|
|
||||||
<data name="chklogEnabled.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>156, 16</value>
|
|
||||||
</data>
|
|
||||||
<data name="chklogEnabled.Text" xml:space="preserve">
|
|
||||||
<value>记录本地日志(默认关闭)</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkmuxEnabled.Text" xml:space="preserve">
|
|
||||||
<value>开启Mux多路复用(默认开启)</value>
|
|
||||||
</data>
|
|
||||||
<data name="chksniffingEnabled.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>96, 16</value>
|
|
||||||
</data>
|
|
||||||
<data name="chksniffingEnabled.Text" xml:space="preserve">
|
|
||||||
<value>开启流量探测</value>
|
|
||||||
</data>
|
|
||||||
<data name="chksniffingEnabled2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>96, 16</value>
|
|
||||||
</data>
|
|
||||||
<data name="chksniffingEnabled2.Text" xml:space="preserve">
|
|
||||||
<value>开启流量探测</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkudpEnabled.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>66, 16</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkudpEnabled.Text" xml:space="preserve">
|
|
||||||
<value>开启UDP</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkudpEnabled2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>66, 16</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkudpEnabled2.Text" xml:space="preserve">
|
|
||||||
<value>开启UDP</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="cmblistenerType.Items" xml:space="preserve">
|
<data name="cmblistenerType.Items" xml:space="preserve">
|
||||||
<value>关闭Http代理</value>
|
<value>关闭Http代理</value>
|
||||||
@@ -221,6 +157,117 @@
|
|||||||
<data name="cmblistenerType.Items6" xml:space="preserve">
|
<data name="cmblistenerType.Items6" xml:space="preserve">
|
||||||
<value>仅开启PAC,不改变系统代理</value>
|
<value>仅开启PAC,不改变系统代理</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chksniffingEnabled2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>96, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chksniffingEnabled2.Text" xml:space="preserve">
|
||||||
|
<value>开启流量探测</value>
|
||||||
|
</data>
|
||||||
|
<data name="chksniffingEnabled.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>96, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chksniffingEnabled.Text" xml:space="preserve">
|
||||||
|
<value>开启流量探测</value>
|
||||||
|
</data>
|
||||||
|
<data name="label14.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>191, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label14.Text" xml:space="preserve">
|
||||||
|
<value>自定义DNS(可多个,用逗号(,)隔开)</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkmuxEnabled.Text" xml:space="preserve">
|
||||||
|
<value>开启Mux多路复用(默认开启)</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkAllowIn2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>102, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkAllowIn2.Text" xml:space="preserve">
|
||||||
|
<value>本地监听端口2</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkudpEnabled2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>66, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkudpEnabled2.Text" xml:space="preserve">
|
||||||
|
<value>开启UDP</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>协议</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>协议</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkudpEnabled.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>66, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkudpEnabled.Text" xml:space="preserve">
|
||||||
|
<value>开启UDP</value>
|
||||||
|
</data>
|
||||||
|
<data name="chklogEnabled.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>156, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chklogEnabled.Text" xml:space="preserve">
|
||||||
|
<value>记录本地日志(默认关闭)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>53, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.Text" xml:space="preserve">
|
||||||
|
<value>日志等级</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>77, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>本地监听端口</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage2.Text" xml:space="preserve">
|
||||||
|
<value> Core:路由设置 </value>
|
||||||
|
</data>
|
||||||
|
<data name="tabControl2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>3, 89</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabControl2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>642, 481</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>634, 455</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage3.Text" xml:space="preserve">
|
||||||
|
<value> 1.代理的Domain或IP </value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUseragent.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>628, 449</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>634, 455</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage4.Text" xml:space="preserve">
|
||||||
|
<value> 2.直连的Domain或IP </value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUserdirect.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>628, 449</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage5.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>634, 455</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage5.Text" xml:space="preserve">
|
||||||
|
<value> 3.阻止的Domain或IP </value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUserblock.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>628, 449</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage8.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>634, 455</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage8.Text" xml:space="preserve">
|
||||||
|
<value> 4.预定义规则 </value>
|
||||||
|
</data>
|
||||||
<data name="cmbroutingMode.Items" xml:space="preserve">
|
<data name="cmbroutingMode.Items" xml:space="preserve">
|
||||||
<value>全局</value>
|
<value>全局</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -239,53 +286,27 @@
|
|||||||
<data name="cmbroutingMode.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmbroutingMode.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>244, 20</value>
|
<value>244, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>29, 12</value>
|
<value>642, 72</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label1.Text" xml:space="preserve">
|
<data name="linkLabelRoutingDoc.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>协议</value>
|
|
||||||
</data>
|
|
||||||
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>227, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label13.Text" xml:space="preserve">
|
|
||||||
<value>自定义GFWList地址(不需自定义请填空白)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label14.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>191, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label14.Text" xml:space="preserve">
|
|
||||||
<value>自定义DNS(可多个,用逗号(,)隔开)</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>53, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label16.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>53, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label16.Text" xml:space="preserve">
|
|
||||||
<value>Http代理</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>77, 12</value>
|
<value>77, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.Text" xml:space="preserve">
|
<data name="linkLabelRoutingDoc.Text" xml:space="preserve">
|
||||||
<value>本地监听端口</value>
|
<value>域名解析策略</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<value>29, 12</value>
|
<data name="btnSetDefRountingRule.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.Text" xml:space="preserve">
|
<data name="btnSetDefRountingRule.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>协议</value>
|
<value>351, 14</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.Text" xml:space="preserve">
|
<data name="btnSetDefRountingRule.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>*设置用户PAC规则,用逗号(,)隔开</value>
|
<value>201, 23</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label5.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="btnSetDefRountingRule.Text" xml:space="preserve">
|
||||||
<value>53, 12</value>
|
<value>一键设置默认自定义路由规则</value>
|
||||||
</data>
|
|
||||||
<data name="label5.Text" xml:space="preserve">
|
|
||||||
<value>日志等级</value>
|
|
||||||
</data>
|
</data>
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="labRoutingTips.AutoSize" type="System.Boolean, mscorlib">
|
<data name="labRoutingTips.AutoSize" type="System.Boolean, mscorlib">
|
||||||
@@ -300,70 +321,58 @@
|
|||||||
<data name="labRoutingTips.Text" xml:space="preserve">
|
<data name="labRoutingTips.Text" xml:space="preserve">
|
||||||
<value>*设置的规则,用逗号(,)隔开;支持Domain(纯字符串/正则/子域名)和IP</value>
|
<value>*设置的规则,用逗号(,)隔开;支持Domain(纯字符串/正则/子域名)和IP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lbFreshrate.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>77, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="lbFreshrate.Text" xml:space="preserve">
|
|
||||||
<value>统计刷新频率</value>
|
|
||||||
</data>
|
|
||||||
<data name="linkLabelRoutingDoc.Text" xml:space="preserve">
|
|
||||||
<value>域名解析策略</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>642, 72</value>
|
|
||||||
</data>
|
|
||||||
<data name="tabControl2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 89</value>
|
|
||||||
</data>
|
|
||||||
<data name="tabControl2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>642, 481</value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPage1.Text" xml:space="preserve">
|
|
||||||
<value> Core:基础设置 </value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPage2.Text" xml:space="preserve">
|
|
||||||
<value> Core:路由设置 </value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPage3.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>634, 455</value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPage3.Text" xml:space="preserve">
|
|
||||||
<value> 1.代理的Domain或IP </value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPage4.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>634, 455</value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPage4.Text" xml:space="preserve">
|
|
||||||
<value> 2.直连的Domain或IP </value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPage5.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>634, 455</value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPage5.Text" xml:space="preserve">
|
|
||||||
<value> 3.阻止的Domain或IP </value>
|
|
||||||
</data>
|
|
||||||
<data name="tabPage6.Text" xml:space="preserve">
|
<data name="tabPage6.Text" xml:space="preserve">
|
||||||
<value> Core:KCP设置 </value>
|
<value> Core:KCP设置 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage7.Text" xml:space="preserve">
|
<data name="tabPage7.Text" xml:space="preserve">
|
||||||
<value> v2rayN设置 </value>
|
<value> v2rayN设置 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage8.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkKeepOlderDedupl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>634, 455</value>
|
<value>156, 16</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage8.Text" xml:space="preserve">
|
<data name="chkKeepOlderDedupl.Text" xml:space="preserve">
|
||||||
<value> 4.预定义规则 </value>
|
<value>去重时保留序号较小的项</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbFreshrate.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>77, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="lbFreshrate.Text" xml:space="preserve">
|
||||||
|
<value>统计刷新频率</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkEnableStatistics.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>372, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkEnableStatistics.Text" xml:space="preserve">
|
||||||
|
<value>启用统计(实时网速显示和使用流量显示,需要重启v2rayN客户端)</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkAllowLANConn.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>144, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkAllowLANConn.Text" xml:space="preserve">
|
||||||
|
<value>允许来自局域网的连接</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>227, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Text" xml:space="preserve">
|
||||||
|
<value>自定义GFWList地址(不需自定义请填空白)</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkAutoRun.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>180, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkAutoRun.Text" xml:space="preserve">
|
||||||
|
<value>开机自动启动(可能会不成功)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage9.Text" xml:space="preserve">
|
<data name="tabPage9.Text" xml:space="preserve">
|
||||||
<value> 用户PAC设置 </value>
|
<value> 用户PAC设置 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtUseragent.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label4.Text" xml:space="preserve">
|
||||||
<value>628, 449</value>
|
<value>*设置用户PAC规则,用逗号(,)隔开</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtUserblock.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
<value>628, 449</value>
|
<value>确定(&O)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtUserdirect.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>628, 449</value>
|
<value>参数设置</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -6,7 +6,7 @@ namespace v2rayN
|
|||||||
#region 常量
|
#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 AboutUrl = @"https://github.com/2dust/v2rayN";
|
||||||
public const string UpdateUrl = AboutUrl + @"/releases";
|
public const string UpdateUrl = AboutUrl + @"/releases";
|
||||||
|
|
||||||
@@ -103,6 +103,7 @@ namespace v2rayN
|
|||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string StreamSecurity = "tls";
|
public const string StreamSecurity = "tls";
|
||||||
|
public const string StreamSecurityX = "xtls";
|
||||||
|
|
||||||
public const string InboundSocks = "socks";
|
public const string InboundSocks = "socks";
|
||||||
public const string InboundHttp = "http";
|
public const string InboundHttp = "http";
|
||||||
@@ -116,14 +117,26 @@ namespace v2rayN
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string vmessProtocol = "vmess://";
|
public const string vmessProtocol = "vmess://";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// vmess
|
||||||
|
/// </summary>
|
||||||
|
public const string vmessProtocolLite = "vmess";
|
||||||
|
/// <summary>
|
||||||
/// shadowsocks
|
/// shadowsocks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string ssProtocol = "ss://";
|
public const string ssProtocol = "ss://";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// shadowsocks
|
||||||
|
/// </summary>
|
||||||
|
public const string ssProtocolLite = "shadowsocks";
|
||||||
|
/// <summary>
|
||||||
/// socks
|
/// socks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string socksProtocol = "socks://";
|
public const string socksProtocol = "socks://";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// socks
|
||||||
|
/// </summary>
|
||||||
|
public const string socksProtocolLite = "socks";
|
||||||
|
/// <summary>
|
||||||
/// http
|
/// http
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string httpProtocol = "http://";
|
public const string httpProtocol = "http://";
|
||||||
@@ -131,6 +144,14 @@ namespace v2rayN
|
|||||||
/// https
|
/// https
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string httpsProtocol = "https://";
|
public const string httpsProtocol = "https://";
|
||||||
|
/// <summary>
|
||||||
|
/// vless
|
||||||
|
/// </summary>
|
||||||
|
public const string vlessProtocol = "vless://";
|
||||||
|
/// <summary>
|
||||||
|
/// vless
|
||||||
|
/// </summary>
|
||||||
|
public const string vlessProtocolLite = "vless";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// pac
|
/// pac
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ using System.IO;
|
|||||||
using System.Net;
|
using System.Net;
|
||||||
using v2rayN.Mode;
|
using v2rayN.Mode;
|
||||||
using v2rayN.Base;
|
using v2rayN.Base;
|
||||||
|
using System.Linq;
|
||||||
|
using v2rayN.Tool;
|
||||||
|
|
||||||
namespace v2rayN.Handler
|
namespace v2rayN.Handler
|
||||||
{
|
{
|
||||||
@@ -145,10 +147,6 @@ namespace v2rayN.Handler
|
|||||||
//{
|
//{
|
||||||
// config.remoteDNS = "1.1.1.1";
|
// config.remoteDNS = "1.1.1.1";
|
||||||
//}
|
//}
|
||||||
if (Utils.IsNullOrEmpty(config.defaultAllowInsecure))
|
|
||||||
{
|
|
||||||
config.defaultAllowInsecure = "false";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (config.subItem == null)
|
if (config.subItem == null)
|
||||||
{
|
{
|
||||||
@@ -217,7 +215,7 @@ namespace v2rayN.Handler
|
|||||||
//添加
|
//添加
|
||||||
if (Utils.IsNullOrEmpty(vmessItem.allowInsecure))
|
if (Utils.IsNullOrEmpty(vmessItem.allowInsecure))
|
||||||
{
|
{
|
||||||
vmessItem.allowInsecure = config.defaultAllowInsecure;
|
vmessItem.allowInsecure = config.defAllowInsecure.ToString();
|
||||||
}
|
}
|
||||||
config.vmess.Add(vmessItem);
|
config.vmess.Add(vmessItem);
|
||||||
if (config.vmess.Count == 1)
|
if (config.vmess.Count == 1)
|
||||||
@@ -922,5 +920,96 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int SortServers(ref Config config, EServerColName name, bool asc)
|
||||||
|
{
|
||||||
|
if (config.vmess.Count <= 0)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
switch (name)
|
||||||
|
{
|
||||||
|
case EServerColName.configType:
|
||||||
|
case EServerColName.remarks:
|
||||||
|
case EServerColName.address:
|
||||||
|
case EServerColName.port:
|
||||||
|
case EServerColName.security:
|
||||||
|
case EServerColName.network:
|
||||||
|
case EServerColName.testResult:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
string itemId = config.getItemId();
|
||||||
|
var items = config.vmess.AsQueryable();
|
||||||
|
|
||||||
|
if (asc)
|
||||||
|
{
|
||||||
|
config.vmess = items.OrderBy(name.ToString()).ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
config.vmess = items.OrderByDescending(name.ToString()).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
var index_ = config.vmess.FindIndex(it => it.getItemId() == itemId);
|
||||||
|
if (index_ >= 0)
|
||||||
|
{
|
||||||
|
config.index = index_;
|
||||||
|
}
|
||||||
|
|
||||||
|
ToJsonFile(config);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 添加服务器或编辑
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="config"></param>
|
||||||
|
/// <param name="vmessItem"></param>
|
||||||
|
/// <param name="index"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,8 +54,8 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
private readonly string nLatestUrl = "https://github.com/2dust/v2rayN/releases/latest";
|
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 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 readonly string coreLatestUrl = "https://github.com/v2fly/v2ray-core/releases/latest";
|
||||||
private const string coreUrl = "https://github.com/v2ray/v2ray-core/releases/download/{0}/v2ray-windows-{1}.zip";
|
private const string coreUrl = "https://github.com/v2fly/v2ray-core/releases/download/{0}/v2ray-windows-{1}.zip";
|
||||||
|
|
||||||
public async void CheckUpdateAsync(string type)
|
public async void CheckUpdateAsync(string type)
|
||||||
{
|
{
|
||||||
@@ -101,7 +101,7 @@ namespace v2rayN.Handler
|
|||||||
string filePath = Utils.GetPath("V2ray.exe");
|
string filePath = Utils.GetPath("V2ray.exe");
|
||||||
if (!File.Exists(filePath))
|
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);
|
//ShowMsg(true, msg);
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
@@ -136,13 +136,15 @@ namespace v2rayN.Handler
|
|||||||
string curVersion;
|
string curVersion;
|
||||||
string message;
|
string message;
|
||||||
string url;
|
string url;
|
||||||
if (type == "Core") {
|
if (type == "Core")
|
||||||
|
{
|
||||||
curVersion = "v" + getV2rayVersion();
|
curVersion = "v" + getV2rayVersion();
|
||||||
message = string.Format(UIRes.I18N("IsLatestCore"), curVersion);
|
message = string.Format(UIRes.I18N("IsLatestCore"), curVersion);
|
||||||
string osBit = Environment.Is64BitProcess ? "64" : "32";
|
string osBit = Environment.Is64BitProcess ? "64" : "32";
|
||||||
url = string.Format(coreUrl, version, osBit);
|
url = string.Format(coreUrl, version, osBit);
|
||||||
}
|
}
|
||||||
else if (type == "v2rayN") {
|
else if (type == "v2rayN")
|
||||||
|
{
|
||||||
curVersion = FileVersionInfo.GetVersionInfo(Utils.GetExePath()).FileVersion.ToString();
|
curVersion = FileVersionInfo.GetVersionInfo(Utils.GetExePath()).FileVersion.ToString();
|
||||||
message = string.Format(UIRes.I18N("IsLatestN"), curVersion);
|
message = string.Format(UIRes.I18N("IsLatestN"), curVersion);
|
||||||
url = string.Format(nUrl, version);
|
url = string.Format(nUrl, version);
|
||||||
@@ -172,8 +174,9 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
#region Download
|
#region Download
|
||||||
|
|
||||||
public void DownloadFileAsync(string url, WebProxy webProxy, int downloadTimeout)
|
public WebClientEx DownloadFileAsync(string url, WebProxy webProxy, int downloadTimeout)
|
||||||
{
|
{
|
||||||
|
WebClientEx ws = new WebClientEx();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Utils.SetSecurityProtocol();
|
Utils.SetSecurityProtocol();
|
||||||
@@ -182,7 +185,7 @@ namespace v2rayN.Handler
|
|||||||
progressPercentage = -1;
|
progressPercentage = -1;
|
||||||
totalBytesToReceive = 0;
|
totalBytesToReceive = 0;
|
||||||
|
|
||||||
WebClientEx ws = new WebClientEx();
|
//WebClientEx ws = new WebClientEx();
|
||||||
DownloadTimeout = downloadTimeout;
|
DownloadTimeout = downloadTimeout;
|
||||||
if (webProxy != null)
|
if (webProxy != null)
|
||||||
{
|
{
|
||||||
@@ -199,6 +202,7 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
Error?.Invoke(this, new ErrorEventArgs(ex));
|
Error?.Invoke(this, new ErrorEventArgs(ex));
|
||||||
}
|
}
|
||||||
|
return ws;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ws_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
|
void ws_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
|
||||||
@@ -228,19 +232,33 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ws_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
|
void ws_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (UpdateCompleted != null)
|
if (UpdateCompleted != null)
|
||||||
{
|
{
|
||||||
if (e.Error != null) throw e.Error;
|
if (e.Cancelled)
|
||||||
|
{
|
||||||
|
((WebClientEx)sender).Dispose();
|
||||||
|
TimeSpan ts = (DateTime.Now - totalDatetime);
|
||||||
|
string speed = string.Format("{0} M/s", (totalBytesToReceive / ts.TotalMilliseconds / 1000).ToString("#0.##"));
|
||||||
|
UpdateCompleted(this, new ResultEventArgs(true, speed));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
((WebClientEx)sender).Dispose();
|
if (e.Error == null
|
||||||
TimeSpan ts = (DateTime.Now - totalDatetime);
|
|| Utils.IsNullOrEmpty(e.Error.ToString()))
|
||||||
string speed = string.Format("<{0} MB/s", (totalBytesToReceive / ts.TotalMilliseconds / 1000).ToString("#0.##"));
|
{
|
||||||
UpdateCompleted(this, new ResultEventArgs(true, speed));
|
|
||||||
|
TimeSpan ts = (DateTime.Now - totalDatetime);
|
||||||
|
string speed = string.Format("{0} M/s", (totalBytesToReceive / ts.TotalMilliseconds / 1000).ToString("#0.##"));
|
||||||
|
UpdateCompleted(this, new ResultEventArgs(true, speed));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw e.Error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|||||||
@@ -72,7 +72,8 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
return;
|
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"));
|
UI.Show(UIRes.I18N("NonVmessService"));
|
||||||
return;
|
return;
|
||||||
@@ -112,7 +113,8 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
return;
|
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"));
|
UI.Show(UIRes.I18N("NonVmessService"));
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -11,26 +11,17 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
class SpeedtestHandler
|
class SpeedtestHandler
|
||||||
{
|
{
|
||||||
private DownloadHandle downloadHandle2;
|
|
||||||
private Config _config;
|
private Config _config;
|
||||||
private V2rayHandler _v2rayHandler;
|
private V2rayHandler _v2rayHandler;
|
||||||
private List<int> _selecteds;
|
private List<int> _selecteds;
|
||||||
Action<int, string> _updateFunc;
|
Action<int, string> _updateFunc;
|
||||||
|
|
||||||
private int testCounter = 0;
|
|
||||||
private int ItemIndex
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return _selecteds[testCounter - 1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public SpeedtestHandler(ref Config config, ref V2rayHandler v2rayHandler, List<int> selecteds, string actionType, Action<int, string> update)
|
public SpeedtestHandler(ref Config config, ref V2rayHandler v2rayHandler, List<int> selecteds, string actionType, Action<int, string> update)
|
||||||
{
|
{
|
||||||
_config = config;
|
_config = config;
|
||||||
_v2rayHandler = v2rayHandler;
|
_v2rayHandler = v2rayHandler;
|
||||||
_selecteds = selecteds;
|
_selecteds = Utils.DeepCopy(selecteds);
|
||||||
_updateFunc = update;
|
_updateFunc = update;
|
||||||
|
|
||||||
if (actionType == "ping")
|
if (actionType == "ping")
|
||||||
@@ -178,6 +169,7 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
private void RunSpeedTest()
|
private void RunSpeedTest()
|
||||||
{
|
{
|
||||||
|
int testCounter = 0;
|
||||||
int pid = -1;
|
int pid = -1;
|
||||||
|
|
||||||
if (_config.vmess.Count <= 0)
|
if (_config.vmess.Count <= 0)
|
||||||
@@ -188,39 +180,41 @@ namespace v2rayN.Handler
|
|||||||
pid = _v2rayHandler.LoadV2rayConfigString(_config, _selecteds);
|
pid = _v2rayHandler.LoadV2rayConfigString(_config, _selecteds);
|
||||||
|
|
||||||
string url = _config.speedTestUrl;
|
string url = _config.speedTestUrl;
|
||||||
testCounter = 0;
|
DownloadHandle downloadHandle2 = new DownloadHandle();
|
||||||
if (downloadHandle2 == null)
|
downloadHandle2.UpdateCompleted += (sender2, args) =>
|
||||||
{
|
{
|
||||||
downloadHandle2 = new DownloadHandle();
|
_updateFunc(testCounter, args.Msg);
|
||||||
downloadHandle2.UpdateCompleted += (sender2, args) =>
|
};
|
||||||
{
|
downloadHandle2.Error += (sender2, args) =>
|
||||||
_updateFunc(ItemIndex, args.Msg);
|
|
||||||
if (args.Success) StartNext();
|
|
||||||
};
|
|
||||||
downloadHandle2.Error += (sender2, args) =>
|
|
||||||
{
|
|
||||||
_updateFunc(ItemIndex, args.GetException().Message);
|
|
||||||
StartNext();
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
StartNext();
|
|
||||||
|
|
||||||
void StartNext()
|
|
||||||
{
|
{
|
||||||
if (testCounter >= _selecteds.Count)
|
_updateFunc(testCounter, args.GetException().Message);
|
||||||
|
};
|
||||||
|
|
||||||
|
var timeout = 10;
|
||||||
|
foreach (int itemIndex in _selecteds)
|
||||||
|
{
|
||||||
|
if (itemIndex >= _config.vmess.Count)
|
||||||
{
|
{
|
||||||
if (pid > 0) _v2rayHandler.V2rayStopPid(pid);
|
break;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_config.vmess[itemIndex].configType == (int)EConfigType.Custom)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
testCounter = itemIndex;
|
||||||
int httpPort = _config.GetLocalPort("speedtest");
|
int httpPort = _config.GetLocalPort("speedtest");
|
||||||
int index = _selecteds[testCounter];
|
|
||||||
|
|
||||||
testCounter++;
|
WebProxy webProxy = new WebProxy(Global.Loopback, httpPort + itemIndex);
|
||||||
WebProxy webProxy = new WebProxy(Global.Loopback, httpPort + index);
|
var ws = downloadHandle2.DownloadFileAsync(url, webProxy, timeout - 2);
|
||||||
downloadHandle2.DownloadFileAsync(url, webProxy, 20);
|
|
||||||
|
Thread.Sleep(1000 * timeout);
|
||||||
|
|
||||||
|
ws.CancelAsync();
|
||||||
|
|
||||||
|
Thread.Sleep(1000 * 2);
|
||||||
}
|
}
|
||||||
|
if (pid > 0) _v2rayHandler.V2rayStopPid(pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.Specialized;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Web;
|
||||||
using v2rayN.Base;
|
using v2rayN.Base;
|
||||||
using v2rayN.Mode;
|
using v2rayN.Mode;
|
||||||
|
|
||||||
@@ -366,7 +370,7 @@ namespace v2rayN.Handler
|
|||||||
StreamSettings streamSettings = outbound.streamSettings;
|
StreamSettings streamSettings = outbound.streamSettings;
|
||||||
boundStreamSettings(config, "out", ref streamSettings);
|
boundStreamSettings(config, "out", ref streamSettings);
|
||||||
|
|
||||||
outbound.protocol = "vmess";
|
outbound.protocol = Global.vmessProtocolLite;
|
||||||
outbound.settings.servers = null;
|
outbound.settings.servers = null;
|
||||||
}
|
}
|
||||||
else if (config.configType() == (int)EConfigType.Shadowsocks)
|
else if (config.configType() == (int)EConfigType.Shadowsocks)
|
||||||
@@ -392,9 +396,9 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
outbound.mux.enabled = false;
|
outbound.mux.enabled = false;
|
||||||
outbound.mux.concurrency = -1;
|
outbound.mux.concurrency = -1;
|
||||||
|
|
||||||
|
|
||||||
outbound.protocol = "shadowsocks";
|
|
||||||
|
outbound.protocol = Global.ssProtocolLite;
|
||||||
outbound.settings.vnext = null;
|
outbound.settings.vnext = null;
|
||||||
}
|
}
|
||||||
else if (config.configType() == (int)EConfigType.Socks)
|
else if (config.configType() == (int)EConfigType.Socks)
|
||||||
@@ -431,9 +435,58 @@ namespace v2rayN.Handler
|
|||||||
outbound.mux.enabled = false;
|
outbound.mux.enabled = false;
|
||||||
outbound.mux.concurrency = -1;
|
outbound.mux.concurrency = -1;
|
||||||
|
|
||||||
outbound.protocol = "socks";
|
outbound.protocol = Global.socksProtocolLite;
|
||||||
outbound.settings.vnext = null;
|
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.alterId = 0;
|
||||||
|
usersItem.flow = string.Empty;
|
||||||
|
usersItem.email = Global.userEMail;
|
||||||
|
usersItem.encryption = config.security();
|
||||||
|
//if xtls
|
||||||
|
if (config.streamSecurity() == Global.StreamSecurityX)
|
||||||
|
{
|
||||||
|
usersItem.flow = config.flow();
|
||||||
|
}
|
||||||
|
|
||||||
|
//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
|
catch
|
||||||
{
|
{
|
||||||
@@ -454,7 +507,7 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
//远程服务器底层传输配置
|
//远程服务器底层传输配置
|
||||||
streamSettings.network = config.network();
|
streamSettings.network = config.network();
|
||||||
string host = config.requestHost();
|
string host = config.requestHost();
|
||||||
//if tls
|
//if tls
|
||||||
if (config.streamSecurity() == Global.StreamSecurity)
|
if (config.streamSecurity() == Global.StreamSecurity)
|
||||||
{
|
{
|
||||||
@@ -471,6 +524,22 @@ namespace v2rayN.Handler
|
|||||||
streamSettings.tlsSettings = tlsSettings;
|
streamSettings.tlsSettings = tlsSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//if xtls
|
||||||
|
if (config.streamSecurity() == Global.StreamSecurityX)
|
||||||
|
{
|
||||||
|
streamSettings.security = config.streamSecurity();
|
||||||
|
|
||||||
|
TlsSettings xtlsSettings = new TlsSettings
|
||||||
|
{
|
||||||
|
allowInsecure = config.allowInsecure()
|
||||||
|
};
|
||||||
|
if (!string.IsNullOrWhiteSpace(host))
|
||||||
|
{
|
||||||
|
xtlsSettings.serverName = host;
|
||||||
|
}
|
||||||
|
streamSettings.xtlsSettings = xtlsSettings;
|
||||||
|
}
|
||||||
|
|
||||||
//streamSettings
|
//streamSettings
|
||||||
switch (config.network())
|
switch (config.network())
|
||||||
{
|
{
|
||||||
@@ -504,6 +573,10 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
type = config.headerType()
|
type = config.headerType()
|
||||||
};
|
};
|
||||||
|
if (!Utils.IsNullOrEmpty(config.path()))
|
||||||
|
{
|
||||||
|
kcpSettings.seed = config.path();
|
||||||
|
}
|
||||||
streamSettings.kcpSettings = kcpSettings;
|
streamSettings.kcpSettings = kcpSettings;
|
||||||
break;
|
break;
|
||||||
//ws
|
//ws
|
||||||
@@ -842,9 +915,22 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
//远程服务器用户ID
|
//远程服务器用户ID
|
||||||
usersItem.id = config.id();
|
usersItem.id = config.id();
|
||||||
usersItem.alterId = config.alterId();
|
|
||||||
usersItem.email = Global.userEMail;
|
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;
|
||||||
|
usersItem.flow = config.flow();
|
||||||
|
inbound.settings.decryption = config.security();
|
||||||
|
}
|
||||||
|
|
||||||
//远程服务器底层传输配置
|
//远程服务器底层传输配置
|
||||||
StreamSettings streamSettings = inbound.streamSettings;
|
StreamSettings streamSettings = inbound.streamSettings;
|
||||||
boundStreamSettings(config, "in", ref streamSettings);
|
boundStreamSettings(config, "in", ref streamSettings);
|
||||||
@@ -918,7 +1004,7 @@ namespace v2rayN.Handler
|
|||||||
Outbounds outbound = v2rayConfig.outbounds[0];
|
Outbounds outbound = v2rayConfig.outbounds[0];
|
||||||
if (outbound == null
|
if (outbound == null
|
||||||
|| Utils.IsNullOrEmpty(outbound.protocol)
|
|| Utils.IsNullOrEmpty(outbound.protocol)
|
||||||
|| outbound.protocol != "vmess"
|
|| outbound.protocol != Global.vmessProtocolLite
|
||||||
|| outbound.settings == null
|
|| outbound.settings == null
|
||||||
|| outbound.settings.vnext == null
|
|| outbound.settings.vnext == null
|
||||||
|| outbound.settings.vnext.Count <= 0
|
|| outbound.settings.vnext.Count <= 0
|
||||||
@@ -1064,7 +1150,7 @@ namespace v2rayN.Handler
|
|||||||
Inbounds inbound = v2rayConfig.inbounds[0];
|
Inbounds inbound = v2rayConfig.inbounds[0];
|
||||||
if (inbound == null
|
if (inbound == null
|
||||||
|| Utils.IsNullOrEmpty(inbound.protocol)
|
|| Utils.IsNullOrEmpty(inbound.protocol)
|
||||||
|| inbound.protocol != "vmess"
|
|| inbound.protocol != Global.vmessProtocolLite
|
||||||
|| inbound.settings == null
|
|| inbound.settings == null
|
||||||
|| inbound.settings.clients == null
|
|| inbound.settings.clients == null
|
||||||
|| inbound.settings.clients.Count <= 0)
|
|| inbound.settings.clients.Count <= 0)
|
||||||
@@ -1195,7 +1281,7 @@ namespace v2rayN.Handler
|
|||||||
int indexSplit = result.IndexOf("?");
|
int indexSplit = result.IndexOf("?");
|
||||||
if (indexSplit > 0)
|
if (indexSplit > 0)
|
||||||
{
|
{
|
||||||
vmessItem = ResolveVmess4Kitsunebi(result);
|
vmessItem = ResolveStdVmess(result) ?? ResolveVmess4Kitsunebi(result);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1242,46 +1328,21 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
msg = UIRes.I18N("ConfigurationFormatIncorrect");
|
msg = UIRes.I18N("ConfigurationFormatIncorrect");
|
||||||
|
|
||||||
vmessItem.configType = (int)EConfigType.Shadowsocks;
|
vmessItem = ResolveSSLegacy(result);
|
||||||
result = result.Substring(Global.ssProtocol.Length);
|
if (vmessItem == null)
|
||||||
//remark
|
|
||||||
int indexRemark = result.IndexOf("#");
|
|
||||||
if (indexRemark > 0)
|
|
||||||
{
|
{
|
||||||
try
|
vmessItem = ResolveSip002(result);
|
||||||
{
|
|
||||||
vmessItem.remarks = WebUtility.UrlDecode(result.Substring(indexRemark + 1, result.Length - indexRemark - 1));
|
|
||||||
}
|
|
||||||
catch { }
|
|
||||||
result = result.Substring(0, indexRemark);
|
|
||||||
}
|
}
|
||||||
//part decode
|
if (vmessItem == null)
|
||||||
int indexS = result.IndexOf("@");
|
|
||||||
if (indexS > 0)
|
|
||||||
{
|
{
|
||||||
result = Utils.Base64Decode(result.Substring(0, indexS)) + result.Substring(indexS, result.Length - indexS);
|
return null;
|
||||||
}
|
}
|
||||||
else
|
if (vmessItem.address.Length == 0 || vmessItem.port == 0 || vmessItem.security.Length == 0 || vmessItem.id.Length == 0)
|
||||||
{
|
{
|
||||||
result = Utils.Base64Decode(result);
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
string[] arr1 = result.Split('@');
|
vmessItem.configType = (int)EConfigType.Shadowsocks;
|
||||||
if (arr1.Length != 2)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
string[] arr21 = arr1[0].Split(':');
|
|
||||||
//string[] arr22 = arr1[1].Split(':');
|
|
||||||
int indexPort = arr1[1].LastIndexOf(":");
|
|
||||||
if (arr21.Length != 2 || 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];
|
|
||||||
}
|
}
|
||||||
else if (result.StartsWith(Global.socksProtocol))
|
else if (result.StartsWith(Global.socksProtocol))
|
||||||
{
|
{
|
||||||
@@ -1406,6 +1467,177 @@ namespace v2rayN.Handler
|
|||||||
return vmessItem;
|
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);
|
||||||
|
if (queryParameters["plugin"] != null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return server;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static readonly Regex UrlFinder = new Regex(@"ss://(?<base64>[A-Za-z0-9+-/=_]+)(?:#(?<tag>\S+))?", RegexOptions.IgnoreCase);
|
||||||
|
private static readonly Regex DetailsParser = new Regex(@"^((?<method>.+?):(?<password>.*)@(?<hostname>.+?):(?<port>\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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static readonly Regex StdVmessUserInfo = new Regex(
|
||||||
|
@"^(?<network>[a-z]+)(\+(?<streamSecurity>[a-z]+))?:(?<id>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})-(?<alterId>[0-9]+)$");
|
||||||
|
|
||||||
|
private static VmessItem ResolveStdVmess(string result)
|
||||||
|
{
|
||||||
|
VmessItem i = new VmessItem
|
||||||
|
{
|
||||||
|
configType = (int)EConfigType.Vmess,
|
||||||
|
security = "auto"
|
||||||
|
};
|
||||||
|
|
||||||
|
Uri u = new Uri(result);
|
||||||
|
|
||||||
|
i.address = u.IdnHost;
|
||||||
|
i.port = u.Port;
|
||||||
|
i.remarks = u.GetComponents(UriComponents.Fragment, UriFormat.Unescaped);
|
||||||
|
var q = HttpUtility.ParseQueryString(u.Query);
|
||||||
|
|
||||||
|
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))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
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 http option
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "kcp":
|
||||||
|
i.headerType = q["type"] ?? "none";
|
||||||
|
// TODO kcp 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;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return i;
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Gen speedtest config
|
#region Gen speedtest config
|
||||||
@@ -1427,7 +1659,7 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
msg = UIRes.I18N("InitialConfiguration");
|
msg = UIRes.I18N("InitialConfiguration");
|
||||||
|
|
||||||
Config configCopy = Utils.DeepCopy(config);
|
Config configCopy = Utils.DeepCopy(config);
|
||||||
|
|
||||||
string result = Utils.GetEmbedText(SampleClient);
|
string result = Utils.GetEmbedText(SampleClient);
|
||||||
if (Utils.IsNullOrEmpty(result))
|
if (Utils.IsNullOrEmpty(result))
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
if (Utils.IsNullOrEmpty(fileName))
|
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);
|
ShowMsg(false, msg);
|
||||||
}
|
}
|
||||||
return fileName;
|
return fileName;
|
||||||
|
|||||||
@@ -182,7 +182,7 @@ namespace v2rayN.Mode
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 是否允许不安全连接
|
/// 是否允许不安全连接
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string defaultAllowInsecure
|
public bool defAllowInsecure
|
||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
@@ -306,7 +306,7 @@ namespace v2rayN.Mode
|
|||||||
{
|
{
|
||||||
if (index < 0 || Utils.IsNullOrEmpty(vmess[index].allowInsecure))
|
if (index < 0 || Utils.IsNullOrEmpty(vmess[index].allowInsecure))
|
||||||
{
|
{
|
||||||
return Convert.ToBoolean(defaultAllowInsecure);
|
return defAllowInsecure;
|
||||||
}
|
}
|
||||||
return Convert.ToBoolean(vmess[index].allowInsecure);
|
return Convert.ToBoolean(vmess[index].allowInsecure);
|
||||||
}
|
}
|
||||||
@@ -365,7 +365,14 @@ namespace v2rayN.Mode
|
|||||||
|
|
||||||
return vmess[index].getItemId();
|
return vmess[index].getItemId();
|
||||||
}
|
}
|
||||||
|
public string flow()
|
||||||
|
{
|
||||||
|
if (index < 0)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
return vmess[index].flow.TrimEx();
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -391,6 +398,7 @@ namespace v2rayN.Mode
|
|||||||
configType = (int)EConfigType.Vmess;
|
configType = (int)EConfigType.Vmess;
|
||||||
testResult = string.Empty;
|
testResult = string.Empty;
|
||||||
subid = string.Empty;
|
subid = string.Empty;
|
||||||
|
flow = string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string getSummary()
|
public string getSummary()
|
||||||
@@ -422,6 +430,10 @@ namespace v2rayN.Mode
|
|||||||
{
|
{
|
||||||
summary += string.Format("{0}({1}:{2})", remarks, addr, port);
|
summary += string.Format("{0}({1}:{2})", remarks, addr, port);
|
||||||
}
|
}
|
||||||
|
else if (configType == (int)EConfigType.VLESS)
|
||||||
|
{
|
||||||
|
summary += string.Format("{0}({1}:{2})", remarks, addr, port);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
summary += string.Format("{0}", remarks);
|
summary += string.Format("{0}", remarks);
|
||||||
@@ -578,6 +590,14 @@ namespace v2rayN.Mode
|
|||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// VLESS flow
|
||||||
|
/// </summary>
|
||||||
|
public string flow
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
@@ -704,7 +724,7 @@ namespace v2rayN.Mode
|
|||||||
[Serializable]
|
[Serializable]
|
||||||
public class UIItem
|
public class UIItem
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
public System.Drawing.Size mainSize
|
public System.Drawing.Size mainSize
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ namespace v2rayN.Mode
|
|||||||
Vmess = 1,
|
Vmess = 1,
|
||||||
Custom = 2,
|
Custom = 2,
|
||||||
Shadowsocks = 3,
|
Shadowsocks = 3,
|
||||||
Socks = 4
|
Socks = 4,
|
||||||
|
VLESS = 5
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ namespace v2rayN.Mode
|
|||||||
public enum EServerColName
|
public enum EServerColName
|
||||||
{
|
{
|
||||||
def = 0,
|
def = 0,
|
||||||
type,
|
configType,
|
||||||
remarks,
|
remarks,
|
||||||
address,
|
address,
|
||||||
port,
|
port,
|
||||||
|
|||||||
@@ -132,6 +132,13 @@ namespace v2rayN.Mode
|
|||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<UsersItem> clients { get; set; }
|
public List<UsersItem> clients { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// VLESS
|
||||||
|
/// </summary>
|
||||||
|
public string decryption { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class UsersItem
|
public class UsersItem
|
||||||
@@ -152,6 +159,16 @@ namespace v2rayN.Mode
|
|||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string security { get; set; }
|
public string security { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// VLESS
|
||||||
|
/// </summary>
|
||||||
|
public string encryption { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// VLESS
|
||||||
|
/// </summary>
|
||||||
|
public string flow { get; set; }
|
||||||
}
|
}
|
||||||
public class Sniffing
|
public class Sniffing
|
||||||
{
|
{
|
||||||
@@ -381,7 +398,12 @@ namespace v2rayN.Mode
|
|||||||
/// QUIC
|
/// QUIC
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public QuicSettings quicSettings { get; set; }
|
public QuicSettings quicSettings { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// VLESS xtls
|
||||||
|
/// </summary>
|
||||||
|
public TlsSettings xtlsSettings { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TlsSettings
|
public class TlsSettings
|
||||||
@@ -459,6 +481,10 @@ namespace v2rayN.Mode
|
|||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Header header { get; set; }
|
public Header header { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string seed { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class WsSettings
|
public class WsSettings
|
||||||
|
|||||||
@@ -32,4 +32,4 @@ using System.Runtime.InteropServices;
|
|||||||
// 方法是按如下所示使用“*”:
|
// 方法是按如下所示使用“*”:
|
||||||
//[assembly: AssemblyVersion("1.0.*")]
|
//[assembly: AssemblyVersion("1.0.*")]
|
||||||
//[assembly: AssemblyVersion("1.0.0")]
|
//[assembly: AssemblyVersion("1.0.0")]
|
||||||
[assembly: AssemblyFileVersion("3.15.1")]
|
[assembly: AssemblyFileVersion("3.24")]
|
||||||
|
|||||||
48
v2rayN/v2rayN/Tool/QueryableExtension.cs
Normal file
48
v2rayN/v2rayN/Tool/QueryableExtension.cs
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace v2rayN.Tool
|
||||||
|
{
|
||||||
|
public static class QueryableExtension
|
||||||
|
{
|
||||||
|
public static IOrderedQueryable<T> OrderBy<T>(this IQueryable<T> query, string propertyName)
|
||||||
|
{
|
||||||
|
return _OrderBy<T>(query, propertyName, false);
|
||||||
|
}
|
||||||
|
public static IOrderedQueryable<T> OrderByDescending<T>(this IQueryable<T> query, string propertyName)
|
||||||
|
{
|
||||||
|
return _OrderBy<T>(query, propertyName, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
static IOrderedQueryable<T> _OrderBy<T>(IQueryable<T> query, string propertyName, bool isDesc)
|
||||||
|
{
|
||||||
|
string methodname = (isDesc) ? "OrderByDescendingInternal" : "OrderByInternal";
|
||||||
|
|
||||||
|
var memberProp = typeof(T).GetProperty(propertyName);
|
||||||
|
|
||||||
|
var method = typeof(QueryableExtension).GetMethod(methodname)
|
||||||
|
.MakeGenericMethod(typeof(T), memberProp.PropertyType);
|
||||||
|
|
||||||
|
return (IOrderedQueryable<T>)method.Invoke(null, new object[] { query, memberProp });
|
||||||
|
}
|
||||||
|
public static IOrderedQueryable<T> OrderByInternal<T, TProp>(IQueryable<T> query, PropertyInfo memberProperty)
|
||||||
|
{//public
|
||||||
|
return query.OrderBy(_GetLamba<T, TProp>(memberProperty));
|
||||||
|
}
|
||||||
|
public static IOrderedQueryable<T> OrderByDescendingInternal<T, TProp>(IQueryable<T> query, PropertyInfo memberProperty)
|
||||||
|
{//public
|
||||||
|
return query.OrderByDescending(_GetLamba<T, TProp>(memberProperty));
|
||||||
|
}
|
||||||
|
static Expression<Func<T, TProp>> _GetLamba<T, TProp>(PropertyInfo memberProperty)
|
||||||
|
{
|
||||||
|
if (memberProperty.PropertyType != typeof(TProp)) throw new Exception();
|
||||||
|
|
||||||
|
var thisArg = Expression.Parameter(typeof(T));
|
||||||
|
var lamba = Expression.Lambda<Func<T, TProp>>(Expression.Property(thisArg, memberProperty), thisArg);
|
||||||
|
|
||||||
|
return lamba;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -93,6 +93,7 @@
|
|||||||
<Reference Include="System.Net" />
|
<Reference Include="System.Net" />
|
||||||
<Reference Include="System.Net.Http" />
|
<Reference Include="System.Net.Http" />
|
||||||
<Reference Include="System.Net.Http.WebRequest" />
|
<Reference Include="System.Net.Http.WebRequest" />
|
||||||
|
<Reference Include="System.Web" />
|
||||||
<Reference Include="System.Windows.Forms" />
|
<Reference Include="System.Windows.Forms" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -106,6 +107,12 @@
|
|||||||
<Compile Include="Base\ListViewFlickerFree.cs">
|
<Compile Include="Base\ListViewFlickerFree.cs">
|
||||||
<SubType>Component</SubType>
|
<SubType>Component</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Forms\AddServer5Form.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Forms\AddServer5Form.Designer.cs">
|
||||||
|
<DependentUpon>AddServer5Form.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Forms\MainForm.cs">
|
<Compile Include="Forms\MainForm.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -209,6 +216,7 @@
|
|||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Tool\FileManager.cs" />
|
<Compile Include="Tool\FileManager.cs" />
|
||||||
<Compile Include="Tool\Job.cs" />
|
<Compile Include="Tool\Job.cs" />
|
||||||
|
<Compile Include="Tool\QueryableExtension.cs" />
|
||||||
<Compile Include="Tool\UIRes.cs" />
|
<Compile Include="Tool\UIRes.cs" />
|
||||||
<Compile Include="Tool\UI.cs" />
|
<Compile Include="Tool\UI.cs" />
|
||||||
<Compile Include="Tool\Utils.cs" />
|
<Compile Include="Tool\Utils.cs" />
|
||||||
@@ -229,6 +237,14 @@
|
|||||||
<DependentUpon>AddServer3Form.cs</DependentUpon>
|
<DependentUpon>AddServer3Form.cs</DependentUpon>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Forms\AddServer5Form.resx">
|
||||||
|
<DependentUpon>AddServer5Form.cs</DependentUpon>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Forms\AddServer5Form.zh-Hans.resx">
|
||||||
|
<DependentUpon>AddServer5Form.cs</DependentUpon>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Forms\AddServerForm.zh-Hans.resx">
|
<EmbeddedResource Include="Forms\AddServerForm.zh-Hans.resx">
|
||||||
<DependentUpon>AddServerForm.cs</DependentUpon>
|
<DependentUpon>AddServerForm.cs</DependentUpon>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<ErrorReportUrlHistory />
|
<ErrorReportUrlHistory />
|
||||||
<FallbackCulture>zh-CN</FallbackCulture>
|
<FallbackCulture>zh-CN</FallbackCulture>
|
||||||
<VerifyUploadedFiles>false</VerifyUploadedFiles>
|
<VerifyUploadedFiles>false</VerifyUploadedFiles>
|
||||||
<ProjectView>ShowAllFiles</ProjectView>
|
<ProjectView>ProjectFiles</ProjectView>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<EnableSecurityDebugging>false</EnableSecurityDebugging>
|
<EnableSecurityDebugging>false</EnableSecurityDebugging>
|
||||||
|
|||||||
Reference in New Issue
Block a user