Compare commits
357 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b2d538d02a | ||
|
|
b9435a4b01 | ||
|
|
d27566686c | ||
|
|
ca883c164d | ||
|
|
0f6cd76f28 | ||
|
|
7778af65aa | ||
|
|
828246130b | ||
|
|
4eb1801f50 | ||
|
|
80b68dcf84 | ||
|
|
685baa576b | ||
|
|
7cdead8cb1 | ||
|
|
f220825b80 | ||
|
|
2b00490dd6 | ||
|
|
d361afa3f3 | ||
|
|
8d5bd5a80c | ||
|
|
002283899f | ||
|
|
206b440966 | ||
|
|
b5b5eb25a1 | ||
|
|
f84e538b6a | ||
|
|
5b9cdec156 | ||
|
|
cf0bd7f1e6 | ||
|
|
f3a86a2173 | ||
|
|
0a1d4d5193 | ||
|
|
88e2288298 | ||
|
|
fec47d4b72 | ||
|
|
f7f23e7980 | ||
|
|
32100db3fc | ||
|
|
dd2bed49f1 | ||
|
|
6a427a2158 | ||
|
|
716029def8 | ||
|
|
610a610ee0 | ||
|
|
4fc0738dad | ||
|
|
fe29771870 | ||
|
|
19be43d2d9 | ||
|
|
cb01809093 | ||
|
|
1138d660b2 | ||
|
|
c29ccf76d5 | ||
|
|
5907bf388c | ||
|
|
54adaffb92 | ||
|
|
3bc7812e1a | ||
|
|
16cd9706f9 | ||
|
|
839d07870c | ||
|
|
933d3c2678 | ||
|
|
a29b744526 | ||
|
|
c4070b26ff | ||
|
|
6d0b4e8c75 | ||
|
|
058e1aafd1 | ||
|
|
eac7361a0b | ||
|
|
64e6d6d038 | ||
|
|
d613fe79af | ||
|
|
565a7b1680 | ||
|
|
5076f45674 | ||
|
|
dc72c949c3 | ||
|
|
c85e418afa | ||
|
|
2fc3e846df | ||
|
|
a665dc9db7 | ||
|
|
672eb4b365 | ||
|
|
c9a150565d | ||
|
|
5b271108c0 | ||
|
|
8b63a19161 | ||
|
|
0d17a112a6 | ||
|
|
d997633810 | ||
|
|
446e981d0e | ||
|
|
dabca02b18 | ||
|
|
790bd1217c | ||
|
|
43d8515e23 | ||
|
|
bcd051e5a3 | ||
|
|
1a1e08753f | ||
|
|
d46838eb55 | ||
|
|
a70b5eeef5 | ||
|
|
7513ff860b | ||
|
|
4d872e9143 | ||
|
|
4408d67c49 | ||
|
|
545e1c5402 | ||
|
|
03dec5b604 | ||
|
|
777427787a | ||
|
|
f0c59e38cc | ||
|
|
35cbc54f99 | ||
|
|
bb78af8489 | ||
|
|
af000a27a6 | ||
|
|
b30191feb2 | ||
|
|
83804bd914 | ||
|
|
23b0f154f3 | ||
|
|
6084173257 | ||
|
|
7885893e9b | ||
|
|
53f9fee834 | ||
|
|
ae79d8c608 | ||
|
|
9c96feb4b5 | ||
|
|
597531b92b | ||
|
|
108ab7069b | ||
|
|
63411c5978 | ||
|
|
e6fc9e4783 | ||
|
|
57d5e02d6a | ||
|
|
e578c75545 | ||
|
|
77c5f6c583 | ||
|
|
d8ee3c3bba | ||
|
|
656451f604 | ||
|
|
9dc8cba3f0 | ||
|
|
03c4954c27 | ||
|
|
3c550e2803 | ||
|
|
52f1bdf834 | ||
|
|
c2c9c6a6db | ||
|
|
b390776219 | ||
|
|
47dce69aa4 | ||
|
|
3aeaadade6 | ||
|
|
162b3ab29c | ||
|
|
b8848823cd | ||
|
|
378f350c52 | ||
|
|
e7231d33b3 | ||
|
|
7c633374f6 | ||
|
|
1663c7d819 | ||
|
|
00982fd40b | ||
|
|
3697de973c | ||
|
|
3e575cc485 | ||
|
|
1675c67ddd | ||
|
|
b20c90acf0 | ||
|
|
a370f7bfbb | ||
|
|
e2de9b4703 | ||
|
|
b487dcf448 | ||
|
|
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 | ||
|
|
2f65575fdf | ||
|
|
b1814c246a | ||
|
|
fd4af7c90c | ||
|
|
d337d4bc7b | ||
|
|
da96e75ad5 | ||
|
|
04e50d521a | ||
|
|
93aad41181 | ||
|
|
ab025b39f4 | ||
|
|
7b2bd8876d | ||
|
|
033f83465f | ||
|
|
e5547307b3 | ||
|
|
82f77b41ba | ||
|
|
8e37712175 | ||
|
|
3b06b553eb | ||
|
|
5de50009d2 | ||
|
|
56a8521893 | ||
|
|
33d541f067 | ||
|
|
957ffa203d | ||
|
|
3af13d64f3 | ||
|
|
f1e51ae1a3 | ||
|
|
6d2a1e0e9c | ||
|
|
ac2d71d7b0 | ||
|
|
002a8c505c | ||
|
|
49355da702 | ||
|
|
3b38dc51ba | ||
|
|
3a27b56cc1 | ||
|
|
fbb9c3cd64 | ||
|
|
07bdcb5491 | ||
|
|
01ac3be89f | ||
|
|
5f90b5b4c4 | ||
|
|
a616ba50c2 | ||
|
|
3ebaabc1ef | ||
|
|
1510549663 | ||
|
|
db0a757a49 | ||
|
|
20ab51e339 | ||
|
|
948b9c26d9 | ||
|
|
300a4d8067 | ||
|
|
a65afd7524 | ||
|
|
d8458e84f4 | ||
|
|
a6664fbc01 | ||
|
|
111f77c59c | ||
|
|
48218a3dad | ||
|
|
ec3eb2215b | ||
|
|
a6fcf53b10 | ||
|
|
be9bbcc2c7 | ||
|
|
a4a0b29250 | ||
|
|
01b34dd45a | ||
|
|
2d2e4deb82 | ||
|
|
3daa8f479c | ||
|
|
d2ab186e44 | ||
|
|
5b2a6b12af | ||
|
|
5357f504d8 | ||
|
|
df427d80a1 | ||
|
|
b1f5d5ad75 | ||
|
|
af71eed96e | ||
|
|
6293ddacc6 | ||
|
|
1a807c056c | ||
|
|
3bd65b8d85 | ||
|
|
cf6d0598f8 | ||
|
|
a2758f0e0a | ||
|
|
300f5ef949 | ||
|
|
01fef4d357 | ||
|
|
62b521718e | ||
|
|
6da0b6a628 | ||
|
|
9f3b128044 | ||
|
|
a7e215dd5b | ||
|
|
443605d1dc | ||
|
|
1865621a6a | ||
|
|
d94fcbd8a3 | ||
|
|
794b88e5ab | ||
|
|
e60369c817 | ||
|
|
2add30cc77 | ||
|
|
ec3c471df6 | ||
|
|
2f6236353b | ||
|
|
973d4ddbb2 | ||
|
|
0334d52cfb | ||
|
|
88d1948b51 | ||
|
|
11d90dfb68 | ||
|
|
cdc96817e8 | ||
|
|
edea40012c | ||
|
|
67b99c4c8b | ||
|
|
56c3c22568 | ||
|
|
d8d8346d45 | ||
|
|
8b68ecb891 | ||
|
|
c183f1ed6e | ||
|
|
4a9d9ac2ac | ||
|
|
5dffb30b27 | ||
|
|
cf195c7694 | ||
|
|
1922f30f0f | ||
|
|
b6d1c4330f | ||
|
|
aee8994c41 | ||
|
|
593313a684 | ||
|
|
c71caec9df | ||
|
|
89bc92b98e | ||
|
|
17dec098cd | ||
|
|
4e38ec8f57 | ||
|
|
eda7b1789a | ||
|
|
db2510fac5 | ||
|
|
e354dad70b | ||
|
|
02607e116e | ||
|
|
932fd330ce | ||
|
|
c9c0dc9b5b | ||
|
|
2b3e29f3d1 | ||
|
|
b83b624dc3 | ||
|
|
1d3832f562 | ||
|
|
daa358a0ca | ||
|
|
ecf1be42ee | ||
|
|
3d6afe50e3 | ||
|
|
c1bb333555 | ||
|
|
5a386c2802 | ||
|
|
6dddaa03ae | ||
|
|
643a8094a6 | ||
|
|
a62f375f5b | ||
|
|
a498578c17 | ||
|
|
7cf6ab4b51 | ||
|
|
dda920e33e | ||
|
|
ae296fced8 | ||
|
|
cdf381ce41 | ||
|
|
195828cee1 | ||
|
|
cc3560ab29 | ||
|
|
c975896c5e | ||
|
|
627e4513f3 | ||
|
|
c4c05bfafd | ||
|
|
31fb479459 | ||
|
|
1b0e3b3575 | ||
|
|
6206c81546 | ||
|
|
e09210e6c3 | ||
|
|
4089cc5cf0 | ||
|
|
2c6b2f8065 | ||
|
|
112273036b | ||
|
|
df5b55b14f | ||
|
|
40bb7a5ea1 | ||
|
|
cf5b0cbd06 | ||
|
|
504a6c5d89 | ||
|
|
a33e586ff4 | ||
|
|
a1d579e1ec | ||
|
|
59a9fc9a3d | ||
|
|
194d9a0abc | ||
|
|
5566df791c | ||
|
|
1ca416bacf | ||
|
|
97d7229974 | ||
|
|
6a0bfc43dd | ||
|
|
732da0c330 | ||
|
|
012bb5654b | ||
|
|
068fe3113b | ||
|
|
4a74102eb7 | ||
|
|
b310cfeda2 | ||
|
|
07cd855446 |
5
.gitignore
vendored
5
.gitignore
vendored
@@ -5,10 +5,9 @@
|
|||||||
/v2rayN/.vs/
|
/v2rayN/.vs/
|
||||||
/v2rayN/v2rayN/bin/Debug/app.publish
|
/v2rayN/v2rayN/bin/Debug/app.publish
|
||||||
/v2rayN/v2rayN/bin/Debug
|
/v2rayN/v2rayN/bin/Debug
|
||||||
/v2rayN/v2rayN/obj/Debug
|
|
||||||
/v2rayN/.vs/v2rayN/DesignTimeBuild
|
|
||||||
/v2rayN/v2rayN/bin/Release
|
/v2rayN/v2rayN/bin/Release
|
||||||
/v2rayN/v2rayN/obj/Release
|
/v2rayN/v2rayN/obj/
|
||||||
|
/v2rayN/.vs/v2rayN/DesignTimeBuild
|
||||||
/v2rayN/packages
|
/v2rayN/packages
|
||||||
.vs/ProjectSettings.json
|
.vs/ProjectSettings.json
|
||||||
.vs/slnx.sqlite
|
.vs/slnx.sqlite
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
# v2rayN
|
# v2rayN
|
||||||
|
|
||||||
### How to use
|
### How to use
|
||||||
- Download exe from release download
|
- If you are newbie please download v2rayN-Core.zip from releases
|
||||||
- Also need to download v2ray core in the same folder
|
- Otherwise please download v2rayN.zip (Also need to download v2ray core in the same folder)
|
||||||
- Run v2rayN.exe
|
- Run v2rayN.exe
|
||||||
|
|
||||||
### 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.8](https://docs.microsoft.com/zh-cn/dotnet/framework/install/guide-for-developers)
|
||||||
- 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)
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ Global
|
|||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
RESX_SortFileContentOnSave = True
|
||||||
SolutionGuid = {56B88873-C9CC-4069-A1E5-DABD6C6E865E}
|
SolutionGuid = {56B88873-C9CC-4069-A1E5-DABD6C6E865E}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|||||||
@@ -1,101 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Net;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading;
|
|
||||||
|
|
||||||
namespace v2rayN.Base
|
|
||||||
{
|
|
||||||
public class HttpWebServer
|
|
||||||
{
|
|
||||||
private HttpListener _listener;
|
|
||||||
private Func<string, string> _responderMethod;
|
|
||||||
|
|
||||||
public HttpWebServer(string[] prefixes, Func<string, string> method)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_listener = new HttpListener();
|
|
||||||
|
|
||||||
if (!HttpListener.IsSupported)
|
|
||||||
throw new NotSupportedException(
|
|
||||||
"Needs Windows XP SP2, Server 2003 or later.");
|
|
||||||
|
|
||||||
// URI prefixes are required, for example
|
|
||||||
// "http://localhost:8080/index/".
|
|
||||||
if (prefixes == null || prefixes.Length == 0)
|
|
||||||
throw new ArgumentException("prefixes");
|
|
||||||
|
|
||||||
// A responder method is required
|
|
||||||
if (method == null)
|
|
||||||
throw new ArgumentException("method");
|
|
||||||
|
|
||||||
foreach (string s in prefixes)
|
|
||||||
_listener.Prefixes.Add(s);
|
|
||||||
|
|
||||||
_responderMethod = method;
|
|
||||||
_listener.Start();
|
|
||||||
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog(ex.Message, ex);
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public HttpWebServer(Func<string, string> method, params string[] prefixes)
|
|
||||||
: this(prefixes, method) { }
|
|
||||||
|
|
||||||
public void Run()
|
|
||||||
{
|
|
||||||
ThreadPool.QueueUserWorkItem((o) =>
|
|
||||||
{
|
|
||||||
Utils.SaveLog("Webserver running...");
|
|
||||||
try
|
|
||||||
{
|
|
||||||
while (_listener.IsListening)
|
|
||||||
{
|
|
||||||
ThreadPool.QueueUserWorkItem((c) =>
|
|
||||||
{
|
|
||||||
var ctx = c as HttpListenerContext;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
string address = ctx.Request.LocalEndPoint.Address.ToString();
|
|
||||||
Utils.SaveLog("Webserver Request " + address);
|
|
||||||
string rstr = _responderMethod(address);
|
|
||||||
byte[] buf = Encoding.UTF8.GetBytes(rstr);
|
|
||||||
ctx.Response.StatusCode = 200;
|
|
||||||
ctx.Response.ContentType = "application/x-ns-proxy-autoconfig";
|
|
||||||
ctx.Response.ContentLength64 = buf.Length;
|
|
||||||
ctx.Response.OutputStream.Write(buf, 0, buf.Length);
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
} // suppress any exceptions
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
// always close the stream
|
|
||||||
ctx.Response.OutputStream.Close();
|
|
||||||
}
|
|
||||||
}, _listener.GetContext());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog(ex.Message, ex);
|
|
||||||
} // suppress any exceptions
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Stop()
|
|
||||||
{
|
|
||||||
if (_listener != null)
|
|
||||||
{
|
|
||||||
_listener.Stop();
|
|
||||||
_listener.Close();
|
|
||||||
_listener = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,130 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.IO;
|
|
||||||
using System.Net;
|
|
||||||
using System.Net.Sockets;
|
|
||||||
using System.Threading;
|
|
||||||
|
|
||||||
namespace v2rayN.Base
|
|
||||||
{
|
|
||||||
public class HttpWebServerB
|
|
||||||
{
|
|
||||||
private TcpListener listener;
|
|
||||||
private int port;
|
|
||||||
private Func<string, string> _responderMethod;
|
|
||||||
|
|
||||||
public HttpWebServerB(int port, Func<string, string> method)
|
|
||||||
{
|
|
||||||
this.port = port;
|
|
||||||
this._responderMethod = method;
|
|
||||||
|
|
||||||
Thread thread = new Thread(StartListen);
|
|
||||||
thread.IsBackground = true;
|
|
||||||
thread.Start();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Stop()
|
|
||||||
{
|
|
||||||
if (listener != null)
|
|
||||||
{
|
|
||||||
listener.Stop();
|
|
||||||
listener = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void StartListen()
|
|
||||||
{
|
|
||||||
listener = new TcpListener(IPAddress.Any, port);
|
|
||||||
listener.Start();
|
|
||||||
Utils.SaveLog("WebserverB running...");
|
|
||||||
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
if (!listener.Pending())
|
|
||||||
{
|
|
||||||
Thread.Sleep(100);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
TcpClient socket = listener.AcceptTcpClient();
|
|
||||||
Thread thread = new Thread(new ParameterizedThreadStart(ProcessThread));
|
|
||||||
thread.IsBackground = true;
|
|
||||||
thread.Start(socket);
|
|
||||||
Thread.Sleep(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void ProcessThread(object obj)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var socket = obj as TcpClient;
|
|
||||||
|
|
||||||
var inputStream = new BufferedStream(socket.GetStream());
|
|
||||||
var outputStream = new StreamWriter(new BufferedStream(socket.GetStream()));
|
|
||||||
if (inputStream.CanRead)
|
|
||||||
{
|
|
||||||
var data = ReadStream(inputStream);
|
|
||||||
|
|
||||||
if (data.Contains("/pac/"))
|
|
||||||
{
|
|
||||||
if (_responderMethod != null)
|
|
||||||
{
|
|
||||||
var address = ((IPEndPoint)socket.Client.LocalEndPoint).Address.ToString();
|
|
||||||
Utils.SaveLog("WebserverB Request " + address);
|
|
||||||
string pac = _responderMethod(address);
|
|
||||||
|
|
||||||
if (inputStream.CanWrite)
|
|
||||||
{
|
|
||||||
WriteStream(outputStream, pac);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
outputStream.BaseStream.Flush();
|
|
||||||
inputStream = null;
|
|
||||||
outputStream = null;
|
|
||||||
socket.Close();
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog(ex.Message, ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private string ReadStream(Stream inputStream)
|
|
||||||
{
|
|
||||||
int nextchar;
|
|
||||||
string data = "";
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
nextchar = inputStream.ReadByte();
|
|
||||||
if (nextchar == '\n')
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (nextchar == '\r')
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (nextchar == -1)
|
|
||||||
{
|
|
||||||
Thread.Sleep(1);
|
|
||||||
continue;
|
|
||||||
};
|
|
||||||
data += Convert.ToChar(nextchar);
|
|
||||||
}
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void WriteStream(StreamWriter outputStream, string pac)
|
|
||||||
{
|
|
||||||
var content_type = "application/x-ns-proxy-autoconfig";
|
|
||||||
outputStream.WriteLine("HTTP/1.1 200 OK");
|
|
||||||
outputStream.WriteLine(String.Format("Content-Type:{0}", content_type));
|
|
||||||
outputStream.WriteLine("Connection: close");
|
|
||||||
outputStream.WriteLine("");
|
|
||||||
outputStream.WriteLine(pac);
|
|
||||||
outputStream.Flush();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -18,39 +18,35 @@ namespace v2rayN.Base
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int count = this.Columns.Count;
|
this.SuspendLayout();
|
||||||
int MaxWidth = 0;
|
|
||||||
Graphics graphics = this.CreateGraphics();
|
Graphics graphics = this.CreateGraphics();
|
||||||
Font font = this.Font;
|
|
||||||
ListView.ListViewItemCollection items = this.Items;
|
|
||||||
|
|
||||||
string str;
|
|
||||||
int width;
|
|
||||||
|
|
||||||
|
// 原生 ColumnHeaderAutoResizeStyle.ColumnContent 将忽略列头宽度
|
||||||
this.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
|
this.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
|
||||||
|
|
||||||
for (int i = 0; i < count; i++)
|
for (int i = 0; i < this.Columns.Count; i++)
|
||||||
{
|
{
|
||||||
str = this.Columns[i].Text;
|
ColumnHeader c = this.Columns[i];
|
||||||
MaxWidth = this.Columns[i].Width;
|
int cWidth = c.Width;
|
||||||
|
string MaxStr = "";
|
||||||
|
Font font = this.Items[0].SubItems[0].Font;
|
||||||
|
|
||||||
foreach (ListViewItem item in items)
|
foreach (ListViewItem item in this.Items)
|
||||||
{
|
{
|
||||||
str = item.SubItems[i].Text;
|
// 整行视作相同字形,不单独计算每个单元格
|
||||||
width = (int)graphics.MeasureString(str, font).Width;
|
font = item.SubItems[i].Font;
|
||||||
if (width > MaxWidth)
|
string str = item.SubItems[i].Text;
|
||||||
{
|
if (str.Length > MaxStr.Length) // 未考虑非等宽问题
|
||||||
MaxWidth = width;
|
MaxStr = str;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (i == 0)
|
int strWidth = (int)graphics.MeasureString(MaxStr, font).Width;
|
||||||
{
|
c.Width = System.Math.Max(cWidth, strWidth);
|
||||||
this.Columns[i].Width = MaxWidth;
|
|
||||||
}
|
|
||||||
this.Columns[i].Width = MaxWidth;
|
|
||||||
}
|
}
|
||||||
|
this.ResumeLayout();
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -24,7 +24,7 @@ namespace v2rayN.Base
|
|||||||
|
|
||||||
public static bool IsWhiteSpace(this string value)
|
public static bool IsWhiteSpace(this string value)
|
||||||
{
|
{
|
||||||
foreach (var c in value)
|
foreach (char c in value)
|
||||||
{
|
{
|
||||||
if (char.IsWhiteSpace(c)) continue;
|
if (char.IsWhiteSpace(c)) continue;
|
||||||
|
|
||||||
|
|||||||
@@ -17,17 +17,7 @@ namespace v2rayN.Base
|
|||||||
protected override WebRequest GetWebRequest(Uri address)
|
protected override WebRequest GetWebRequest(Uri address)
|
||||||
{
|
{
|
||||||
HttpWebRequest request;
|
HttpWebRequest request;
|
||||||
if (address.Scheme == "https")
|
request = (HttpWebRequest)base.GetWebRequest(address);
|
||||||
{
|
|
||||||
ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => { return true; };
|
|
||||||
request = (HttpWebRequest)base.GetWebRequest(address);
|
|
||||||
request.ProtocolVersion = HttpVersion.Version10;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
request = (HttpWebRequest)base.GetWebRequest(address);
|
|
||||||
}
|
|
||||||
|
|
||||||
request.Timeout = Timeout;
|
request.Timeout = Timeout;
|
||||||
request.ReadWriteTimeout = Timeout;
|
request.ReadWriteTimeout = Timeout;
|
||||||
//request.AllowAutoRedirect = false;
|
//request.AllowAutoRedirect = false;
|
||||||
|
|||||||
@@ -5,10 +5,8 @@ using v2rayN.Mode;
|
|||||||
|
|
||||||
namespace v2rayN.Forms
|
namespace v2rayN.Forms
|
||||||
{
|
{
|
||||||
public partial class AddServer2Form : BaseForm
|
public partial class AddServer2Form : BaseServerForm
|
||||||
{
|
{
|
||||||
public int EditIndex { get; set; }
|
|
||||||
VmessItem vmessItem;
|
|
||||||
|
|
||||||
public AddServer2Form()
|
public AddServer2Form()
|
||||||
{
|
{
|
||||||
@@ -63,7 +61,7 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UI.Show(UIRes.I18N("OperationFailed"));
|
UI.ShowWarning(UIRes.I18N("OperationFailed"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -117,274 +117,148 @@
|
|||||||
<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=">>txtAddress.Name" xml:space="preserve">
|
|
||||||
<value>txtAddress</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Text" xml:space="preserve">
|
|
||||||
<value>Address</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtAddress.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Bottom</value>
|
|
||||||
</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="label13.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnOK.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnOK.Name" xml:space="preserve">
|
|
||||||
<value>btnOK</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRemarks.Name" xml:space="preserve">
|
|
||||||
<value>txtRemarks</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
|
||||||
<value>AddServer2Form</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.Name" xml:space="preserve">
|
|
||||||
<value>label1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRemarks.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRemarks.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnClose.Parent" xml:space="preserve">
|
|
||||||
<value>panel2</value>
|
|
||||||
</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="label6.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 27</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtAddress.Multiline" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>313, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label13.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
<value>6, 12</value>
|
<value>6, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label6.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Text" xml:space="preserve">
|
|
||||||
<value>Alias (remarks)</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 23</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>6</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>7</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>113, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
|
||||||
<value>4</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>Server</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>23</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnClose.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>611, 60</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtAddress.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>Edit custom configuration server</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtAddress.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>432, 104</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>611, 10</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Name" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name="label13.Text" xml:space="preserve">
|
|
||||||
<value>* Fill in manually</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>11</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>10</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel1.Name" xml:space="preserve">
|
|
||||||
<value>panel1</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>75, 23</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnClose.Name" xml:space="preserve">
|
|
||||||
<value>btnClose</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>303, 17</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 211</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>75, 23</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label13.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Top</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 10</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.ZOrder" xml:space="preserve">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>611, 201</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel1.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>4</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtAddress.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 62</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtAddress.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>83, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnClose.Text" xml:space="preserve">
|
|
||||||
<value>&Cancel</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 62</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
|
||||||
<value>&OK</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>446, 26</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.Name" xml:space="preserve">
|
|
||||||
<value>label6</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel1.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnOK.Parent" xml:space="preserve">
|
|
||||||
<value>panel2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label13.Name" xml:space="preserve">
|
|
||||||
<value>label13</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>83, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label13.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>22</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label13.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panel2.Name" xml:space="preserve">
|
|
||||||
<value>panel2</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>5</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>611, 271</value>
|
<value>611, 271</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
<data name="$this.Localizable" type="System.Boolean, mscorlib">
|
||||||
<value>0</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Type" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
<value>Edit custom configuration server</value>
|
||||||
</data>
|
|
||||||
<data name=">>panel2.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>396, 17</value>
|
<value>396, 17</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label1.Type" xml:space="preserve">
|
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>75, 23</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>panel2.ZOrder" xml:space="preserve">
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>1</value>
|
<value>4</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>&Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>303, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>&OK</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>611, 201</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>Server</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 62</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>83, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>Address</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>446, 26</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>113, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>22</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Text" xml:space="preserve">
|
||||||
|
<value>* Fill in manually</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 27</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>83, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Text" xml:space="preserve">
|
||||||
|
<value>Alias (remarks)</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Top</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>611, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 211</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>611, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtAddress.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 62</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtAddress.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtAddress.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>432, 104</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>23</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>313, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>11</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -117,25 +117,25 @@
|
|||||||
<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">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>服务器</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>地址(address)</value>
|
||||||
|
</data>
|
||||||
<data name="label13.Text" xml:space="preserve">
|
<data name="label13.Text" xml:space="preserve">
|
||||||
<value>*手填,方便识别管理</value>
|
<value>*手填,方便识别管理</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label6.Text" xml:space="preserve">
|
<data name="label6.Text" xml:space="preserve">
|
||||||
<value>别名(remarks)</value>
|
<value>别名(remarks)</value>
|
||||||
</data>
|
</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 name="$this.Text" xml:space="preserve">
|
|
||||||
<value>编辑自定义配置服务器</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
40
v2rayN/v2rayN/Forms/AddServer3Form.Designer.cs
generated
40
v2rayN/v2rayN/Forms/AddServer3Form.Designer.cs
generated
@@ -45,12 +45,8 @@
|
|||||||
this.panel2 = new System.Windows.Forms.Panel();
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
this.btnOK = new System.Windows.Forms.Button();
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
this.menuServer = new System.Windows.Forms.MenuStrip();
|
|
||||||
this.MenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.menuItemImportClipboard = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
this.panel2.SuspendLayout();
|
this.panel2.SuspendLayout();
|
||||||
this.menuServer.SuspendLayout();
|
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
@@ -87,15 +83,6 @@
|
|||||||
//
|
//
|
||||||
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[] {
|
|
||||||
resources.GetString("cmbSecurity.Items"),
|
|
||||||
resources.GetString("cmbSecurity.Items1"),
|
|
||||||
resources.GetString("cmbSecurity.Items2"),
|
|
||||||
resources.GetString("cmbSecurity.Items3"),
|
|
||||||
resources.GetString("cmbSecurity.Items4"),
|
|
||||||
resources.GetString("cmbSecurity.Items5"),
|
|
||||||
resources.GetString("cmbSecurity.Items6"),
|
|
||||||
resources.GetString("cmbSecurity.Items7")});
|
|
||||||
resources.ApplyResources(this.cmbSecurity, "cmbSecurity");
|
resources.ApplyResources(this.cmbSecurity, "cmbSecurity");
|
||||||
this.cmbSecurity.Name = "cmbSecurity";
|
this.cmbSecurity.Name = "cmbSecurity";
|
||||||
//
|
//
|
||||||
@@ -163,26 +150,6 @@
|
|||||||
resources.ApplyResources(this.panel1, "panel1");
|
resources.ApplyResources(this.panel1, "panel1");
|
||||||
this.panel1.Name = "panel1";
|
this.panel1.Name = "panel1";
|
||||||
//
|
//
|
||||||
// menuServer
|
|
||||||
//
|
|
||||||
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.MenuItem1});
|
|
||||||
resources.ApplyResources(this.menuServer, "menuServer");
|
|
||||||
this.menuServer.Name = "menuServer";
|
|
||||||
//
|
|
||||||
// MenuItem1
|
|
||||||
//
|
|
||||||
this.MenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.menuItemImportClipboard});
|
|
||||||
this.MenuItem1.Name = "MenuItem1";
|
|
||||||
resources.ApplyResources(this.MenuItem1, "MenuItem1");
|
|
||||||
//
|
|
||||||
// menuItemImportClipboard
|
|
||||||
//
|
|
||||||
this.menuItemImportClipboard.Name = "menuItemImportClipboard";
|
|
||||||
resources.ApplyResources(this.menuItemImportClipboard, "menuItemImportClipboard");
|
|
||||||
this.menuItemImportClipboard.Click += new System.EventHandler(this.menuItemImportClipboard_Click);
|
|
||||||
//
|
|
||||||
// AddServer3Form
|
// AddServer3Form
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
@@ -191,7 +158,6 @@
|
|||||||
this.Controls.Add(this.groupBox1);
|
this.Controls.Add(this.groupBox1);
|
||||||
this.Controls.Add(this.panel2);
|
this.Controls.Add(this.panel2);
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.Controls.Add(this.menuServer);
|
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
this.MinimizeBox = true;
|
this.MinimizeBox = true;
|
||||||
this.Name = "AddServer3Form";
|
this.Name = "AddServer3Form";
|
||||||
@@ -199,10 +165,7 @@
|
|||||||
this.groupBox1.ResumeLayout(false);
|
this.groupBox1.ResumeLayout(false);
|
||||||
this.groupBox1.PerformLayout();
|
this.groupBox1.PerformLayout();
|
||||||
this.panel2.ResumeLayout(false);
|
this.panel2.ResumeLayout(false);
|
||||||
this.menuServer.ResumeLayout(false);
|
|
||||||
this.menuServer.PerformLayout();
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,8 +187,5 @@
|
|||||||
private System.Windows.Forms.Panel panel1;
|
private System.Windows.Forms.Panel panel1;
|
||||||
private System.Windows.Forms.Panel panel2;
|
private System.Windows.Forms.Panel panel2;
|
||||||
private System.Windows.Forms.Label label13;
|
private System.Windows.Forms.Label label13;
|
||||||
private System.Windows.Forms.MenuStrip menuServer;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItem1;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuItemImportClipboard;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,10 +5,8 @@ using v2rayN.Mode;
|
|||||||
|
|
||||||
namespace v2rayN.Forms
|
namespace v2rayN.Forms
|
||||||
{
|
{
|
||||||
public partial class AddServer3Form : BaseForm
|
public partial class AddServer3Form : BaseServerForm
|
||||||
{
|
{
|
||||||
public int EditIndex { get; set; }
|
|
||||||
VmessItem vmessItem = null;
|
|
||||||
|
|
||||||
public AddServer3Form()
|
public AddServer3Form()
|
||||||
{
|
{
|
||||||
@@ -17,6 +15,7 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
private void AddServer3Form_Load(object sender, EventArgs e)
|
private void AddServer3Form_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
cmbSecurity.Items.AddRange(Global.ssSecuritys.ToArray());
|
||||||
if (EditIndex >= 0)
|
if (EditIndex >= 0)
|
||||||
{
|
{
|
||||||
vmessItem = config.vmess[EditIndex];
|
vmessItem = config.vmess[EditIndex];
|
||||||
@@ -96,7 +95,7 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UI.Show(UIRes.I18N("OperationFailed"));
|
UI.ShowWarning(UIRes.I18N("OperationFailed"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void btnClose_Click(object sender, EventArgs e)
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
@@ -104,40 +103,5 @@ namespace v2rayN.Forms
|
|||||||
this.DialogResult = DialogResult.Cancel;
|
this.DialogResult = DialogResult.Cancel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#region 导入配置
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 从剪贴板导入URL
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender"></param>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
private void menuItemImportClipboard_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ImportConfig();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ImportConfig()
|
|
||||||
{
|
|
||||||
ClearServer();
|
|
||||||
|
|
||||||
string msg;
|
|
||||||
VmessItem vmessItem = V2rayConfigHandler.ImportFromClipboardConfig(Utils.GetClipboardData(), out msg);
|
|
||||||
if (vmessItem == null)
|
|
||||||
{
|
|
||||||
UI.Show(msg);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
txtAddress.Text = vmessItem.address;
|
|
||||||
txtPort.Text = vmessItem.port.ToString();
|
|
||||||
cmbSecurity.Text = vmessItem.security;
|
|
||||||
txtId.Text = vmessItem.id;
|
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,7 +126,7 @@
|
|||||||
</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="btnClose.TabIndex" type="System.Int32, mscorlib">
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>4</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnClose.Text" xml:space="preserve">
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
<value>&Cancel</value>
|
<value>&Cancel</value>
|
||||||
@@ -146,8 +146,12 @@
|
|||||||
<data name="label13.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label13.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="label13.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>337, 158</value>
|
<value>426, 158</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>113, 12</value>
|
<value>113, 12</value>
|
||||||
@@ -170,38 +174,14 @@
|
|||||||
<data name=">>label13.ZOrder" xml:space="preserve">
|
<data name=">>label13.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbSecurity.Items" xml:space="preserve">
|
|
||||||
<value>aes-256-cfb</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items1" xml:space="preserve">
|
|
||||||
<value>aes-128-cfb</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items2" xml:space="preserve">
|
|
||||||
<value>chacha20</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items3" xml:space="preserve">
|
|
||||||
<value>chacha20-ietf</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items4" xml:space="preserve">
|
|
||||||
<value>aes-256-gcm</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items5" xml:space="preserve">
|
|
||||||
<value>aes-128-gcm</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items6" xml:space="preserve">
|
|
||||||
<value>chacha20-poly1305</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items7" xml:space="preserve">
|
|
||||||
<value>chacha20-ietf-poly1305</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 120</value>
|
<value>127, 123</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmbSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>194, 20</value>
|
<value>278, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbSecurity.TabIndex" type="System.Int32, mscorlib">
|
<data name="cmbSecurity.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>6</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>cmbSecurity.Name" xml:space="preserve">
|
<data name=">>cmbSecurity.Name" xml:space="preserve">
|
||||||
<value>cmbSecurity</value>
|
<value>cmbSecurity</value>
|
||||||
@@ -219,10 +199,10 @@
|
|||||||
<value>127, 154</value>
|
<value>127, 154</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>194, 21</value>
|
<value>278, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>11</value>
|
<value>4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtRemarks.Name" xml:space="preserve">
|
<data name=">>txtRemarks.Name" xml:space="preserve">
|
||||||
<value>txtRemarks</value>
|
<value>txtRemarks</value>
|
||||||
@@ -240,7 +220,7 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 158</value>
|
<value>12, 155</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>95, 12</value>
|
<value>95, 12</value>
|
||||||
@@ -291,16 +271,13 @@
|
|||||||
<value>4</value>
|
<value>4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 85</value>
|
<value>127, 91</value>
|
||||||
</data>
|
|
||||||
<data name="txtId.PasswordChar" type="System.Char, mscorlib" xml:space="preserve">
|
|
||||||
<value>*</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtId.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 21</value>
|
<value>278, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>5</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtId.Name" xml:space="preserve">
|
<data name=">>txtId.Name" xml:space="preserve">
|
||||||
<value>txtId</value>
|
<value>txtId</value>
|
||||||
@@ -318,7 +295,7 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 89</value>
|
<value>12, 93</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>53, 12</value>
|
<value>53, 12</value>
|
||||||
@@ -342,13 +319,13 @@
|
|||||||
<value>6</value>
|
<value>6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 56</value>
|
<value>127, 59</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtPort.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtPort.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>194, 21</value>
|
<value>194, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>3</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtPort.Name" xml:space="preserve">
|
<data name=">>txtPort.Name" xml:space="preserve">
|
||||||
<value>txtPort</value>
|
<value>txtPort</value>
|
||||||
@@ -366,7 +343,7 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 60</value>
|
<value>12, 62</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>71, 12</value>
|
<value>71, 12</value>
|
||||||
@@ -396,7 +373,7 @@
|
|||||||
<value>359, 21</value>
|
<value>359, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>1</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtAddress.Name" xml:space="preserve">
|
<data name=">>txtAddress.Name" xml:space="preserve">
|
||||||
<value>txtAddress</value>
|
<value>txtAddress</value>
|
||||||
@@ -437,15 +414,14 @@
|
|||||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
<value>10</value>
|
<value>10</value>
|
||||||
</data>
|
</data>
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Fill</value>
|
<value>Fill</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 35</value>
|
<value>0, 10</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>547, 196</value>
|
<value>547, 221</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>3</value>
|
<value>3</value>
|
||||||
@@ -472,7 +448,7 @@
|
|||||||
<value>75, 23</value>
|
<value>75, 23</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>5</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
<value>&OK</value>
|
<value>&OK</value>
|
||||||
@@ -517,7 +493,7 @@
|
|||||||
<value>Top</value>
|
<value>Top</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 25</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>547, 10</value>
|
<value>547, 10</value>
|
||||||
@@ -537,42 +513,6 @@
|
|||||||
<data name=">>panel1.ZOrder" xml:space="preserve">
|
<data name=">>panel1.ZOrder" xml:space="preserve">
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="menuServer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>17, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<data name="menuItemImportClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>235, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuItemImportClipboard.Text" xml:space="preserve">
|
|
||||||
<value>Import URL from clipboard</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>162, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItem1.Text" xml:space="preserve">
|
|
||||||
<value>Import configuration file</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuServer.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuServer.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>547, 25</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuServer.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>8</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.Name" xml:space="preserve">
|
|
||||||
<value>menuServer</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.ZOrder" xml:space="preserve">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
@@ -585,22 +525,10 @@
|
|||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>Edit or add a [Shadowsocks] server</value>
|
<value>Edit or add a [Shadowsocks] server</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>MenuItem1.Name" xml:space="preserve">
|
|
||||||
<value>MenuItem1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>MenuItem1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuItemImportClipboard.Name" xml:space="preserve">
|
|
||||||
<value>menuItemImportClipboard</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuItemImportClipboard.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>AddServer3Form</value>
|
<value>AddServer3Form</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Type" xml:space="preserve">
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
<value>v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
<value>v2rayN.Forms.BaseServerForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -120,39 +120,58 @@
|
|||||||
<data name="btnClose.Text" xml:space="preserve">
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
<value>取消(&C)</value>
|
<value>取消(&C)</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>服务器</value>
|
||||||
|
</data>
|
||||||
<data name="label13.Text" xml:space="preserve">
|
<data name="label13.Text" xml:space="preserve">
|
||||||
<value>*手填,方便识别管理</value>
|
<value>*手填,方便识别管理</value>
|
||||||
</data>
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>83, 12</value>
|
||||||
|
</data>
|
||||||
<data name="label6.Text" xml:space="preserve">
|
<data name="label6.Text" xml:space="preserve">
|
||||||
<value>别名(remarks)</value>
|
<value>别名(remarks)</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label5.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>53, 12</value>
|
||||||
|
</data>
|
||||||
<data name="label5.Text" xml:space="preserve">
|
<data name="label5.Text" xml:space="preserve">
|
||||||
<value>加密方式</value>
|
<value>加密方式</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
<data name="label3.Text" xml:space="preserve">
|
<data name="label3.Text" xml:space="preserve">
|
||||||
<value>密码</value>
|
<value>密码</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
<data name="label2.Text" xml:space="preserve">
|
<data name="label2.Text" xml:space="preserve">
|
||||||
<value>服务器端口</value>
|
<value>服务器端口</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
<data name="label1.Text" xml:space="preserve">
|
<data name="label1.Text" xml:space="preserve">
|
||||||
<value>服务器地址</value>
|
<value>服务器地址</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>服务器</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
<value>确定(&O)</value>
|
<value>确定(&O)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuItemImportClipboard.Text" xml:space="preserve">
|
<data name="MenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>从剪贴板导入URL</value>
|
<value>92, 21</value>
|
||||||
</data>
|
|
||||||
<data name="menuItemScanScreen.Text" xml:space="preserve">
|
|
||||||
<value>扫描屏幕上的二维码</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="MenuItem1.Text" xml:space="preserve">
|
<data name="MenuItem1.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="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>编辑或添加[Shadowsocks]服务器</value>
|
<value>编辑或添加[Shadowsocks]服务器</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
31
v2rayN/v2rayN/Forms/AddServer4Form.Designer.cs
generated
31
v2rayN/v2rayN/Forms/AddServer4Form.Designer.cs
generated
@@ -45,12 +45,8 @@
|
|||||||
this.panel2 = new System.Windows.Forms.Panel();
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
this.btnOK = new System.Windows.Forms.Button();
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
this.menuServer = new System.Windows.Forms.MenuStrip();
|
|
||||||
this.MenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.menuItemImportClipboard = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
this.panel2.SuspendLayout();
|
this.panel2.SuspendLayout();
|
||||||
this.menuServer.SuspendLayout();
|
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
@@ -152,26 +148,6 @@
|
|||||||
resources.ApplyResources(this.panel1, "panel1");
|
resources.ApplyResources(this.panel1, "panel1");
|
||||||
this.panel1.Name = "panel1";
|
this.panel1.Name = "panel1";
|
||||||
//
|
//
|
||||||
// menuServer
|
|
||||||
//
|
|
||||||
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.MenuItem1});
|
|
||||||
resources.ApplyResources(this.menuServer, "menuServer");
|
|
||||||
this.menuServer.Name = "menuServer";
|
|
||||||
//
|
|
||||||
// MenuItem1
|
|
||||||
//
|
|
||||||
this.MenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.menuItemImportClipboard});
|
|
||||||
this.MenuItem1.Name = "MenuItem1";
|
|
||||||
resources.ApplyResources(this.MenuItem1, "MenuItem1");
|
|
||||||
//
|
|
||||||
// menuItemImportClipboard
|
|
||||||
//
|
|
||||||
this.menuItemImportClipboard.Name = "menuItemImportClipboard";
|
|
||||||
resources.ApplyResources(this.menuItemImportClipboard, "menuItemImportClipboard");
|
|
||||||
this.menuItemImportClipboard.Click += new System.EventHandler(this.menuItemImportClipboard_Click);
|
|
||||||
//
|
|
||||||
// AddServer4Form
|
// AddServer4Form
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
@@ -180,7 +156,6 @@
|
|||||||
this.Controls.Add(this.groupBox1);
|
this.Controls.Add(this.groupBox1);
|
||||||
this.Controls.Add(this.panel2);
|
this.Controls.Add(this.panel2);
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.Controls.Add(this.menuServer);
|
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
this.MinimizeBox = true;
|
this.MinimizeBox = true;
|
||||||
this.Name = "AddServer4Form";
|
this.Name = "AddServer4Form";
|
||||||
@@ -188,10 +163,7 @@
|
|||||||
this.groupBox1.ResumeLayout(false);
|
this.groupBox1.ResumeLayout(false);
|
||||||
this.groupBox1.PerformLayout();
|
this.groupBox1.PerformLayout();
|
||||||
this.panel2.ResumeLayout(false);
|
this.panel2.ResumeLayout(false);
|
||||||
this.menuServer.ResumeLayout(false);
|
|
||||||
this.menuServer.PerformLayout();
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -209,9 +181,6 @@
|
|||||||
private System.Windows.Forms.Panel panel1;
|
private System.Windows.Forms.Panel panel1;
|
||||||
private System.Windows.Forms.Panel panel2;
|
private System.Windows.Forms.Panel panel2;
|
||||||
private System.Windows.Forms.Label label13;
|
private System.Windows.Forms.Label label13;
|
||||||
private System.Windows.Forms.MenuStrip menuServer;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItem1;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuItemImportClipboard;
|
|
||||||
private System.Windows.Forms.TextBox txtId;
|
private System.Windows.Forms.TextBox txtId;
|
||||||
private System.Windows.Forms.Label label3;
|
private System.Windows.Forms.Label label3;
|
||||||
private System.Windows.Forms.TextBox txtSecurity;
|
private System.Windows.Forms.TextBox txtSecurity;
|
||||||
|
|||||||
@@ -5,10 +5,8 @@ using v2rayN.Mode;
|
|||||||
|
|
||||||
namespace v2rayN.Forms
|
namespace v2rayN.Forms
|
||||||
{
|
{
|
||||||
public partial class AddServer4Form : BaseForm
|
public partial class AddServer4Form : BaseServerForm
|
||||||
{
|
{
|
||||||
public int EditIndex { get; set; }
|
|
||||||
VmessItem vmessItem = null;
|
|
||||||
|
|
||||||
public AddServer4Form()
|
public AddServer4Form()
|
||||||
{
|
{
|
||||||
@@ -85,7 +83,7 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UI.Show(UIRes.I18N("OperationFailed"));
|
UI.ShowWarning(UIRes.I18N("OperationFailed"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void btnClose_Click(object sender, EventArgs e)
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
@@ -94,39 +92,5 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#region 导入配置
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 从剪贴板导入URL
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sender"></param>
|
|
||||||
/// <param name="e"></param>
|
|
||||||
private void menuItemImportClipboard_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ImportConfig();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ImportConfig()
|
|
||||||
{
|
|
||||||
ClearServer();
|
|
||||||
|
|
||||||
string msg;
|
|
||||||
VmessItem vmessItem = V2rayConfigHandler.ImportFromClipboardConfig(Utils.GetClipboardData(), out msg);
|
|
||||||
if (vmessItem == null)
|
|
||||||
{
|
|
||||||
UI.Show(msg);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
txtAddress.Text = vmessItem.address;
|
|
||||||
txtPort.Text = vmessItem.port.ToString();
|
|
||||||
txtSecurity.Text = vmessItem.security;
|
|
||||||
txtId.Text = vmessItem.id;
|
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,7 +126,7 @@
|
|||||||
</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="btnClose.TabIndex" type="System.Int32, mscorlib">
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>4</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnClose.Text" xml:space="preserve">
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
<value>&Cancel</value>
|
<value>&Cancel</value>
|
||||||
@@ -144,13 +144,13 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 84</value>
|
<value>127, 89</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 21</value>
|
<value>278, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtSecurity.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtSecurity.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>26</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtSecurity.Name" xml:space="preserve">
|
<data name=">>txtSecurity.Name" xml:space="preserve">
|
||||||
<value>txtSecurity</value>
|
<value>txtSecurity</value>
|
||||||
@@ -172,7 +172,7 @@
|
|||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 88</value>
|
<value>12, 93</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>89, 12</value>
|
<value>89, 12</value>
|
||||||
@@ -196,16 +196,13 @@
|
|||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 117</value>
|
<value>127, 120</value>
|
||||||
</data>
|
|
||||||
<data name="txtId.PasswordChar" type="System.Char, mscorlib" xml:space="preserve">
|
|
||||||
<value>*</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtId.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 21</value>
|
<value>278, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>24</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtId.Name" xml:space="preserve">
|
<data name=">>txtId.Name" xml:space="preserve">
|
||||||
<value>txtId</value>
|
<value>txtId</value>
|
||||||
@@ -226,7 +223,7 @@
|
|||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 121</value>
|
<value>12, 124</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>113, 12</value>
|
<value>113, 12</value>
|
||||||
@@ -253,7 +250,7 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>337, 158</value>
|
<value>422, 155</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>113, 12</value>
|
<value>113, 12</value>
|
||||||
@@ -277,13 +274,13 @@
|
|||||||
<value>4</value>
|
<value>4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 154</value>
|
<value>127, 151</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>194, 21</value>
|
<value>278, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>11</value>
|
<value>4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtRemarks.Name" xml:space="preserve">
|
<data name=">>txtRemarks.Name" xml:space="preserve">
|
||||||
<value>txtRemarks</value>
|
<value>txtRemarks</value>
|
||||||
@@ -301,7 +298,7 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 158</value>
|
<value>12, 155</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>95, 12</value>
|
<value>95, 12</value>
|
||||||
@@ -325,13 +322,13 @@
|
|||||||
<value>6</value>
|
<value>6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 56</value>
|
<value>127, 58</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtPort.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtPort.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>194, 21</value>
|
<value>194, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>3</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtPort.Name" xml:space="preserve">
|
<data name=">>txtPort.Name" xml:space="preserve">
|
||||||
<value>txtPort</value>
|
<value>txtPort</value>
|
||||||
@@ -349,7 +346,7 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 60</value>
|
<value>12, 62</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>71, 12</value>
|
<value>71, 12</value>
|
||||||
@@ -379,7 +376,7 @@
|
|||||||
<value>359, 21</value>
|
<value>359, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>1</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtAddress.Name" xml:space="preserve">
|
<data name=">>txtAddress.Name" xml:space="preserve">
|
||||||
<value>txtAddress</value>
|
<value>txtAddress</value>
|
||||||
@@ -424,10 +421,10 @@
|
|||||||
<value>Fill</value>
|
<value>Fill</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 35</value>
|
<value>0, 10</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>547, 196</value>
|
<value>547, 221</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>3</value>
|
<value>3</value>
|
||||||
@@ -454,7 +451,7 @@
|
|||||||
<value>75, 23</value>
|
<value>75, 23</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>5</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
<value>&OK</value>
|
<value>&OK</value>
|
||||||
@@ -499,7 +496,7 @@
|
|||||||
<value>Top</value>
|
<value>Top</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 25</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>547, 10</value>
|
<value>547, 10</value>
|
||||||
@@ -519,42 +516,6 @@
|
|||||||
<data name=">>panel1.ZOrder" xml:space="preserve">
|
<data name=">>panel1.ZOrder" xml:space="preserve">
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="menuServer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>17, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<data name="menuItemImportClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>235, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuItemImportClipboard.Text" xml:space="preserve">
|
|
||||||
<value>Import URL from clipboard</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>162, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name="MenuItem1.Text" xml:space="preserve">
|
|
||||||
<value>Import configuration file</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuServer.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuServer.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>547, 25</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuServer.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>8</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.Name" xml:space="preserve">
|
|
||||||
<value>menuServer</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuServer.ZOrder" xml:space="preserve">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
@@ -567,22 +528,10 @@
|
|||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>Edit or add a [Socks] server</value>
|
<value>Edit or add a [Socks] server</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>MenuItem1.Name" xml:space="preserve">
|
|
||||||
<value>MenuItem1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>MenuItem1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuItemImportClipboard.Name" xml:space="preserve">
|
|
||||||
<value>menuItemImportClipboard</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>menuItemImportClipboard.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>AddServer4Form</value>
|
<value>AddServer4Form</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Type" xml:space="preserve">
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
<value>v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
<value>v2rayN.Forms.BaseServerForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -120,28 +120,13 @@
|
|||||||
<data name="btnClose.Text" xml:space="preserve">
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
<value>取消(&C)</value>
|
<value>取消(&C)</value>
|
||||||
</data>
|
</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" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="txtSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 85</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 89</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>77, 12</value>
|
<value>77, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.Text" xml:space="preserve">
|
<data name="label4.Text" xml:space="preserve">
|
||||||
<value>用户名(可选)</value>
|
<value>用户名(可选)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 115</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 119</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>65, 12</value>
|
<value>65, 12</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -169,21 +154,24 @@
|
|||||||
<data name="label1.Text" xml:space="preserve">
|
<data name="label1.Text" xml:space="preserve">
|
||||||
<value>服务器地址</value>
|
<value>服务器地址</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>服务器</value>
|
||||||
|
</data>
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
<value>确定(&O)</value>
|
<value>确定(&O)</value>
|
||||||
</data>
|
</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="menuItemImportClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuItemImportClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>171, 22</value>
|
<value>171, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuItemImportClipboard.Text" xml:space="preserve">
|
<data name="menuItemImportClipboard.Text" xml:space="preserve">
|
||||||
<value>从剪贴板导入URL</value>
|
<value>从剪贴板导入URL</value>
|
||||||
</data>
|
</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">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>编辑或添加[Socks]服务器</value>
|
<value>编辑或添加[Socks]服务器</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
246
v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs
generated
Normal file
246
v2rayN/v2rayN/Forms/AddServer5Form.Designer.cs
generated
Normal file
@@ -0,0 +1,246 @@
|
|||||||
|
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.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.panel3 = new System.Windows.Forms.Panel();
|
||||||
|
this.transportControl = new v2rayN.Forms.ServerTransportControl();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.panel3.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// btnClose
|
||||||
|
//
|
||||||
|
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
resources.ApplyResources(this.btnClose, "btnClose");
|
||||||
|
this.btnClose.Name = "btnClose";
|
||||||
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
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.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);
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// cmbFlow
|
||||||
|
//
|
||||||
|
this.cmbFlow.FormattingEnabled = true;
|
||||||
|
resources.ApplyResources(this.cmbFlow, "cmbFlow");
|
||||||
|
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";
|
||||||
|
//
|
||||||
|
// label8
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label8, "label8");
|
||||||
|
this.label8.Name = "label8";
|
||||||
|
//
|
||||||
|
// cmbSecurity
|
||||||
|
//
|
||||||
|
this.cmbSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.Simple;
|
||||||
|
this.cmbSecurity.FormattingEnabled = true;
|
||||||
|
this.cmbSecurity.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("cmbSecurity.Items")});
|
||||||
|
resources.ApplyResources(this.cmbSecurity, "cmbSecurity");
|
||||||
|
this.cmbSecurity.Name = "cmbSecurity";
|
||||||
|
//
|
||||||
|
// txtRemarks
|
||||||
|
//
|
||||||
|
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
|
||||||
|
//
|
||||||
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
|
this.panel2.Controls.Add(this.btnOK);
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
|
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";
|
||||||
|
//
|
||||||
|
// panel3
|
||||||
|
//
|
||||||
|
this.panel3.Controls.Add(this.transportControl);
|
||||||
|
resources.ApplyResources(this.panel3, "panel3");
|
||||||
|
this.panel3.Name = "panel3";
|
||||||
|
//
|
||||||
|
// transportControl
|
||||||
|
//
|
||||||
|
this.transportControl.AllowXtls = false;
|
||||||
|
resources.ApplyResources(this.transportControl, "transportControl");
|
||||||
|
this.transportControl.Name = "transportControl";
|
||||||
|
//
|
||||||
|
// 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.panel3);
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
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.panel2.ResumeLayout(false);
|
||||||
|
this.panel3.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#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.Label label8;
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.Label label13;
|
||||||
|
private System.Windows.Forms.Button btnGUID;
|
||||||
|
private System.Windows.Forms.ComboBox cmbFlow;
|
||||||
|
private System.Windows.Forms.Label label4;
|
||||||
|
private System.Windows.Forms.Panel panel3;
|
||||||
|
private ServerTransportControl transportControl;
|
||||||
|
}
|
||||||
|
}
|
||||||
117
v2rayN/v2rayN/Forms/AddServer5Form.cs
Normal file
117
v2rayN/v2rayN/Forms/AddServer5Form.cs
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
using System;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using v2rayN.Handler;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
public partial class AddServer5Form : BaseServerForm
|
||||||
|
{
|
||||||
|
|
||||||
|
public AddServer5Form()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddServer5Form_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
cmbFlow.Items.AddRange(Global.xtlsFlows.ToArray());
|
||||||
|
transportControl.AllowXtls = true;
|
||||||
|
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;
|
||||||
|
txtRemarks.Text = vmessItem.remarks;
|
||||||
|
|
||||||
|
transportControl.BindingServer(vmessItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 清除设置
|
||||||
|
/// </summary>
|
||||||
|
private void ClearServer()
|
||||||
|
{
|
||||||
|
txtAddress.Text = "";
|
||||||
|
txtPort.Text = "";
|
||||||
|
txtId.Text = "";
|
||||||
|
cmbFlow.Text = "";
|
||||||
|
cmbSecurity.Text = Global.None;
|
||||||
|
txtRemarks.Text = "";
|
||||||
|
|
||||||
|
transportControl.ClearServer(vmessItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
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 remarks = txtRemarks.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
transportControl.EndBindingServer();
|
||||||
|
|
||||||
|
vmessItem.address = address;
|
||||||
|
vmessItem.port = Utils.ToInt(port);
|
||||||
|
vmessItem.id = id;
|
||||||
|
vmessItem.flow = flow;
|
||||||
|
vmessItem.security = security;
|
||||||
|
vmessItem.remarks = remarks;
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
690
v2rayN/v2rayN/Forms/AddServer5Form.resx
Normal file
690
v2rayN/v2rayN/Forms/AddServer5Form.resx
Normal file
@@ -0,0 +1,690 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>396, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>&Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Name" xml:space="preserve">
|
||||||
|
<value>btnClose</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbFlow.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 123</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbFlow.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>211, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbFlow.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbFlow.Name" xml:space="preserve">
|
||||||
|
<value>cmbFlow</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbFlow.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbFlow.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbFlow.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 127</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>25</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Text" xml:space="preserve">
|
||||||
|
<value>Flow</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Name" xml:space="preserve">
|
||||||
|
<value>label4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnGUID.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>411, 91</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnGUID.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnGUID.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>23</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnGUID.Text" xml:space="preserve">
|
||||||
|
<value>&Generate</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnGUID.Name" xml:space="preserve">
|
||||||
|
<value>btnGUID</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnGUID.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnGUID.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnGUID.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>353, 189</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>113, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>22</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Text" xml:space="preserve">
|
||||||
|
<value>* Fill in manually</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label13.Name" xml:space="preserve">
|
||||||
|
<value>label13</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label13.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label13.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label13.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="label8.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label8.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label8.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>353, 157</value>
|
||||||
|
</data>
|
||||||
|
<data name="label8.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>119, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label8.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>14</value>
|
||||||
|
</data>
|
||||||
|
<data name="label8.Text" xml:space="preserve">
|
||||||
|
<value>*Recommended (none)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label8.Name" xml:space="preserve">
|
||||||
|
<value>label8</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label8.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label8.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label8.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbSecurity.Items" xml:space="preserve">
|
||||||
|
<value>none</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 154</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>211, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbSecurity.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbSecurity.Name" xml:space="preserve">
|
||||||
|
<value>cmbSecurity</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbSecurity.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbSecurity.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbSecurity.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 185</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>211, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Name" xml:space="preserve">
|
||||||
|
<value>txtRemarks</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 189</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>95, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Text" xml:space="preserve">
|
||||||
|
<value>Alias (remarks)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label6.Name" xml:space="preserve">
|
||||||
|
<value>label6</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label6.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label6.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label6.ZOrder" xml:space="preserve">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 158</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.Text" xml:space="preserve">
|
||||||
|
<value>Encryption</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label5.Name" xml:space="preserve">
|
||||||
|
<value>label5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label5.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label5.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label5.ZOrder" xml:space="preserve">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 91</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtId.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>278, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtId.Name" xml:space="preserve">
|
||||||
|
<value>txtId</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtId.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtId.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtId.ZOrder" xml:space="preserve">
|
||||||
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 95</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>53, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>UUID(id)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Name" xml:space="preserve">
|
||||||
|
<value>label3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 59</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>143, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Name" xml:space="preserve">
|
||||||
|
<value>txtPort</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.ZOrder" xml:space="preserve">
|
||||||
|
<value>11</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 63</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>Port</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Name" xml:space="preserve">
|
||||||
|
<value>label2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||||
|
<value>12</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtAddress.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 27</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtAddress.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>359, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtAddress.Name" xml:space="preserve">
|
||||||
|
<value>txtAddress</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtAddress.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtAddress.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtAddress.ZOrder" xml:space="preserve">
|
||||||
|
<value>13</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 31</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>47, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>Address</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
|
<value>label1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
|
<value>14</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>729, 221</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>Server</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Name" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>303, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>&OK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Name" xml:space="preserve">
|
||||||
|
<value>btnOK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 461</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>729, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Name" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Top</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>729, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Name" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>729, 230</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.Name" xml:space="preserve">
|
||||||
|
<value>transportControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.ServerTransportControl, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 231</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>729, 230</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Name" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>25</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>729, 521</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>Edit or add a [VLESS] server</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>AddServer5Form</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.BaseServerForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
193
v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx
Normal file
193
v2rayN/v2rayN/Forms/AddServer5Form.zh-Hans.resx
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="cmbFlow.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>220, 20</value>
|
||||||
|
</data>
|
||||||
|
<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="label8.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>353, 158</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.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>220, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>220, 21</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="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>服务器</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>编辑或添加[VLESS]服务器</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
209
v2rayN/v2rayN/Forms/AddServer6Form.Designer.cs
generated
Normal file
209
v2rayN/v2rayN/Forms/AddServer6Form.Designer.cs
generated
Normal file
@@ -0,0 +1,209 @@
|
|||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
partial class AddServer6Form
|
||||||
|
{
|
||||||
|
/// <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(AddServer6Form));
|
||||||
|
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.label13 = new System.Windows.Forms.Label();
|
||||||
|
this.txtRemarks = new System.Windows.Forms.TextBox();
|
||||||
|
this.label6 = 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.panel3 = new System.Windows.Forms.Panel();
|
||||||
|
this.transportControl = new v2rayN.Forms.ServerTransportControl();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.panel3.SuspendLayout();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// btnClose
|
||||||
|
//
|
||||||
|
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
resources.ApplyResources(this.btnClose, "btnClose");
|
||||||
|
this.btnClose.Name = "btnClose";
|
||||||
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
this.groupBox1.Controls.Add(this.cmbFlow);
|
||||||
|
this.groupBox1.Controls.Add(this.label4);
|
||||||
|
this.groupBox1.Controls.Add(this.label13);
|
||||||
|
this.groupBox1.Controls.Add(this.txtRemarks);
|
||||||
|
this.groupBox1.Controls.Add(this.label6);
|
||||||
|
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);
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// cmbFlow
|
||||||
|
//
|
||||||
|
this.cmbFlow.FormattingEnabled = true;
|
||||||
|
resources.ApplyResources(this.cmbFlow, "cmbFlow");
|
||||||
|
this.cmbFlow.Name = "cmbFlow";
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label4, "label4");
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
//
|
||||||
|
// label13
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label13, "label13");
|
||||||
|
this.label13.Name = "label13";
|
||||||
|
//
|
||||||
|
// txtRemarks
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtRemarks, "txtRemarks");
|
||||||
|
this.txtRemarks.Name = "txtRemarks";
|
||||||
|
//
|
||||||
|
// label6
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label6, "label6");
|
||||||
|
this.label6.Name = "label6";
|
||||||
|
//
|
||||||
|
// 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";
|
||||||
|
//
|
||||||
|
// panel3
|
||||||
|
//
|
||||||
|
this.panel3.Controls.Add(this.transportControl);
|
||||||
|
resources.ApplyResources(this.panel3, "panel3");
|
||||||
|
this.panel3.Name = "panel3";
|
||||||
|
//
|
||||||
|
// transportControl
|
||||||
|
//
|
||||||
|
this.transportControl.AllowXtls = false;
|
||||||
|
resources.ApplyResources(this.transportControl, "transportControl");
|
||||||
|
this.transportControl.Name = "transportControl";
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
|
this.panel2.Controls.Add(this.btnOK);
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
|
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";
|
||||||
|
//
|
||||||
|
// AddServer6Form
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.CancelButton = this.btnClose;
|
||||||
|
this.Controls.Add(this.groupBox1);
|
||||||
|
this.Controls.Add(this.panel3);
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
|
this.MinimizeBox = true;
|
||||||
|
this.Name = "AddServer6Form";
|
||||||
|
this.Load += new System.EventHandler(this.AddServer6Form_Load);
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.groupBox1.PerformLayout();
|
||||||
|
this.panel3.ResumeLayout(false);
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#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.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.Panel panel1;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.Label label13;
|
||||||
|
private System.Windows.Forms.Panel panel3;
|
||||||
|
private ServerTransportControl transportControl;
|
||||||
|
private System.Windows.Forms.ComboBox cmbFlow;
|
||||||
|
private System.Windows.Forms.Label label4;
|
||||||
|
}
|
||||||
|
}
|
||||||
107
v2rayN/v2rayN/Forms/AddServer6Form.cs
Normal file
107
v2rayN/v2rayN/Forms/AddServer6Form.cs
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
using System;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using v2rayN.Handler;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
public partial class AddServer6Form : BaseServerForm
|
||||||
|
{
|
||||||
|
public AddServer6Form()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddServer6Form_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
cmbFlow.Items.AddRange(Global.xtlsFlows.ToArray());
|
||||||
|
transportControl.AllowXtls = true;
|
||||||
|
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;
|
||||||
|
txtRemarks.Text = vmessItem.remarks;
|
||||||
|
|
||||||
|
transportControl.BindingServer(vmessItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 清除设置
|
||||||
|
/// </summary>
|
||||||
|
private void ClearServer()
|
||||||
|
{
|
||||||
|
txtAddress.Text = "";
|
||||||
|
txtPort.Text = "";
|
||||||
|
txtId.Text = "";
|
||||||
|
cmbFlow.Text = "";
|
||||||
|
txtRemarks.Text = "";
|
||||||
|
|
||||||
|
transportControl.ClearServer(vmessItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
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 remarks = txtRemarks.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("FillPassword"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
transportControl.EndBindingServer();
|
||||||
|
|
||||||
|
vmessItem.address = address;
|
||||||
|
vmessItem.port = Utils.ToInt(port);
|
||||||
|
vmessItem.id = id;
|
||||||
|
vmessItem.flow = flow;
|
||||||
|
vmessItem.remarks = remarks;
|
||||||
|
|
||||||
|
if (ConfigHandler.AddTrojanServer(ref config, vmessItem, EditIndex) == 0)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UI.ShowWarning(UIRes.I18N("OperationFailed"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.Cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
603
v2rayN/v2rayN/Forms/AddServer6Form.resx
Normal file
603
v2rayN/v2rayN/Forms/AddServer6Form.resx
Normal file
@@ -0,0 +1,603 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="btnClose.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>396, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>&Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Name" xml:space="preserve">
|
||||||
|
<value>btnClose</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbFlow.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 123</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbFlow.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>211, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbFlow.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbFlow.Name" xml:space="preserve">
|
||||||
|
<value>cmbFlow</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbFlow.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbFlow.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbFlow.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 127</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>27</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Text" xml:space="preserve">
|
||||||
|
<value>Flow</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Name" xml:space="preserve">
|
||||||
|
<value>label4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>428, 158</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>113, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>22</value>
|
||||||
|
</data>
|
||||||
|
<data name="label13.Text" xml:space="preserve">
|
||||||
|
<value>* Fill in manually</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label13.Name" xml:space="preserve">
|
||||||
|
<value>label13</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label13.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label13.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label13.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 155</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>265, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Name" xml:space="preserve">
|
||||||
|
<value>txtRemarks</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 159</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>95, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Text" xml:space="preserve">
|
||||||
|
<value>Alias (remarks)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label6.Name" xml:space="preserve">
|
||||||
|
<value>label6</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label6.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label6.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label6.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 91</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtId.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>265, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtId.Name" xml:space="preserve">
|
||||||
|
<value>txtId</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtId.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtId.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtId.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 93</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>53, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Password</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Name" xml:space="preserve">
|
||||||
|
<value>label3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 59</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>194, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Name" xml:space="preserve">
|
||||||
|
<value>txtPort</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.ZOrder" xml:space="preserve">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 62</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>71, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>Server port</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Name" xml:space="preserve">
|
||||||
|
<value>label2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtAddress.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 27</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtAddress.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>359, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtAddress.Name" xml:space="preserve">
|
||||||
|
<value>txtAddress</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtAddress.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtAddress.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtAddress.ZOrder" xml:space="preserve">
|
||||||
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 31</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>89, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>Server address</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
|
<value>label1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>707, 191</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>Server</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Name" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>707, 230</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.Name" xml:space="preserve">
|
||||||
|
<value>transportControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.ServerTransportControl, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 201</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>707, 230</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Name" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>303, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>&OK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Name" xml:space="preserve">
|
||||||
|
<value>btnOK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 431</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>707, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Name" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Top</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>707, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Name" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>707, 491</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>Edit or add a [Trojan] server</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>AddServer6Form</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.BaseServerForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
166
v2rayN/v2rayN/Forms/AddServer6Form.zh-Hans.resx
Normal file
166
v2rayN/v2rayN/Forms/AddServer6Form.zh-Hans.resx
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
<?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>
|
||||||
|
<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="label13.Text" xml:space="preserve">
|
||||||
|
<value>*手填,方便识别管理</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="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="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>服务器端口</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>服务器地址</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>服务器</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>编辑或添加[Trojan]服务器</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
254
v2rayN/v2rayN/Forms/AddServerForm.Designer.cs
generated
254
v2rayN/v2rayN/Forms/AddServerForm.Designer.cs
generated
@@ -33,31 +33,7 @@
|
|||||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
this.btnGUID = new System.Windows.Forms.Button();
|
this.btnGUID = new System.Windows.Forms.Button();
|
||||||
this.label13 = new System.Windows.Forms.Label();
|
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.label22 = new System.Windows.Forms.Label();
|
|
||||||
this.label21 = new System.Windows.Forms.Label();
|
|
||||||
this.cmbAllowInsecure = new System.Windows.Forms.ComboBox();
|
|
||||||
this.label20 = new System.Windows.Forms.Label();
|
|
||||||
this.txtPath = new System.Windows.Forms.TextBox();
|
|
||||||
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.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();
|
||||||
@@ -79,11 +55,12 @@
|
|||||||
this.MenuItemImportServer = new System.Windows.Forms.ToolStripMenuItem();
|
this.MenuItemImportServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.MenuItemImportClipboard = new System.Windows.Forms.ToolStripMenuItem();
|
this.MenuItemImportClipboard = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.panel3 = new System.Windows.Forms.Panel();
|
||||||
|
this.transportControl = new v2rayN.Forms.ServerTransportControl();
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
this.groupBox2.SuspendLayout();
|
|
||||||
this.panTlsMore.SuspendLayout();
|
|
||||||
this.panel2.SuspendLayout();
|
this.panel2.SuspendLayout();
|
||||||
this.menuServer.SuspendLayout();
|
this.menuServer.SuspendLayout();
|
||||||
|
this.panel3.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
@@ -98,11 +75,7 @@
|
|||||||
//
|
//
|
||||||
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.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);
|
||||||
@@ -131,192 +104,15 @@
|
|||||||
resources.ApplyResources(this.label13, "label13");
|
resources.ApplyResources(this.label13, "label13");
|
||||||
this.label13.Name = "label13";
|
this.label13.Name = "label13";
|
||||||
//
|
//
|
||||||
// groupBox2
|
|
||||||
//
|
|
||||||
this.groupBox2.Controls.Add(this.label24);
|
|
||||||
this.groupBox2.Controls.Add(this.label23);
|
|
||||||
this.groupBox2.Controls.Add(this.panTlsMore);
|
|
||||||
this.groupBox2.Controls.Add(this.label20);
|
|
||||||
this.groupBox2.Controls.Add(this.txtPath);
|
|
||||||
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);
|
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
|
||||||
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
|
|
||||||
//
|
|
||||||
this.panTlsMore.Controls.Add(this.label22);
|
|
||||||
this.panTlsMore.Controls.Add(this.label21);
|
|
||||||
this.panTlsMore.Controls.Add(this.cmbAllowInsecure);
|
|
||||||
resources.ApplyResources(this.panTlsMore, "panTlsMore");
|
|
||||||
this.panTlsMore.Name = "panTlsMore";
|
|
||||||
//
|
|
||||||
// label22
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label22, "label22");
|
|
||||||
this.label22.Name = "label22";
|
|
||||||
//
|
|
||||||
// label21
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label21, "label21");
|
|
||||||
this.label21.Name = "label21";
|
|
||||||
//
|
|
||||||
// cmbAllowInsecure
|
|
||||||
//
|
|
||||||
this.cmbAllowInsecure.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbAllowInsecure.FormattingEnabled = true;
|
|
||||||
this.cmbAllowInsecure.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbAllowInsecure.Items"),
|
|
||||||
resources.GetString("cmbAllowInsecure.Items1"),
|
|
||||||
resources.GetString("cmbAllowInsecure.Items2")});
|
|
||||||
resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure");
|
|
||||||
this.cmbAllowInsecure.Name = "cmbAllowInsecure";
|
|
||||||
//
|
|
||||||
// label20
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label20, "label20");
|
|
||||||
this.label20.Name = "label20";
|
|
||||||
//
|
|
||||||
// txtPath
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txtPath, "txtPath");
|
|
||||||
this.txtPath.Name = "txtPath";
|
|
||||||
//
|
|
||||||
// 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
|
|
||||||
//
|
|
||||||
this.cmbStreamSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbStreamSecurity.FormattingEnabled = true;
|
|
||||||
this.cmbStreamSecurity.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbStreamSecurity.Items"),
|
|
||||||
resources.GetString("cmbStreamSecurity.Items1")});
|
|
||||||
resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity");
|
|
||||||
this.cmbStreamSecurity.Name = "cmbStreamSecurity";
|
|
||||||
this.cmbStreamSecurity.SelectedIndexChanged += new System.EventHandler(this.cmbStreamSecurity_SelectedIndexChanged);
|
|
||||||
//
|
|
||||||
// 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
|
|
||||||
//
|
|
||||||
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")});
|
|
||||||
resources.ApplyResources(this.cmbHeaderType, "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
|
||||||
//
|
//
|
||||||
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[] {
|
|
||||||
resources.GetString("cmbSecurity.Items"),
|
|
||||||
resources.GetString("cmbSecurity.Items1"),
|
|
||||||
resources.GetString("cmbSecurity.Items2"),
|
|
||||||
resources.GetString("cmbSecurity.Items3")});
|
|
||||||
resources.ApplyResources(this.cmbSecurity, "cmbSecurity");
|
resources.ApplyResources(this.cmbSecurity, "cmbSecurity");
|
||||||
this.cmbSecurity.Name = "cmbSecurity";
|
this.cmbSecurity.Name = "cmbSecurity";
|
||||||
//
|
//
|
||||||
@@ -434,12 +230,25 @@
|
|||||||
resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard");
|
resources.ApplyResources(this.MenuItemImportClipboard, "MenuItemImportClipboard");
|
||||||
this.MenuItemImportClipboard.Click += new System.EventHandler(this.MenuItemImportClipboard_Click);
|
this.MenuItemImportClipboard.Click += new System.EventHandler(this.MenuItemImportClipboard_Click);
|
||||||
//
|
//
|
||||||
|
// panel3
|
||||||
|
//
|
||||||
|
this.panel3.Controls.Add(this.transportControl);
|
||||||
|
resources.ApplyResources(this.panel3, "panel3");
|
||||||
|
this.panel3.Name = "panel3";
|
||||||
|
//
|
||||||
|
// transportControl
|
||||||
|
//
|
||||||
|
this.transportControl.AllowXtls = false;
|
||||||
|
resources.ApplyResources(this.transportControl, "transportControl");
|
||||||
|
this.transportControl.Name = "transportControl";
|
||||||
|
//
|
||||||
// AddServerForm
|
// AddServerForm
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.CancelButton = this.btnClose;
|
this.CancelButton = this.btnClose;
|
||||||
this.Controls.Add(this.groupBox1);
|
this.Controls.Add(this.groupBox1);
|
||||||
|
this.Controls.Add(this.panel3);
|
||||||
this.Controls.Add(this.panel2);
|
this.Controls.Add(this.panel2);
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.Controls.Add(this.menuServer);
|
this.Controls.Add(this.menuServer);
|
||||||
@@ -448,13 +257,10 @@
|
|||||||
this.Load += new System.EventHandler(this.AddServerForm_Load);
|
this.Load += new System.EventHandler(this.AddServerForm_Load);
|
||||||
this.groupBox1.ResumeLayout(false);
|
this.groupBox1.ResumeLayout(false);
|
||||||
this.groupBox1.PerformLayout();
|
this.groupBox1.PerformLayout();
|
||||||
this.groupBox2.ResumeLayout(false);
|
|
||||||
this.groupBox2.PerformLayout();
|
|
||||||
this.panTlsMore.ResumeLayout(false);
|
|
||||||
this.panTlsMore.PerformLayout();
|
|
||||||
this.panel2.ResumeLayout(false);
|
this.panel2.ResumeLayout(false);
|
||||||
this.menuServer.ResumeLayout(false);
|
this.menuServer.ResumeLayout(false);
|
||||||
this.menuServer.PerformLayout();
|
this.menuServer.PerformLayout();
|
||||||
|
this.panel3.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
@@ -477,40 +283,18 @@
|
|||||||
private System.Windows.Forms.TextBox txtAddress;
|
private System.Windows.Forms.TextBox txtAddress;
|
||||||
private System.Windows.Forms.Label label1;
|
private System.Windows.Forms.Label label1;
|
||||||
private System.Windows.Forms.ComboBox cmbSecurity;
|
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.Label label8;
|
||||||
private System.Windows.Forms.Panel panel1;
|
private System.Windows.Forms.Panel panel1;
|
||||||
private System.Windows.Forms.Panel panel2;
|
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.Label label13;
|
||||||
private System.Windows.Forms.MenuStrip menuServer;
|
private System.Windows.Forms.MenuStrip menuServer;
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItem1;
|
private System.Windows.Forms.ToolStripMenuItem MenuItem1;
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItemImportClient;
|
private System.Windows.Forms.ToolStripMenuItem MenuItemImportClient;
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItemImportServer;
|
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.ToolStripSeparator toolStripSeparator1;
|
||||||
private System.Windows.Forms.ToolStripMenuItem MenuItemImportClipboard;
|
private System.Windows.Forms.ToolStripMenuItem MenuItemImportClipboard;
|
||||||
private System.Windows.Forms.Button btnGUID;
|
private System.Windows.Forms.Button btnGUID;
|
||||||
private System.Windows.Forms.Label label16;
|
private System.Windows.Forms.Panel panel3;
|
||||||
private System.Windows.Forms.Label label14;
|
private ServerTransportControl transportControl;
|
||||||
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.Label label22;
|
|
||||||
private System.Windows.Forms.Panel panTlsMore;
|
|
||||||
private System.Windows.Forms.Label label24;
|
|
||||||
private System.Windows.Forms.Label label23;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,10 +5,8 @@ using v2rayN.Mode;
|
|||||||
|
|
||||||
namespace v2rayN.Forms
|
namespace v2rayN.Forms
|
||||||
{
|
{
|
||||||
public partial class AddServerForm : BaseForm
|
public partial class AddServerForm : BaseServerForm
|
||||||
{
|
{
|
||||||
public int EditIndex { get; set; }
|
|
||||||
VmessItem vmessItem = null;
|
|
||||||
|
|
||||||
public AddServerForm()
|
public AddServerForm()
|
||||||
{
|
{
|
||||||
@@ -17,6 +15,7 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
private void AddServerForm_Load(object sender, EventArgs e)
|
private void AddServerForm_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
cmbSecurity.Items.AddRange(Global.vmessSecuritys.ToArray());
|
||||||
if (EditIndex >= 0)
|
if (EditIndex >= 0)
|
||||||
{
|
{
|
||||||
vmessItem = config.vmess[EditIndex];
|
vmessItem = config.vmess[EditIndex];
|
||||||
@@ -39,14 +38,9 @@ namespace v2rayN.Forms
|
|||||||
txtId.Text = vmessItem.id;
|
txtId.Text = vmessItem.id;
|
||||||
txtAlterId.Text = vmessItem.alterId.ToString();
|
txtAlterId.Text = vmessItem.alterId.ToString();
|
||||||
cmbSecurity.Text = vmessItem.security;
|
cmbSecurity.Text = vmessItem.security;
|
||||||
cmbNetwork.Text = vmessItem.network;
|
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
txtRemarks.Text = vmessItem.remarks;
|
||||||
|
|
||||||
cmbHeaderType.Text = vmessItem.headerType;
|
transportControl.BindingServer(vmessItem);
|
||||||
txtRequestHost.Text = vmessItem.requestHost;
|
|
||||||
txtPath.Text = vmessItem.path;
|
|
||||||
cmbStreamSecurity.Text = vmessItem.streamSecurity;
|
|
||||||
cmbAllowInsecure.Text = vmessItem.allowInsecure;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -60,53 +54,9 @@ namespace v2rayN.Forms
|
|||||||
txtId.Text = "";
|
txtId.Text = "";
|
||||||
txtAlterId.Text = "0";
|
txtAlterId.Text = "0";
|
||||||
cmbSecurity.Text = Global.DefaultSecurity;
|
cmbSecurity.Text = Global.DefaultSecurity;
|
||||||
cmbNetwork.Text = Global.DefaultNetwork;
|
|
||||||
txtRemarks.Text = "";
|
txtRemarks.Text = "";
|
||||||
|
|
||||||
cmbHeaderType.Text = Global.None;
|
transportControl.ClearServer(vmessItem);
|
||||||
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)
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
@@ -116,15 +66,8 @@ namespace v2rayN.Forms
|
|||||||
string id = txtId.Text;
|
string id = txtId.Text;
|
||||||
string alterId = txtAlterId.Text;
|
string alterId = txtAlterId.Text;
|
||||||
string security = cmbSecurity.Text;
|
string security = cmbSecurity.Text;
|
||||||
string network = cmbNetwork.Text;
|
|
||||||
string remarks = txtRemarks.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))
|
if (Utils.IsNullOrEmpty(address))
|
||||||
{
|
{
|
||||||
UI.Show(UIRes.I18N("FillServerAddress"));
|
UI.Show(UIRes.I18N("FillServerAddress"));
|
||||||
@@ -140,33 +83,23 @@ namespace v2rayN.Forms
|
|||||||
UI.Show(UIRes.I18N("FillUUID"));
|
UI.Show(UIRes.I18N("FillUUID"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Utils.IsNullOrEmpty(alterId) || !Utils.IsNumberic(alterId))
|
|
||||||
{
|
transportControl.EndBindingServer();
|
||||||
UI.Show(UIRes.I18N("FillCorrectAlterId"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
vmessItem.address = address;
|
vmessItem.address = address;
|
||||||
vmessItem.port = Utils.ToInt(port);
|
vmessItem.port = Utils.ToInt(port);
|
||||||
vmessItem.id = id;
|
vmessItem.id = id;
|
||||||
vmessItem.alterId = Utils.ToInt(alterId);
|
vmessItem.alterId = Utils.ToInt(alterId);
|
||||||
vmessItem.security = security;
|
vmessItem.security = security;
|
||||||
vmessItem.network = network;
|
|
||||||
vmessItem.remarks = remarks;
|
vmessItem.remarks = remarks;
|
||||||
|
|
||||||
vmessItem.headerType = headerType;
|
|
||||||
vmessItem.requestHost = requestHost.Replace(" ", "");
|
|
||||||
vmessItem.path = path.Replace(" ", "");
|
|
||||||
vmessItem.streamSecurity = streamSecurity;
|
|
||||||
vmessItem.allowInsecure = allowInsecure;
|
|
||||||
|
|
||||||
if (ConfigHandler.AddServer(ref config, vmessItem, EditIndex) == 0)
|
if (ConfigHandler.AddServer(ref config, vmessItem, EditIndex) == 0)
|
||||||
{
|
{
|
||||||
this.DialogResult = DialogResult.OK;
|
this.DialogResult = DialogResult.OK;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UI.Show(UIRes.I18N("OperationFailed"));
|
UI.ShowWarning(UIRes.I18N("OperationFailed"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,7 +113,6 @@ namespace v2rayN.Forms
|
|||||||
this.DialogResult = DialogResult.Cancel;
|
this.DialogResult = DialogResult.Cancel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#region 导入客户端/服务端配置
|
#region 导入客户端/服务端配置
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -207,9 +139,11 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
ClearServer();
|
ClearServer();
|
||||||
|
|
||||||
OpenFileDialog fileDialog = new OpenFileDialog();
|
OpenFileDialog fileDialog = new OpenFileDialog
|
||||||
fileDialog.Multiselect = false;
|
{
|
||||||
fileDialog.Filter = "Config|*.json|All|*.*";
|
Multiselect = false,
|
||||||
|
Filter = "Config|*.json|All|*.*"
|
||||||
|
};
|
||||||
if (fileDialog.ShowDialog() != DialogResult.OK)
|
if (fileDialog.ShowDialog() != DialogResult.OK)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@@ -220,31 +154,29 @@ namespace v2rayN.Forms
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
string msg;
|
string msg;
|
||||||
VmessItem vmessItem;
|
VmessItem vmessItemTemp;
|
||||||
if (type.Equals(1))
|
if (type.Equals(1))
|
||||||
{
|
{
|
||||||
vmessItem = V2rayConfigHandler.ImportFromClientConfig(fileName, out msg);
|
vmessItemTemp = V2rayConfigHandler.ImportFromClientConfig(fileName, out msg);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vmessItem = V2rayConfigHandler.ImportFromServerConfig(fileName, out msg);
|
vmessItemTemp = V2rayConfigHandler.ImportFromServerConfig(fileName, out msg);
|
||||||
}
|
}
|
||||||
if (vmessItem == null)
|
if (vmessItemTemp == null)
|
||||||
{
|
{
|
||||||
UI.Show(msg);
|
UI.ShowWarning(msg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
vmessItem = vmessItemTemp;
|
||||||
|
|
||||||
txtAddress.Text = vmessItem.address;
|
txtAddress.Text = vmessItem.address;
|
||||||
txtPort.Text = vmessItem.port.ToString();
|
txtPort.Text = vmessItem.port.ToString();
|
||||||
txtId.Text = vmessItem.id;
|
txtId.Text = vmessItem.id;
|
||||||
txtAlterId.Text = vmessItem.alterId.ToString();
|
txtAlterId.Text = vmessItem.alterId.ToString();
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
txtRemarks.Text = vmessItem.remarks;
|
||||||
cmbNetwork.Text = vmessItem.network;
|
|
||||||
cmbHeaderType.Text = vmessItem.headerType;
|
transportControl.BindingServer(vmessItem);
|
||||||
txtRequestHost.Text = vmessItem.requestHost;
|
|
||||||
txtPath.Text = vmessItem.path;
|
|
||||||
cmbStreamSecurity.Text = vmessItem.streamSecurity;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -256,38 +188,23 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
ClearServer();
|
ClearServer();
|
||||||
|
|
||||||
string msg;
|
VmessItem vmessItemTemp = ShareHandler.ImportFromClipboardConfig(Utils.GetClipboardData(), out string msg);
|
||||||
VmessItem vmessItem = V2rayConfigHandler.ImportFromClipboardConfig(Utils.GetClipboardData(), out msg);
|
if (vmessItemTemp == null)
|
||||||
if (vmessItem == null)
|
|
||||||
{
|
{
|
||||||
UI.Show(msg);
|
UI.ShowWarning(msg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
vmessItem = vmessItemTemp;
|
||||||
|
|
||||||
txtAddress.Text = vmessItem.address;
|
txtAddress.Text = vmessItem.address;
|
||||||
txtPort.Text = vmessItem.port.ToString();
|
txtPort.Text = vmessItem.port.ToString();
|
||||||
txtId.Text = vmessItem.id;
|
txtId.Text = vmessItem.id;
|
||||||
txtAlterId.Text = vmessItem.alterId.ToString();
|
txtAlterId.Text = vmessItem.alterId.ToString();
|
||||||
txtRemarks.Text = vmessItem.remarks;
|
txtRemarks.Text = vmessItem.remarks;
|
||||||
cmbNetwork.Text = vmessItem.network;
|
|
||||||
cmbHeaderType.Text = vmessItem.headerType;
|
transportControl.BindingServer(vmessItem);
|
||||||
txtRequestHost.Text = vmessItem.requestHost;
|
|
||||||
txtPath.Text = vmessItem.path;
|
|
||||||
cmbStreamSecurity.Text = vmessItem.streamSecurity;
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private void cmbStreamSecurity_SelectedIndexChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
string security = cmbStreamSecurity.Text;
|
|
||||||
if (Utils.IsNullOrEmpty(security))
|
|
||||||
{
|
|
||||||
panTlsMore.Hide();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
panTlsMore.Show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -171,7 +171,7 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label13.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>285, 203</value>
|
<value>411, 175</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>113, 12</value>
|
<value>113, 12</value>
|
||||||
@@ -194,618 +194,11 @@
|
|||||||
<data name=">>label13.ZOrder" xml:space="preserve">
|
<data name=">>label13.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label24.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="label24.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
|
||||||
<value>NoControl</value>
|
|
||||||
</data>
|
|
||||||
<data name="label24.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>526, 165</value>
|
|
||||||
</data>
|
|
||||||
<data name="label24.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>65, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label24.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>35</value>
|
|
||||||
</data>
|
|
||||||
<data name="label24.Text" xml:space="preserve">
|
|
||||||
<value>3)QUIC key</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label24.Name" xml:space="preserve">
|
|
||||||
<value>label24</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label24.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label24.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label24.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label23.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label23.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
|
||||||
<value>NoControl</value>
|
|
||||||
</data>
|
|
||||||
<data name="label23.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>470, 99</value>
|
|
||||||
</data>
|
|
||||||
<data name="label23.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>89, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label23.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>34</value>
|
|
||||||
</data>
|
|
||||||
<data name="label23.Text" xml:space="preserve">
|
|
||||||
<value>4)QUIC securty</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label23.Name" xml:space="preserve">
|
|
||||||
<value>label23</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label23.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label23.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label23.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="label22.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label22.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>205, 11</value>
|
|
||||||
</data>
|
|
||||||
<data name="label22.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>113, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label22.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>32</value>
|
|
||||||
</data>
|
|
||||||
<data name="label22.Text" xml:space="preserve">
|
|
||||||
<value>Default value true</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label22.Name" xml:space="preserve">
|
|
||||||
<value>label22</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label22.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label22.Parent" xml:space="preserve">
|
|
||||||
<value>panTlsMore</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label22.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label21.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label21.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 11</value>
|
|
||||||
</data>
|
|
||||||
<data name="label21.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>83, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label21.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>31</value>
|
|
||||||
</data>
|
|
||||||
<data name="label21.Text" xml:space="preserve">
|
|
||||||
<value>allowInsecure</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label21.Name" xml:space="preserve">
|
|
||||||
<value>label21</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label21.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label21.Parent" xml:space="preserve">
|
|
||||||
<value>panTlsMore</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label21.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.Items" xml:space="preserve">
|
|
||||||
<value />
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.Items1" xml:space="preserve">
|
|
||||||
<value>true</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.Items2" xml:space="preserve">
|
|
||||||
<value>false</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>107, 7</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>91, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbAllowInsecure.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>30</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbAllowInsecure.Name" xml:space="preserve">
|
|
||||||
<value>cmbAllowInsecure</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbAllowInsecure.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbAllowInsecure.Parent" xml:space="preserve">
|
|
||||||
<value>panTlsMore</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbAllowInsecure.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="panTlsMore.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>284, 189</value>
|
|
||||||
</data>
|
|
||||||
<data name="panTlsMore.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>338, 35</value>
|
|
||||||
</data>
|
|
||||||
<data name="panTlsMore.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>33</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panTlsMore.Name" xml:space="preserve">
|
|
||||||
<value>panTlsMore</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panTlsMore.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panTlsMore.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>panTlsMore.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="label20.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label20.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>469, 83</value>
|
|
||||||
</data>
|
|
||||||
<data name="label20.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>203, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label20.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>29</value>
|
|
||||||
</data>
|
|
||||||
<data name="label20.Text" xml:space="preserve">
|
|
||||||
<value>3)h2 host Separated by commas (,)</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label20.Name" xml:space="preserve">
|
|
||||||
<value>label20</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label20.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label20.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label20.ZOrder" xml:space="preserve">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtPath.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>124, 125</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtPath.Multiline" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtPath.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>396, 54</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtPath.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>28</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtPath.Name" xml:space="preserve">
|
|
||||||
<value>txtPath</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtPath.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtPath.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtPath.ZOrder" xml:space="preserve">
|
|
||||||
<value>4</value>
|
|
||||||
</data>
|
|
||||||
<data name="label19.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label19.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>9, 125</value>
|
|
||||||
</data>
|
|
||||||
<data name="label19.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>29, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label19.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>27</value>
|
|
||||||
</data>
|
|
||||||
<data name="label19.Text" xml:space="preserve">
|
|
||||||
<value>Path</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label19.Name" xml:space="preserve">
|
|
||||||
<value>label19</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label19.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label19.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label19.ZOrder" xml:space="preserve">
|
|
||||||
<value>5</value>
|
|
||||||
</data>
|
|
||||||
<data name="label18.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label18.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>526, 147</value>
|
|
||||||
</data>
|
|
||||||
<data name="label18.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>59, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label18.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>26</value>
|
|
||||||
</data>
|
|
||||||
<data name="label18.Text" xml:space="preserve">
|
|
||||||
<value>2)h2 path</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label18.Name" xml:space="preserve">
|
|
||||||
<value>label18</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label18.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label18.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label18.ZOrder" xml:space="preserve">
|
|
||||||
<value>6</value>
|
|
||||||
</data>
|
|
||||||
<data name="label17.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label17.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>469, 68</value>
|
|
||||||
</data>
|
|
||||||
<data name="label17.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>59, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label17.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>25</value>
|
|
||||||
</data>
|
|
||||||
<data name="label17.Text" xml:space="preserve">
|
|
||||||
<value>2)ws host</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label17.Name" xml:space="preserve">
|
|
||||||
<value>label17</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label17.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label17.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label17.ZOrder" xml:space="preserve">
|
|
||||||
<value>7</value>
|
|
||||||
</data>
|
|
||||||
<data name="label16.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label16.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>526, 130</value>
|
|
||||||
</data>
|
|
||||||
<data name="label16.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>59, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label16.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>24</value>
|
|
||||||
</data>
|
|
||||||
<data name="label16.Text" xml:space="preserve">
|
|
||||||
<value>1)ws path</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label16.Name" xml:space="preserve">
|
|
||||||
<value>label16</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label16.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label16.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label16.ZOrder" xml:space="preserve">
|
|
||||||
<value>8</value>
|
|
||||||
</data>
|
|
||||||
<data name="label14.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label14.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>469, 53</value>
|
|
||||||
</data>
|
|
||||||
<data name="label14.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>215, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label14.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>23</value>
|
|
||||||
</data>
|
|
||||||
<data name="label14.Text" xml:space="preserve">
|
|
||||||
<value>1)http host Separated by commas (,)</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label14.Name" xml:space="preserve">
|
|
||||||
<value>label14</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label14.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label14.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label14.ZOrder" xml:space="preserve">
|
|
||||||
<value>9</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>9, 201</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>23, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>22</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Text" xml:space="preserve">
|
|
||||||
<value>TLS</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label15.Name" xml:space="preserve">
|
|
||||||
<value>label15</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label15.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label15.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label15.ZOrder" xml:space="preserve">
|
|
||||||
<value>10</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbStreamSecurity.Items" xml:space="preserve">
|
|
||||||
<value />
|
|
||||||
</data>
|
|
||||||
<data name="cmbStreamSecurity.Items1" xml:space="preserve">
|
|
||||||
<value>tls</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbStreamSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>124, 197</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbStreamSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>143, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbStreamSecurity.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>21</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbStreamSecurity.Name" xml:space="preserve">
|
|
||||||
<value>cmbStreamSecurity</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbStreamSecurity.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbStreamSecurity.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbStreamSecurity.ZOrder" xml:space="preserve">
|
|
||||||
<value>11</value>
|
|
||||||
</data>
|
|
||||||
<data name="label12.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label12.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>282, 34</value>
|
|
||||||
</data>
|
|
||||||
<data name="label12.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>299, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label12.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>20</value>
|
|
||||||
</data>
|
|
||||||
<data name="label12.Text" xml:space="preserve">
|
|
||||||
<value>*tcp or kcp or QUIC camouflage type, default none</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label12.Name" xml:space="preserve">
|
|
||||||
<value>label12</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label12.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label12.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label12.ZOrder" xml:space="preserve">
|
|
||||||
<value>12</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>158, 58</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtRequestHost.Multiline" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>300, 53</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtRequestHost.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>16</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRequestHost.Name" xml:space="preserve">
|
|
||||||
<value>txtRequestHost</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRequestHost.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRequestHost.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtRequestHost.ZOrder" xml:space="preserve">
|
|
||||||
<value>13</value>
|
|
||||||
</data>
|
|
||||||
<data name="label11.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label11.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>9, 34</value>
|
|
||||||
</data>
|
|
||||||
<data name="label11.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>95, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label11.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>19</value>
|
|
||||||
</data>
|
|
||||||
<data name="label11.Text" xml:space="preserve">
|
|
||||||
<value>Camouflage type</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label11.Name" xml:space="preserve">
|
|
||||||
<value>label11</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label11.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label11.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label11.ZOrder" xml:space="preserve">
|
|
||||||
<value>14</value>
|
|
||||||
</data>
|
|
||||||
<data name="label10.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label10.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>9, 62</value>
|
|
||||||
</data>
|
|
||||||
<data name="label10.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>143, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label10.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>17</value>
|
|
||||||
</data>
|
|
||||||
<data name="label10.Text" xml:space="preserve">
|
|
||||||
<value>Camouflage domain(host)</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label10.Name" xml:space="preserve">
|
|
||||||
<value>label10</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label10.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label10.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label10.ZOrder" xml:space="preserve">
|
|
||||||
<value>15</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbHeaderType.Items" xml:space="preserve">
|
|
||||||
<value>none</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbHeaderType.Items1" xml:space="preserve">
|
|
||||||
<value>http</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbHeaderType.Items2" xml:space="preserve">
|
|
||||||
<value>srtp</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbHeaderType.Items3" xml:space="preserve">
|
|
||||||
<value>utp</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbHeaderType.Items4" xml:space="preserve">
|
|
||||||
<value>wechat-video</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbHeaderType.Items5" xml:space="preserve">
|
|
||||||
<value>dtls</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbHeaderType.Items6" xml:space="preserve">
|
|
||||||
<value>wireguard</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbHeaderType.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>124, 30</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbHeaderType.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>143, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbHeaderType.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>18</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbHeaderType.Name" xml:space="preserve">
|
|
||||||
<value>cmbHeaderType</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbHeaderType.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbHeaderType.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbHeaderType.ZOrder" xml:space="preserve">
|
|
||||||
<value>16</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Bottom</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 237</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>723, 234</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>21</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
|
||||||
<value>Keep the default value if it is not clear</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox2.Name" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox2.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox2.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="label9.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label9.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>353, 175</value>
|
|
||||||
</data>
|
|
||||||
<data name="label9.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>113, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label9.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>15</value>
|
|
||||||
</data>
|
|
||||||
<data name="label9.Text" xml:space="preserve">
|
|
||||||
<value>*Default value tcp</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label9.Name" xml:space="preserve">
|
|
||||||
<value>label9</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label9.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label9.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label9.ZOrder" xml:space="preserve">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="label8.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label8.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label8.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label8.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>353, 147</value>
|
<value>411, 147</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label8.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label8.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>119, 12</value>
|
<value>119, 12</value>
|
||||||
@@ -826,91 +219,16 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label8.ZOrder" xml:space="preserve">
|
<data name=">>label8.ZOrder" xml:space="preserve">
|
||||||
<value>4</value>
|
<value>2</value>
|
||||||
</data>
|
|
||||||
<data name="cmbNetwork.Items" xml:space="preserve">
|
|
||||||
<value>tcp</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbNetwork.Items1" xml:space="preserve">
|
|
||||||
<value>kcp</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbNetwork.Items2" xml:space="preserve">
|
|
||||||
<value>ws</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbNetwork.Items3" xml:space="preserve">
|
|
||||||
<value>h2</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbNetwork.Items4" xml:space="preserve">
|
|
||||||
<value>quic</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>195, 171</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>143, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbNetwork.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>12</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbNetwork.Name" xml:space="preserve">
|
|
||||||
<value>cmbNetwork</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbNetwork.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbNetwork.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>cmbNetwork.ZOrder" xml:space="preserve">
|
|
||||||
<value>5</value>
|
|
||||||
</data>
|
|
||||||
<data name="label7.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label7.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 175</value>
|
|
||||||
</data>
|
|
||||||
<data name="label7.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>167, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label7.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>13</value>
|
|
||||||
</data>
|
|
||||||
<data name="label7.Text" xml:space="preserve">
|
|
||||||
<value>Transport protocol(network)</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label7.Name" xml:space="preserve">
|
|
||||||
<value>label7</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label7.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label7.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label7.ZOrder" xml:space="preserve">
|
|
||||||
<value>6</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items" xml:space="preserve">
|
|
||||||
<value>aes-128-gcm</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items1" xml:space="preserve">
|
|
||||||
<value>chacha20-poly1305</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items2" xml:space="preserve">
|
|
||||||
<value>auto</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbSecurity.Items3" xml:space="preserve">
|
|
||||||
<value>none</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>195, 143</value>
|
<value>195, 143</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmbSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>143, 20</value>
|
<value>210, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbSecurity.TabIndex" type="System.Int32, mscorlib">
|
<data name="cmbSecurity.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>6</value>
|
<value>4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>cmbSecurity.Name" xml:space="preserve">
|
<data name=">>cmbSecurity.Name" xml:space="preserve">
|
||||||
<value>cmbSecurity</value>
|
<value>cmbSecurity</value>
|
||||||
@@ -922,16 +240,16 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>cmbSecurity.ZOrder" xml:space="preserve">
|
<data name=">>cmbSecurity.ZOrder" xml:space="preserve">
|
||||||
<value>7</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 199</value>
|
<value>127, 171</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>143, 21</value>
|
<value>278, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>11</value>
|
<value>5</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtRemarks.Name" xml:space="preserve">
|
<data name=">>txtRemarks.Name" xml:space="preserve">
|
||||||
<value>txtRemarks</value>
|
<value>txtRemarks</value>
|
||||||
@@ -943,13 +261,13 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
||||||
<value>8</value>
|
<value>4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label6.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label6.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 203</value>
|
<value>12, 175</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>95, 12</value>
|
<value>95, 12</value>
|
||||||
@@ -970,7 +288,7 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label6.ZOrder" xml:space="preserve">
|
<data name=">>label6.ZOrder" xml:space="preserve">
|
||||||
<value>9</value>
|
<value>5</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label5.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label5.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
@@ -997,7 +315,7 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label5.ZOrder" xml:space="preserve">
|
<data name=">>label5.ZOrder" xml:space="preserve">
|
||||||
<value>10</value>
|
<value>6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtAlterId.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtAlterId.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 114</value>
|
<value>127, 114</value>
|
||||||
@@ -1006,7 +324,7 @@
|
|||||||
<value>143, 21</value>
|
<value>143, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtAlterId.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtAlterId.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>7</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtAlterId.Name" xml:space="preserve">
|
<data name=">>txtAlterId.Name" xml:space="preserve">
|
||||||
<value>txtAlterId</value>
|
<value>txtAlterId</value>
|
||||||
@@ -1018,7 +336,7 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtAlterId.ZOrder" xml:space="preserve">
|
<data name=">>txtAlterId.ZOrder" xml:space="preserve">
|
||||||
<value>11</value>
|
<value>7</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
@@ -1045,7 +363,7 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label4.ZOrder" xml:space="preserve">
|
<data name=">>label4.ZOrder" xml:space="preserve">
|
||||||
<value>12</value>
|
<value>8</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtId.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 85</value>
|
<value>127, 85</value>
|
||||||
@@ -1054,7 +372,7 @@
|
|||||||
<value>278, 21</value>
|
<value>278, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtId.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>5</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtId.Name" xml:space="preserve">
|
<data name=">>txtId.Name" xml:space="preserve">
|
||||||
<value>txtId</value>
|
<value>txtId</value>
|
||||||
@@ -1066,7 +384,7 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtId.ZOrder" xml:space="preserve">
|
<data name=">>txtId.ZOrder" xml:space="preserve">
|
||||||
<value>13</value>
|
<value>9</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
@@ -1093,7 +411,7 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
<value>14</value>
|
<value>10</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 56</value>
|
<value>127, 56</value>
|
||||||
@@ -1102,7 +420,7 @@
|
|||||||
<value>143, 21</value>
|
<value>143, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>3</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtPort.Name" xml:space="preserve">
|
<data name=">>txtPort.Name" xml:space="preserve">
|
||||||
<value>txtPort</value>
|
<value>txtPort</value>
|
||||||
@@ -1114,7 +432,7 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtPort.ZOrder" xml:space="preserve">
|
<data name=">>txtPort.ZOrder" xml:space="preserve">
|
||||||
<value>15</value>
|
<value>11</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
@@ -1141,7 +459,7 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label2.ZOrder" xml:space="preserve">
|
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||||
<value>16</value>
|
<value>12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtAddress.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtAddress.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 27</value>
|
<value>127, 27</value>
|
||||||
@@ -1150,7 +468,7 @@
|
|||||||
<value>359, 21</value>
|
<value>359, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtAddress.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>1</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtAddress.Name" xml:space="preserve">
|
<data name=">>txtAddress.Name" xml:space="preserve">
|
||||||
<value>txtAddress</value>
|
<value>txtAddress</value>
|
||||||
@@ -1162,7 +480,7 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtAddress.ZOrder" xml:space="preserve">
|
<data name=">>txtAddress.ZOrder" xml:space="preserve">
|
||||||
<value>17</value>
|
<value>13</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
@@ -1189,8 +507,9 @@
|
|||||||
<value>groupBox1</value>
|
<value>groupBox1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
<value>18</value>
|
<value>14</value>
|
||||||
</data>
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Fill</value>
|
<value>Fill</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -1198,7 +517,7 @@
|
|||||||
<value>0, 35</value>
|
<value>0, 35</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>729, 474</value>
|
<value>729, 216</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>3</value>
|
<value>3</value>
|
||||||
@@ -1246,7 +565,7 @@
|
|||||||
<value>Bottom</value>
|
<value>Bottom</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 509</value>
|
<value>0, 481</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>729, 60</value>
|
<value>729, 60</value>
|
||||||
@@ -1264,7 +583,7 @@
|
|||||||
<value>$this</value>
|
<value>$this</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>panel2.ZOrder" xml:space="preserve">
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Top</value>
|
<value>Top</value>
|
||||||
@@ -1288,7 +607,7 @@
|
|||||||
<value>$this</value>
|
<value>$this</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>panel1.ZOrder" xml:space="preserve">
|
<data name=">>panel1.ZOrder" xml:space="preserve">
|
||||||
<value>2</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="menuServer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="menuServer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
@@ -1339,16 +658,67 @@
|
|||||||
<value>$this</value>
|
<value>$this</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>menuServer.ZOrder" xml:space="preserve">
|
<data name=">>menuServer.ZOrder" xml:space="preserve">
|
||||||
<value>3</value>
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>729, 230</value>
|
||||||
|
</data>
|
||||||
|
<data name="transportControl.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.Name" xml:space="preserve">
|
||||||
|
<value>transportControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.ServerTransportControl, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>transportControl.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 251</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>729, 230</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Name" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>25</value>
|
||||||
|
</metadata>
|
||||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
<value>6, 12</value>
|
<value>6, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>729, 569</value>
|
<value>729, 541</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>Edit or add a [VMess] server</value>
|
<value>Edit or add a [VMess] server</value>
|
||||||
@@ -1387,6 +757,6 @@
|
|||||||
<value>AddServerForm</value>
|
<value>AddServerForm</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Type" xml:space="preserve">
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
<value>v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
<value>v2rayN.Forms.BaseServerForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -120,90 +120,93 @@
|
|||||||
<data name="btnClose.Text" xml:space="preserve">
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
<value>取消(&C)</value>
|
<value>取消(&C)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>服务器</value>
|
|
||||||
</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="label13.Text" xml:space="preserve">
|
<data name="label13.Text" xml:space="preserve">
|
||||||
<value>*手填,方便识别管理</value>
|
<value>*手填,方便识别管理</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
|
||||||
<value>不清楚则保持默认值</value>
|
|
||||||
</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="label24.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label24.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>95, 12</value>
|
<value>149, 12</value>
|
||||||
</data>
|
|
||||||
<data name="label24.Text" xml:space="preserve">
|
|
||||||
<value>3)QUIC 加密密钥</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="label23.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label23.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>95, 12</value>
|
<value>95, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label23.Text" xml:space="preserve">
|
<data name="label21.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>4)QUIC 加密方式</value>
|
<value>167, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label22.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>53, 12</value>
|
<value>180, 7</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label22.Text" xml:space="preserve">
|
<data name="label9.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>默认true</value>
|
<value>350, 36</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="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, 58</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>
|
||||||
<data name="label9.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label9.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>143, 12</value>
|
<value>143, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label9.Text" xml:space="preserve">
|
<data name="label20.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>*默认tcp,选错会无法连接</value>
|
<value>149, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 168</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 32</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>211, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="label7.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 36</value>
|
||||||
|
</data>
|
||||||
|
<data name="label7.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>107, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label19.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 168</value>
|
||||||
|
</data>
|
||||||
|
<data name="label19.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label14.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>161, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label15.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 237</value>
|
||||||
|
</data>
|
||||||
|
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>107, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbStreamSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 237</value>
|
||||||
|
</data>
|
||||||
|
<data name="label12.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>282, 71</value>
|
||||||
|
</data>
|
||||||
|
<data name="label12.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>197, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 102</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>334, 51</value>
|
||||||
|
</data>
|
||||||
|
<data name="label11.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 71</value>
|
||||||
|
</data>
|
||||||
|
<data name="label11.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>89, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label10.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 102</value>
|
||||||
|
</data>
|
||||||
|
<data name="label10.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>89, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 67</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>
|
||||||
@@ -211,18 +214,6 @@
|
|||||||
<data name="label8.Text" xml:space="preserve">
|
<data name="label8.Text" xml:space="preserve">
|
||||||
<value>*随便选,建议(auto)</value>
|
<value>*随便选,建议(auto)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>127, 171</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="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="cmbSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 143</value>
|
<value>127, 143</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -265,15 +256,12 @@
|
|||||||
<data name="label1.Text" xml:space="preserve">
|
<data name="label1.Text" xml:space="preserve">
|
||||||
<value>地址(address)</value>
|
<value>地址(address)</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>服务器</value>
|
||||||
|
</data>
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
<value>确定(&O)</value>
|
<value>确定(&O)</value>
|
||||||
</data>
|
</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">
|
<data name="MenuItemImportClient.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>171, 22</value>
|
<value>171, 22</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -295,6 +283,12 @@
|
|||||||
<data name="MenuItemImportClipboard.Text" xml:space="preserve">
|
<data name="MenuItemImportClipboard.Text" xml:space="preserve">
|
||||||
<value>从剪贴板导入URL</value>
|
<value>从剪贴板导入URL</value>
|
||||||
</data>
|
</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">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>编辑或添加[VMess]服务器</value>
|
<value>编辑或添加[VMess]服务器</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
50
v2rayN/v2rayN/Forms/BaseServerForm.Designer.cs
generated
Normal file
50
v2rayN/v2rayN/Forms/BaseServerForm.Designer.cs
generated
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
partial class BaseServerForm
|
||||||
|
{
|
||||||
|
/// <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(BaseServerForm));
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// BaseServerForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(292, 273);
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "BaseServerForm";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
|
this.Text = "BaseServerForm";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
18
v2rayN/v2rayN/Forms/BaseServerForm.cs
Normal file
18
v2rayN/v2rayN/Forms/BaseServerForm.cs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
using System;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
public partial class BaseServerForm : BaseForm
|
||||||
|
{
|
||||||
|
public int EditIndex { get; set; }
|
||||||
|
protected VmessItem vmessItem = null;
|
||||||
|
|
||||||
|
public BaseServerForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
121
v2rayN/v2rayN/Forms/BaseServerForm.resx
Normal file
121
v2rayN/v2rayN/Forms/BaseServerForm.resx
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
</root>
|
||||||
603
v2rayN/v2rayN/Forms/MainForm.Designer.cs
generated
603
v2rayN/v2rayN/Forms/MainForm.Designer.cs
generated
@@ -30,12 +30,14 @@
|
|||||||
{
|
{
|
||||||
this.components = new System.ComponentModel.Container();
|
this.components = new System.ComponentModel.Container();
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
this.scMain = new System.Windows.Forms.SplitContainer();
|
||||||
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.menuAddTrojanServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuAddCustomServer = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuAddCustomServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuAddServers = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuAddServers = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuScanScreen = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuScanScreen = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@@ -55,94 +57,115 @@
|
|||||||
this.menuTcpingServer = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuTcpingServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuRealPingServer = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuRealPingServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuSpeedServer = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuSpeedServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.tsbTestMe = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuClearServerStatistics = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.menuExport2ClientConfig = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuExport2ClientConfig = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuExport2ServerConfig = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuExport2ServerConfig = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuExport2ShareUrl = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuExport2ShareUrl = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuExport2SubContent = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuExport2SubContent = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.tsbServer = new System.Windows.Forms.ToolStripDropDownButton();
|
|
||||||
this.qrCodeControl = new v2rayN.Forms.QRCodeControl();
|
this.qrCodeControl = new v2rayN.Forms.QRCodeControl();
|
||||||
|
this.tsbServer = new System.Windows.Forms.ToolStripDropDownButton();
|
||||||
|
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.gbMsgTitle = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtMsgBox = new System.Windows.Forms.TextBox();
|
||||||
|
this.cmsMsgBox = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
|
this.menuMsgBoxSelectAll = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuMsgBoxCopy = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuMsgBoxCopyAll = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuMsgBoxClear = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuMsgBoxAddRoutingRule = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuMsgBoxFilter = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.ssMain = new System.Windows.Forms.StatusStrip();
|
||||||
|
this.toolSslInboundInfo = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.toolSslBlank1 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.toolSslRoutingRule = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.toolSslBlank2 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.toolSslServerSpeed = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
|
this.toolSslBlank4 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
this.notifyMain = new System.Windows.Forms.NotifyIcon(this.components);
|
this.notifyMain = new System.Windows.Forms.NotifyIcon(this.components);
|
||||||
this.cmsMain = new System.Windows.Forms.ContextMenuStrip(this.components);
|
this.cmsMain = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
this.menuSysAgentMode = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuSysAgentMode = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuNotEnabledHttp = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuKeepClear = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuGlobal = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuGlobal = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuGlobalPAC = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuKeepNothing = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuKeep = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuRoutings = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuKeepPAC = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.menuServers = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuServers = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuServers2 = new System.Windows.Forms.ToolStripComboBox();
|
||||||
|
this.toolStripSeparator13 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.menuAddServers2 = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuAddServers2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuScanScreen2 = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuScanScreen2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.menuCopyPACUrl = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuUpdateSubscriptions = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuUpdateSubViaProxy = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.menuExit = new System.Windows.Forms.ToolStripMenuItem();
|
this.menuExit = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.bgwScan = new System.ComponentModel.BackgroundWorker();
|
this.bgwScan = new System.ComponentModel.BackgroundWorker();
|
||||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
|
||||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
|
||||||
this.txtMsgBox = new System.Windows.Forms.TextBox();
|
|
||||||
this.ssMain = new System.Windows.Forms.StatusStrip();
|
|
||||||
this.toolSslSocksPortLab = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslSocksPort = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslBlank1 = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslHttpPortLab = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslHttpPort = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslBlank2 = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslPacPortLab = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslPacPort = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslBlank3 = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslServerSpeed = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.toolSslBlank4 = new System.Windows.Forms.ToolStripStatusLabel();
|
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
this.tsMain = new System.Windows.Forms.ToolStrip();
|
this.tsMain = new System.Windows.Forms.ToolStrip();
|
||||||
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.tsbSub = new System.Windows.Forms.ToolStripDropDownButton();
|
this.tsbSub = new System.Windows.Forms.ToolStripDropDownButton();
|
||||||
this.tsbSubSetting = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbSubSetting = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.tsbSubUpdate = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbSubUpdate = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.tsbSubUpdateViaProxy = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.tsbQRCodeSwitch = new System.Windows.Forms.ToolStripButton();
|
||||||
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.tsbOptionSetting = new System.Windows.Forms.ToolStripButton();
|
this.tsbSetting = new System.Windows.Forms.ToolStripDropDownButton();
|
||||||
|
this.tsbOptionSetting = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.tsbRoutingSetting = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator14 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.tsbBackupGuiNConfig = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.tsbReload = new System.Windows.Forms.ToolStripButton();
|
this.tsbReload = new System.Windows.Forms.ToolStripButton();
|
||||||
this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.tsbCheckUpdate = new System.Windows.Forms.ToolStripDropDownButton();
|
this.tsbCheckUpdate = new System.Windows.Forms.ToolStripDropDownButton();
|
||||||
this.tsbCheckUpdateN = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbCheckUpdateN = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.tsbCheckUpdateCore = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbCheckUpdateCore = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.tsbCheckUpdatePACList = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbCheckUpdateXrayCore = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.tsbCheckClearPACList = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripSeparator15 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.tsbCheckUpdateGeoSite = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.tsbCheckUpdateGeoIP = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.tsbHelp = new System.Windows.Forms.ToolStripDropDownButton();
|
this.tsbHelp = new System.Windows.Forms.ToolStripDropDownButton();
|
||||||
this.tsbAbout = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbAbout = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.tsbV2rayWebsite = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.tsbLanguageDef = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbLanguageDef = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.tsbLanguageZhHans = new System.Windows.Forms.ToolStripMenuItem();
|
this.tsbLanguageZhHans = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.tsbPromotion = new System.Windows.Forms.ToolStripButton();
|
this.tsbPromotion = new System.Windows.Forms.ToolStripButton();
|
||||||
this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.tsbClose = new System.Windows.Forms.ToolStripButton();
|
this.tsbClose = new System.Windows.Forms.ToolStripButton();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit();
|
||||||
|
this.scMain.Panel1.SuspendLayout();
|
||||||
|
this.scMain.Panel2.SuspendLayout();
|
||||||
|
this.scMain.SuspendLayout();
|
||||||
|
this.cmsLv.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||||
this.splitContainer1.Panel1.SuspendLayout();
|
this.splitContainer1.Panel1.SuspendLayout();
|
||||||
this.splitContainer1.Panel2.SuspendLayout();
|
this.splitContainer1.Panel2.SuspendLayout();
|
||||||
this.splitContainer1.SuspendLayout();
|
this.splitContainer1.SuspendLayout();
|
||||||
this.cmsLv.SuspendLayout();
|
|
||||||
this.cmsMain.SuspendLayout();
|
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
this.groupBox2.SuspendLayout();
|
this.gbMsgTitle.SuspendLayout();
|
||||||
|
this.cmsMsgBox.SuspendLayout();
|
||||||
this.ssMain.SuspendLayout();
|
this.ssMain.SuspendLayout();
|
||||||
|
this.cmsMain.SuspendLayout();
|
||||||
this.tsMain.SuspendLayout();
|
this.tsMain.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// splitContainer1
|
// scMain
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.splitContainer1, "splitContainer1");
|
resources.ApplyResources(this.scMain, "scMain");
|
||||||
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
|
this.scMain.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
|
||||||
this.splitContainer1.Name = "splitContainer1";
|
this.scMain.Name = "scMain";
|
||||||
//
|
//
|
||||||
// splitContainer1.Panel1
|
// scMain.Panel1
|
||||||
//
|
//
|
||||||
this.splitContainer1.Panel1.Controls.Add(this.lvServers);
|
this.scMain.Panel1.Controls.Add(this.lvServers);
|
||||||
//
|
//
|
||||||
// splitContainer1.Panel2
|
// scMain.Panel2
|
||||||
//
|
//
|
||||||
this.splitContainer1.Panel2.Controls.Add(this.qrCodeControl);
|
this.scMain.Panel2.Controls.Add(this.qrCodeControl);
|
||||||
this.splitContainer1.SplitterMoved += new System.Windows.Forms.SplitterEventHandler(this.splitContainer1_SplitterMoved);
|
this.scMain.TabStop = false;
|
||||||
//
|
//
|
||||||
// lvServers
|
// lvServers
|
||||||
//
|
//
|
||||||
@@ -158,6 +181,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);
|
||||||
@@ -168,8 +192,10 @@
|
|||||||
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.menuAddTrojanServer,
|
||||||
this.menuAddCustomServer,
|
this.menuAddCustomServer,
|
||||||
this.menuAddServers,
|
this.menuAddServers,
|
||||||
this.menuScanScreen,
|
this.menuScanScreen,
|
||||||
@@ -189,13 +215,14 @@
|
|||||||
this.menuTcpingServer,
|
this.menuTcpingServer,
|
||||||
this.menuRealPingServer,
|
this.menuRealPingServer,
|
||||||
this.menuSpeedServer,
|
this.menuSpeedServer,
|
||||||
|
this.tsbTestMe,
|
||||||
|
this.menuClearServerStatistics,
|
||||||
this.toolStripSeparator6,
|
this.toolStripSeparator6,
|
||||||
this.menuExport2ClientConfig,
|
this.menuExport2ClientConfig,
|
||||||
this.menuExport2ServerConfig,
|
this.menuExport2ServerConfig,
|
||||||
this.menuExport2ShareUrl,
|
this.menuExport2ShareUrl,
|
||||||
this.menuExport2SubContent});
|
this.menuExport2SubContent});
|
||||||
this.cmsLv.Name = "cmsLv";
|
this.cmsLv.Name = "cmsLv";
|
||||||
this.cmsLv.OwnerItem = this.tsbServer;
|
|
||||||
resources.ApplyResources(this.cmsLv, "cmsLv");
|
resources.ApplyResources(this.cmsLv, "cmsLv");
|
||||||
//
|
//
|
||||||
// menuAddVmessServer
|
// menuAddVmessServer
|
||||||
@@ -204,6 +231,12 @@
|
|||||||
resources.ApplyResources(this.menuAddVmessServer, "menuAddVmessServer");
|
resources.ApplyResources(this.menuAddVmessServer, "menuAddVmessServer");
|
||||||
this.menuAddVmessServer.Click += new System.EventHandler(this.menuAddVmessServer_Click);
|
this.menuAddVmessServer.Click += new System.EventHandler(this.menuAddVmessServer_Click);
|
||||||
//
|
//
|
||||||
|
// menuAddVlessServer
|
||||||
|
//
|
||||||
|
this.menuAddVlessServer.Name = "menuAddVlessServer";
|
||||||
|
resources.ApplyResources(this.menuAddVlessServer, "menuAddVlessServer");
|
||||||
|
this.menuAddVlessServer.Click += new System.EventHandler(this.menuAddVlessServer_Click);
|
||||||
|
//
|
||||||
// menuAddShadowsocksServer
|
// menuAddShadowsocksServer
|
||||||
//
|
//
|
||||||
this.menuAddShadowsocksServer.Name = "menuAddShadowsocksServer";
|
this.menuAddShadowsocksServer.Name = "menuAddShadowsocksServer";
|
||||||
@@ -216,6 +249,12 @@
|
|||||||
resources.ApplyResources(this.menuAddSocksServer, "menuAddSocksServer");
|
resources.ApplyResources(this.menuAddSocksServer, "menuAddSocksServer");
|
||||||
this.menuAddSocksServer.Click += new System.EventHandler(this.menuAddSocksServer_Click);
|
this.menuAddSocksServer.Click += new System.EventHandler(this.menuAddSocksServer_Click);
|
||||||
//
|
//
|
||||||
|
// menuAddTrojanServer
|
||||||
|
//
|
||||||
|
this.menuAddTrojanServer.Name = "menuAddTrojanServer";
|
||||||
|
resources.ApplyResources(this.menuAddTrojanServer, "menuAddTrojanServer");
|
||||||
|
this.menuAddTrojanServer.Click += new System.EventHandler(this.menuAddTrojanServer_Click);
|
||||||
|
//
|
||||||
// menuAddCustomServer
|
// menuAddCustomServer
|
||||||
//
|
//
|
||||||
this.menuAddCustomServer.Name = "menuAddCustomServer";
|
this.menuAddCustomServer.Name = "menuAddCustomServer";
|
||||||
@@ -327,6 +366,18 @@
|
|||||||
resources.ApplyResources(this.menuSpeedServer, "menuSpeedServer");
|
resources.ApplyResources(this.menuSpeedServer, "menuSpeedServer");
|
||||||
this.menuSpeedServer.Click += new System.EventHandler(this.menuSpeedServer_Click);
|
this.menuSpeedServer.Click += new System.EventHandler(this.menuSpeedServer_Click);
|
||||||
//
|
//
|
||||||
|
// tsbTestMe
|
||||||
|
//
|
||||||
|
this.tsbTestMe.Name = "tsbTestMe";
|
||||||
|
resources.ApplyResources(this.tsbTestMe, "tsbTestMe");
|
||||||
|
this.tsbTestMe.Click += new System.EventHandler(this.tsbTestMe_Click);
|
||||||
|
//
|
||||||
|
// menuClearServerStatistics
|
||||||
|
//
|
||||||
|
this.menuClearServerStatistics.Name = "menuClearServerStatistics";
|
||||||
|
resources.ApplyResources(this.menuClearServerStatistics, "menuClearServerStatistics");
|
||||||
|
this.menuClearServerStatistics.Click += new System.EventHandler(this.menuClearStatistic_Click);
|
||||||
|
//
|
||||||
// toolStripSeparator6
|
// toolStripSeparator6
|
||||||
//
|
//
|
||||||
this.toolStripSeparator6.Name = "toolStripSeparator6";
|
this.toolStripSeparator6.Name = "toolStripSeparator6";
|
||||||
@@ -356,6 +407,11 @@
|
|||||||
resources.ApplyResources(this.menuExport2SubContent, "menuExport2SubContent");
|
resources.ApplyResources(this.menuExport2SubContent, "menuExport2SubContent");
|
||||||
this.menuExport2SubContent.Click += new System.EventHandler(this.menuExport2SubContent_Click);
|
this.menuExport2SubContent.Click += new System.EventHandler(this.menuExport2SubContent_Click);
|
||||||
//
|
//
|
||||||
|
// qrCodeControl
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.qrCodeControl, "qrCodeControl");
|
||||||
|
this.qrCodeControl.Name = "qrCodeControl";
|
||||||
|
//
|
||||||
// tsbServer
|
// tsbServer
|
||||||
//
|
//
|
||||||
this.tsbServer.DropDown = this.cmsLv;
|
this.tsbServer.DropDown = this.cmsLv;
|
||||||
@@ -363,10 +419,139 @@
|
|||||||
resources.ApplyResources(this.tsbServer, "tsbServer");
|
resources.ApplyResources(this.tsbServer, "tsbServer");
|
||||||
this.tsbServer.Name = "tsbServer";
|
this.tsbServer.Name = "tsbServer";
|
||||||
//
|
//
|
||||||
// qrCodeControl
|
// splitContainer1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.qrCodeControl, "qrCodeControl");
|
resources.ApplyResources(this.splitContainer1, "splitContainer1");
|
||||||
this.qrCodeControl.Name = "qrCodeControl";
|
this.splitContainer1.Name = "splitContainer1";
|
||||||
|
//
|
||||||
|
// splitContainer1.Panel1
|
||||||
|
//
|
||||||
|
this.splitContainer1.Panel1.Controls.Add(this.groupBox1);
|
||||||
|
//
|
||||||
|
// splitContainer1.Panel2
|
||||||
|
//
|
||||||
|
this.splitContainer1.Panel2.Controls.Add(this.gbMsgTitle);
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
this.groupBox1.Controls.Add(this.scMain);
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// gbMsgTitle
|
||||||
|
//
|
||||||
|
this.gbMsgTitle.Controls.Add(this.txtMsgBox);
|
||||||
|
this.gbMsgTitle.Controls.Add(this.ssMain);
|
||||||
|
resources.ApplyResources(this.gbMsgTitle, "gbMsgTitle");
|
||||||
|
this.gbMsgTitle.Name = "gbMsgTitle";
|
||||||
|
this.gbMsgTitle.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtMsgBox
|
||||||
|
//
|
||||||
|
this.txtMsgBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(41)))), ((int)(((byte)(49)))), ((int)(((byte)(52)))));
|
||||||
|
this.txtMsgBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
|
this.txtMsgBox.ContextMenuStrip = this.cmsMsgBox;
|
||||||
|
resources.ApplyResources(this.txtMsgBox, "txtMsgBox");
|
||||||
|
this.txtMsgBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(226)))), ((int)(((byte)(228)))));
|
||||||
|
this.txtMsgBox.Name = "txtMsgBox";
|
||||||
|
this.txtMsgBox.ReadOnly = true;
|
||||||
|
this.txtMsgBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtMsgBox_KeyDown);
|
||||||
|
//
|
||||||
|
// cmsMsgBox
|
||||||
|
//
|
||||||
|
this.cmsMsgBox.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.menuMsgBoxSelectAll,
|
||||||
|
this.menuMsgBoxCopy,
|
||||||
|
this.menuMsgBoxCopyAll,
|
||||||
|
this.menuMsgBoxClear,
|
||||||
|
this.menuMsgBoxAddRoutingRule,
|
||||||
|
this.menuMsgBoxFilter});
|
||||||
|
this.cmsMsgBox.Name = "cmsMsgBox";
|
||||||
|
resources.ApplyResources(this.cmsMsgBox, "cmsMsgBox");
|
||||||
|
//
|
||||||
|
// menuMsgBoxSelectAll
|
||||||
|
//
|
||||||
|
this.menuMsgBoxSelectAll.Name = "menuMsgBoxSelectAll";
|
||||||
|
resources.ApplyResources(this.menuMsgBoxSelectAll, "menuMsgBoxSelectAll");
|
||||||
|
this.menuMsgBoxSelectAll.Click += new System.EventHandler(this.menuMsgBoxSelectAll_Click);
|
||||||
|
//
|
||||||
|
// menuMsgBoxCopy
|
||||||
|
//
|
||||||
|
this.menuMsgBoxCopy.Name = "menuMsgBoxCopy";
|
||||||
|
resources.ApplyResources(this.menuMsgBoxCopy, "menuMsgBoxCopy");
|
||||||
|
this.menuMsgBoxCopy.Click += new System.EventHandler(this.menuMsgBoxCopy_Click);
|
||||||
|
//
|
||||||
|
// menuMsgBoxCopyAll
|
||||||
|
//
|
||||||
|
this.menuMsgBoxCopyAll.Name = "menuMsgBoxCopyAll";
|
||||||
|
resources.ApplyResources(this.menuMsgBoxCopyAll, "menuMsgBoxCopyAll");
|
||||||
|
this.menuMsgBoxCopyAll.Click += new System.EventHandler(this.menuMsgBoxCopyAll_Click);
|
||||||
|
//
|
||||||
|
// menuMsgBoxClear
|
||||||
|
//
|
||||||
|
this.menuMsgBoxClear.Name = "menuMsgBoxClear";
|
||||||
|
resources.ApplyResources(this.menuMsgBoxClear, "menuMsgBoxClear");
|
||||||
|
this.menuMsgBoxClear.Click += new System.EventHandler(this.menuMsgBoxClear_Click);
|
||||||
|
//
|
||||||
|
// menuMsgBoxAddRoutingRule
|
||||||
|
//
|
||||||
|
this.menuMsgBoxAddRoutingRule.Name = "menuMsgBoxAddRoutingRule";
|
||||||
|
resources.ApplyResources(this.menuMsgBoxAddRoutingRule, "menuMsgBoxAddRoutingRule");
|
||||||
|
this.menuMsgBoxAddRoutingRule.Click += new System.EventHandler(this.menuMsgBoxAddRoutingRule_Click);
|
||||||
|
//
|
||||||
|
// menuMsgBoxFilter
|
||||||
|
//
|
||||||
|
this.menuMsgBoxFilter.Name = "menuMsgBoxFilter";
|
||||||
|
resources.ApplyResources(this.menuMsgBoxFilter, "menuMsgBoxFilter");
|
||||||
|
this.menuMsgBoxFilter.Click += new System.EventHandler(this.menuMsgBoxFilter_Click);
|
||||||
|
//
|
||||||
|
// ssMain
|
||||||
|
//
|
||||||
|
this.ssMain.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
|
this.ssMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.toolSslInboundInfo,
|
||||||
|
this.toolSslBlank1,
|
||||||
|
this.toolSslRoutingRule,
|
||||||
|
this.toolSslBlank2,
|
||||||
|
this.toolSslServerSpeed,
|
||||||
|
this.toolSslBlank4});
|
||||||
|
resources.ApplyResources(this.ssMain, "ssMain");
|
||||||
|
this.ssMain.Name = "ssMain";
|
||||||
|
this.ssMain.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.ssMain_ItemClicked);
|
||||||
|
//
|
||||||
|
// toolSslInboundInfo
|
||||||
|
//
|
||||||
|
this.toolSslInboundInfo.Name = "toolSslInboundInfo";
|
||||||
|
resources.ApplyResources(this.toolSslInboundInfo, "toolSslInboundInfo");
|
||||||
|
//
|
||||||
|
// toolSslBlank1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.toolSslBlank1, "toolSslBlank1");
|
||||||
|
this.toolSslBlank1.Name = "toolSslBlank1";
|
||||||
|
this.toolSslBlank1.Spring = true;
|
||||||
|
//
|
||||||
|
// toolSslRoutingRule
|
||||||
|
//
|
||||||
|
this.toolSslRoutingRule.Name = "toolSslRoutingRule";
|
||||||
|
resources.ApplyResources(this.toolSslRoutingRule, "toolSslRoutingRule");
|
||||||
|
//
|
||||||
|
// toolSslBlank2
|
||||||
|
//
|
||||||
|
this.toolSslBlank2.Name = "toolSslBlank2";
|
||||||
|
resources.ApplyResources(this.toolSslBlank2, "toolSslBlank2");
|
||||||
|
this.toolSslBlank2.Spring = true;
|
||||||
|
//
|
||||||
|
// toolSslServerSpeed
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.toolSslServerSpeed, "toolSslServerSpeed");
|
||||||
|
this.toolSslServerSpeed.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
||||||
|
this.toolSslServerSpeed.Name = "toolSslServerSpeed";
|
||||||
|
//
|
||||||
|
// toolSslBlank4
|
||||||
|
//
|
||||||
|
this.toolSslBlank4.Name = "toolSslBlank4";
|
||||||
|
resources.ApplyResources(this.toolSslBlank4, "toolSslBlank4");
|
||||||
//
|
//
|
||||||
// notifyMain
|
// notifyMain
|
||||||
//
|
//
|
||||||
@@ -380,10 +565,14 @@
|
|||||||
resources.ApplyResources(this.cmsMain, "cmsMain");
|
resources.ApplyResources(this.cmsMain, "cmsMain");
|
||||||
this.cmsMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.cmsMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.menuSysAgentMode,
|
this.menuSysAgentMode,
|
||||||
|
this.menuRoutings,
|
||||||
this.menuServers,
|
this.menuServers,
|
||||||
|
this.menuServers2,
|
||||||
|
this.toolStripSeparator13,
|
||||||
this.menuAddServers2,
|
this.menuAddServers2,
|
||||||
this.menuScanScreen2,
|
this.menuScanScreen2,
|
||||||
this.menuCopyPACUrl,
|
this.menuUpdateSubscriptions,
|
||||||
|
this.menuUpdateSubViaProxy,
|
||||||
this.toolStripSeparator2,
|
this.toolStripSeparator2,
|
||||||
this.menuExit});
|
this.menuExit});
|
||||||
this.cmsMain.Name = "contextMenuStrip1";
|
this.cmsMain.Name = "contextMenuStrip1";
|
||||||
@@ -394,19 +583,17 @@
|
|||||||
// menuSysAgentMode
|
// menuSysAgentMode
|
||||||
//
|
//
|
||||||
this.menuSysAgentMode.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.menuSysAgentMode.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.menuNotEnabledHttp,
|
this.menuKeepClear,
|
||||||
this.menuGlobal,
|
this.menuGlobal,
|
||||||
this.menuGlobalPAC,
|
this.menuKeepNothing});
|
||||||
this.menuKeep,
|
|
||||||
this.menuKeepPAC});
|
|
||||||
this.menuSysAgentMode.Name = "menuSysAgentMode";
|
this.menuSysAgentMode.Name = "menuSysAgentMode";
|
||||||
resources.ApplyResources(this.menuSysAgentMode, "menuSysAgentMode");
|
resources.ApplyResources(this.menuSysAgentMode, "menuSysAgentMode");
|
||||||
//
|
//
|
||||||
// menuNotEnabledHttp
|
// menuKeepClear
|
||||||
//
|
//
|
||||||
this.menuNotEnabledHttp.Name = "menuNotEnabledHttp";
|
this.menuKeepClear.Name = "menuKeepClear";
|
||||||
resources.ApplyResources(this.menuNotEnabledHttp, "menuNotEnabledHttp");
|
resources.ApplyResources(this.menuKeepClear, "menuKeepClear");
|
||||||
this.menuNotEnabledHttp.Click += new System.EventHandler(this.menuNotEnabledHttp_Click);
|
this.menuKeepClear.Click += new System.EventHandler(this.menuKeepClear_Click);
|
||||||
//
|
//
|
||||||
// menuGlobal
|
// menuGlobal
|
||||||
//
|
//
|
||||||
@@ -414,29 +601,35 @@
|
|||||||
resources.ApplyResources(this.menuGlobal, "menuGlobal");
|
resources.ApplyResources(this.menuGlobal, "menuGlobal");
|
||||||
this.menuGlobal.Click += new System.EventHandler(this.menuGlobal_Click);
|
this.menuGlobal.Click += new System.EventHandler(this.menuGlobal_Click);
|
||||||
//
|
//
|
||||||
// menuGlobalPAC
|
// menuKeepNothing
|
||||||
//
|
//
|
||||||
this.menuGlobalPAC.Name = "menuGlobalPAC";
|
this.menuKeepNothing.Name = "menuKeepNothing";
|
||||||
resources.ApplyResources(this.menuGlobalPAC, "menuGlobalPAC");
|
resources.ApplyResources(this.menuKeepNothing, "menuKeepNothing");
|
||||||
this.menuGlobalPAC.Click += new System.EventHandler(this.menuGlobalPAC_Click);
|
this.menuKeepNothing.Click += new System.EventHandler(this.menuKeepNothing_Click);
|
||||||
//
|
//
|
||||||
// menuKeep
|
// menuRoutings
|
||||||
//
|
//
|
||||||
this.menuKeep.Name = "menuKeep";
|
this.menuRoutings.Name = "menuRoutings";
|
||||||
resources.ApplyResources(this.menuKeep, "menuKeep");
|
resources.ApplyResources(this.menuRoutings, "menuRoutings");
|
||||||
this.menuKeep.Click += new System.EventHandler(this.menuKeep_Click);
|
|
||||||
//
|
|
||||||
// menuKeepPAC
|
|
||||||
//
|
|
||||||
this.menuKeepPAC.Name = "menuKeepPAC";
|
|
||||||
resources.ApplyResources(this.menuKeepPAC, "menuKeepPAC");
|
|
||||||
this.menuKeepPAC.Click += new System.EventHandler(this.menuKeepPAC_Click);
|
|
||||||
//
|
//
|
||||||
// menuServers
|
// menuServers
|
||||||
//
|
//
|
||||||
this.menuServers.Name = "menuServers";
|
this.menuServers.Name = "menuServers";
|
||||||
resources.ApplyResources(this.menuServers, "menuServers");
|
resources.ApplyResources(this.menuServers, "menuServers");
|
||||||
//
|
//
|
||||||
|
// menuServers2
|
||||||
|
//
|
||||||
|
this.menuServers2.BackColor = System.Drawing.SystemColors.Window;
|
||||||
|
this.menuServers2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.menuServers2.DropDownWidth = 500;
|
||||||
|
resources.ApplyResources(this.menuServers2, "menuServers2");
|
||||||
|
this.menuServers2.Name = "menuServers2";
|
||||||
|
//
|
||||||
|
// toolStripSeparator13
|
||||||
|
//
|
||||||
|
this.toolStripSeparator13.Name = "toolStripSeparator13";
|
||||||
|
resources.ApplyResources(this.toolStripSeparator13, "toolStripSeparator13");
|
||||||
|
//
|
||||||
// menuAddServers2
|
// menuAddServers2
|
||||||
//
|
//
|
||||||
this.menuAddServers2.Name = "menuAddServers2";
|
this.menuAddServers2.Name = "menuAddServers2";
|
||||||
@@ -449,11 +642,17 @@
|
|||||||
resources.ApplyResources(this.menuScanScreen2, "menuScanScreen2");
|
resources.ApplyResources(this.menuScanScreen2, "menuScanScreen2");
|
||||||
this.menuScanScreen2.Click += new System.EventHandler(this.menuScanScreen_Click);
|
this.menuScanScreen2.Click += new System.EventHandler(this.menuScanScreen_Click);
|
||||||
//
|
//
|
||||||
// menuCopyPACUrl
|
// menuUpdateSubscriptions
|
||||||
//
|
//
|
||||||
this.menuCopyPACUrl.Name = "menuCopyPACUrl";
|
this.menuUpdateSubscriptions.Name = "menuUpdateSubscriptions";
|
||||||
resources.ApplyResources(this.menuCopyPACUrl, "menuCopyPACUrl");
|
resources.ApplyResources(this.menuUpdateSubscriptions, "menuUpdateSubscriptions");
|
||||||
this.menuCopyPACUrl.Click += new System.EventHandler(this.menuCopyPACUrl_Click);
|
this.menuUpdateSubscriptions.Click += new System.EventHandler(this.menuUpdateSubscriptions_Click);
|
||||||
|
//
|
||||||
|
// menuUpdateSubViaProxy
|
||||||
|
//
|
||||||
|
this.menuUpdateSubViaProxy.Name = "menuUpdateSubViaProxy";
|
||||||
|
resources.ApplyResources(this.menuUpdateSubViaProxy, "menuUpdateSubViaProxy");
|
||||||
|
this.menuUpdateSubViaProxy.Click += new System.EventHandler(this.menuUpdateSubViaProxy_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator2
|
// toolStripSeparator2
|
||||||
//
|
//
|
||||||
@@ -472,107 +671,6 @@
|
|||||||
this.bgwScan.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bgwScan_DoWork);
|
this.bgwScan.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bgwScan_DoWork);
|
||||||
this.bgwScan.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bgwScan_ProgressChanged);
|
this.bgwScan.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bgwScan_ProgressChanged);
|
||||||
//
|
//
|
||||||
// groupBox1
|
|
||||||
//
|
|
||||||
this.groupBox1.Controls.Add(this.splitContainer1);
|
|
||||||
resources.ApplyResources(this.groupBox1, "groupBox1");
|
|
||||||
this.groupBox1.Name = "groupBox1";
|
|
||||||
this.groupBox1.TabStop = false;
|
|
||||||
//
|
|
||||||
// groupBox2
|
|
||||||
//
|
|
||||||
this.groupBox2.Controls.Add(this.txtMsgBox);
|
|
||||||
this.groupBox2.Controls.Add(this.ssMain);
|
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
|
||||||
this.groupBox2.Name = "groupBox2";
|
|
||||||
this.groupBox2.TabStop = false;
|
|
||||||
//
|
|
||||||
// txtMsgBox
|
|
||||||
//
|
|
||||||
this.txtMsgBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(41)))), ((int)(((byte)(49)))), ((int)(((byte)(52)))));
|
|
||||||
this.txtMsgBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
|
||||||
resources.ApplyResources(this.txtMsgBox, "txtMsgBox");
|
|
||||||
this.txtMsgBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(226)))), ((int)(((byte)(228)))));
|
|
||||||
this.txtMsgBox.Name = "txtMsgBox";
|
|
||||||
this.txtMsgBox.ReadOnly = true;
|
|
||||||
//
|
|
||||||
// ssMain
|
|
||||||
//
|
|
||||||
this.ssMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.toolSslSocksPortLab,
|
|
||||||
this.toolSslSocksPort,
|
|
||||||
this.toolSslBlank1,
|
|
||||||
this.toolSslHttpPortLab,
|
|
||||||
this.toolSslHttpPort,
|
|
||||||
this.toolSslBlank2,
|
|
||||||
this.toolSslPacPortLab,
|
|
||||||
this.toolSslPacPort,
|
|
||||||
this.toolSslBlank3,
|
|
||||||
this.toolSslServerSpeed,
|
|
||||||
this.toolSslBlank4});
|
|
||||||
resources.ApplyResources(this.ssMain, "ssMain");
|
|
||||||
this.ssMain.Name = "ssMain";
|
|
||||||
this.ssMain.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.ssMain_ItemClicked);
|
|
||||||
//
|
|
||||||
// toolSslSocksPortLab
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslSocksPortLab, "toolSslSocksPortLab");
|
|
||||||
this.toolSslSocksPortLab.Name = "toolSslSocksPortLab";
|
|
||||||
//
|
|
||||||
// toolSslSocksPort
|
|
||||||
//
|
|
||||||
this.toolSslSocksPort.Name = "toolSslSocksPort";
|
|
||||||
resources.ApplyResources(this.toolSslSocksPort, "toolSslSocksPort");
|
|
||||||
//
|
|
||||||
// toolSslBlank1
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslBlank1, "toolSslBlank1");
|
|
||||||
this.toolSslBlank1.Name = "toolSslBlank1";
|
|
||||||
this.toolSslBlank1.Spring = true;
|
|
||||||
//
|
|
||||||
// toolSslHttpPortLab
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslHttpPortLab, "toolSslHttpPortLab");
|
|
||||||
this.toolSslHttpPortLab.Name = "toolSslHttpPortLab";
|
|
||||||
//
|
|
||||||
// toolSslHttpPort
|
|
||||||
//
|
|
||||||
this.toolSslHttpPort.Name = "toolSslHttpPort";
|
|
||||||
resources.ApplyResources(this.toolSslHttpPort, "toolSslHttpPort");
|
|
||||||
//
|
|
||||||
// toolSslBlank2
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslBlank2, "toolSslBlank2");
|
|
||||||
this.toolSslBlank2.Name = "toolSslBlank2";
|
|
||||||
this.toolSslBlank2.Spring = true;
|
|
||||||
//
|
|
||||||
// toolSslPacPortLab
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslPacPortLab, "toolSslPacPortLab");
|
|
||||||
this.toolSslPacPortLab.Name = "toolSslPacPortLab";
|
|
||||||
//
|
|
||||||
// toolSslPacPort
|
|
||||||
//
|
|
||||||
this.toolSslPacPort.Name = "toolSslPacPort";
|
|
||||||
resources.ApplyResources(this.toolSslPacPort, "toolSslPacPort");
|
|
||||||
//
|
|
||||||
// toolSslBlank3
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslBlank3, "toolSslBlank3");
|
|
||||||
this.toolSslBlank3.Name = "toolSslBlank3";
|
|
||||||
this.toolSslBlank3.Spring = true;
|
|
||||||
//
|
|
||||||
// toolSslServerSpeed
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.toolSslServerSpeed, "toolSslServerSpeed");
|
|
||||||
this.toolSslServerSpeed.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
|
||||||
this.toolSslServerSpeed.Name = "toolSslServerSpeed";
|
|
||||||
//
|
|
||||||
// toolSslBlank4
|
|
||||||
//
|
|
||||||
this.toolSslBlank4.Name = "toolSslBlank4";
|
|
||||||
resources.ApplyResources(this.toolSslBlank4, "toolSslBlank4");
|
|
||||||
//
|
|
||||||
// panel1
|
// panel1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.panel1, "panel1");
|
resources.ApplyResources(this.panel1, "panel1");
|
||||||
@@ -585,8 +683,9 @@
|
|||||||
this.tsbServer,
|
this.tsbServer,
|
||||||
this.toolStripSeparator4,
|
this.toolStripSeparator4,
|
||||||
this.tsbSub,
|
this.tsbSub,
|
||||||
|
this.tsbQRCodeSwitch,
|
||||||
this.toolStripSeparator8,
|
this.toolStripSeparator8,
|
||||||
this.tsbOptionSetting,
|
this.tsbSetting,
|
||||||
this.toolStripSeparator5,
|
this.toolStripSeparator5,
|
||||||
this.tsbReload,
|
this.tsbReload,
|
||||||
this.toolStripSeparator7,
|
this.toolStripSeparator7,
|
||||||
@@ -598,6 +697,7 @@
|
|||||||
this.tsbClose});
|
this.tsbClose});
|
||||||
resources.ApplyResources(this.tsMain, "tsMain");
|
resources.ApplyResources(this.tsMain, "tsMain");
|
||||||
this.tsMain.Name = "tsMain";
|
this.tsMain.Name = "tsMain";
|
||||||
|
this.tsMain.TabStop = true;
|
||||||
//
|
//
|
||||||
// toolStripSeparator4
|
// toolStripSeparator4
|
||||||
//
|
//
|
||||||
@@ -608,7 +708,8 @@
|
|||||||
//
|
//
|
||||||
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.tsbSubUpdateViaProxy});
|
||||||
this.tsbSub.Image = global::v2rayN.Properties.Resources.sub;
|
this.tsbSub.Image = global::v2rayN.Properties.Resources.sub;
|
||||||
resources.ApplyResources(this.tsbSub, "tsbSub");
|
resources.ApplyResources(this.tsbSub, "tsbSub");
|
||||||
this.tsbSub.Name = "tsbSub";
|
this.tsbSub.Name = "tsbSub";
|
||||||
@@ -625,18 +726,60 @@
|
|||||||
resources.ApplyResources(this.tsbSubUpdate, "tsbSubUpdate");
|
resources.ApplyResources(this.tsbSubUpdate, "tsbSubUpdate");
|
||||||
this.tsbSubUpdate.Click += new System.EventHandler(this.tsbSubUpdate_Click);
|
this.tsbSubUpdate.Click += new System.EventHandler(this.tsbSubUpdate_Click);
|
||||||
//
|
//
|
||||||
|
// tsbSubUpdateViaProxy
|
||||||
|
//
|
||||||
|
this.tsbSubUpdateViaProxy.Name = "tsbSubUpdateViaProxy";
|
||||||
|
resources.ApplyResources(this.tsbSubUpdateViaProxy, "tsbSubUpdateViaProxy");
|
||||||
|
this.tsbSubUpdateViaProxy.Click += new System.EventHandler(this.tsbSubUpdateViaProxy_Click);
|
||||||
|
//
|
||||||
|
// tsbQRCodeSwitch
|
||||||
|
//
|
||||||
|
this.tsbQRCodeSwitch.CheckOnClick = true;
|
||||||
|
this.tsbQRCodeSwitch.ForeColor = System.Drawing.Color.Black;
|
||||||
|
this.tsbQRCodeSwitch.Image = global::v2rayN.Properties.Resources.share;
|
||||||
|
resources.ApplyResources(this.tsbQRCodeSwitch, "tsbQRCodeSwitch");
|
||||||
|
this.tsbQRCodeSwitch.Name = "tsbQRCodeSwitch";
|
||||||
|
this.tsbQRCodeSwitch.CheckedChanged += new System.EventHandler(this.tsbQRCodeSwitch_CheckedChanged);
|
||||||
|
//
|
||||||
// toolStripSeparator8
|
// toolStripSeparator8
|
||||||
//
|
//
|
||||||
this.toolStripSeparator8.Name = "toolStripSeparator8";
|
this.toolStripSeparator8.Name = "toolStripSeparator8";
|
||||||
resources.ApplyResources(this.toolStripSeparator8, "toolStripSeparator8");
|
resources.ApplyResources(this.toolStripSeparator8, "toolStripSeparator8");
|
||||||
//
|
//
|
||||||
|
// tsbSetting
|
||||||
|
//
|
||||||
|
this.tsbSetting.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.tsbOptionSetting,
|
||||||
|
this.tsbRoutingSetting,
|
||||||
|
this.toolStripSeparator14,
|
||||||
|
this.tsbBackupGuiNConfig});
|
||||||
|
this.tsbSetting.Image = global::v2rayN.Properties.Resources.option;
|
||||||
|
resources.ApplyResources(this.tsbSetting, "tsbSetting");
|
||||||
|
this.tsbSetting.Name = "tsbSetting";
|
||||||
|
//
|
||||||
// tsbOptionSetting
|
// tsbOptionSetting
|
||||||
//
|
//
|
||||||
this.tsbOptionSetting.Image = global::v2rayN.Properties.Resources.option;
|
|
||||||
resources.ApplyResources(this.tsbOptionSetting, "tsbOptionSetting");
|
|
||||||
this.tsbOptionSetting.Name = "tsbOptionSetting";
|
this.tsbOptionSetting.Name = "tsbOptionSetting";
|
||||||
|
resources.ApplyResources(this.tsbOptionSetting, "tsbOptionSetting");
|
||||||
this.tsbOptionSetting.Click += new System.EventHandler(this.tsbOptionSetting_Click);
|
this.tsbOptionSetting.Click += new System.EventHandler(this.tsbOptionSetting_Click);
|
||||||
//
|
//
|
||||||
|
// tsbRoutingSetting
|
||||||
|
//
|
||||||
|
this.tsbRoutingSetting.Name = "tsbRoutingSetting";
|
||||||
|
resources.ApplyResources(this.tsbRoutingSetting, "tsbRoutingSetting");
|
||||||
|
this.tsbRoutingSetting.Click += new System.EventHandler(this.tsbRoutingSetting_Click);
|
||||||
|
//
|
||||||
|
// toolStripSeparator14
|
||||||
|
//
|
||||||
|
this.toolStripSeparator14.Name = "toolStripSeparator14";
|
||||||
|
resources.ApplyResources(this.toolStripSeparator14, "toolStripSeparator14");
|
||||||
|
//
|
||||||
|
// tsbBackupGuiNConfig
|
||||||
|
//
|
||||||
|
this.tsbBackupGuiNConfig.Name = "tsbBackupGuiNConfig";
|
||||||
|
resources.ApplyResources(this.tsbBackupGuiNConfig, "tsbBackupGuiNConfig");
|
||||||
|
this.tsbBackupGuiNConfig.Click += new System.EventHandler(this.tsbBackupGuiNConfig_Click);
|
||||||
|
//
|
||||||
// toolStripSeparator5
|
// toolStripSeparator5
|
||||||
//
|
//
|
||||||
this.toolStripSeparator5.Name = "toolStripSeparator5";
|
this.toolStripSeparator5.Name = "toolStripSeparator5";
|
||||||
@@ -658,8 +801,10 @@
|
|||||||
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,
|
||||||
this.tsbCheckUpdatePACList,
|
this.tsbCheckUpdateXrayCore,
|
||||||
this.tsbCheckClearPACList});
|
this.toolStripSeparator15,
|
||||||
|
this.tsbCheckUpdateGeoSite,
|
||||||
|
this.tsbCheckUpdateGeoIP});
|
||||||
this.tsbCheckUpdate.Image = global::v2rayN.Properties.Resources.checkupdate;
|
this.tsbCheckUpdate.Image = global::v2rayN.Properties.Resources.checkupdate;
|
||||||
resources.ApplyResources(this.tsbCheckUpdate, "tsbCheckUpdate");
|
resources.ApplyResources(this.tsbCheckUpdate, "tsbCheckUpdate");
|
||||||
this.tsbCheckUpdate.Name = "tsbCheckUpdate";
|
this.tsbCheckUpdate.Name = "tsbCheckUpdate";
|
||||||
@@ -676,17 +821,28 @@
|
|||||||
resources.ApplyResources(this.tsbCheckUpdateCore, "tsbCheckUpdateCore");
|
resources.ApplyResources(this.tsbCheckUpdateCore, "tsbCheckUpdateCore");
|
||||||
this.tsbCheckUpdateCore.Click += new System.EventHandler(this.tsbCheckUpdateCore_Click);
|
this.tsbCheckUpdateCore.Click += new System.EventHandler(this.tsbCheckUpdateCore_Click);
|
||||||
//
|
//
|
||||||
// tsbCheckUpdatePACList
|
// tsbCheckUpdateXrayCore
|
||||||
//
|
//
|
||||||
this.tsbCheckUpdatePACList.Name = "tsbCheckUpdatePACList";
|
this.tsbCheckUpdateXrayCore.Name = "tsbCheckUpdateXrayCore";
|
||||||
resources.ApplyResources(this.tsbCheckUpdatePACList, "tsbCheckUpdatePACList");
|
resources.ApplyResources(this.tsbCheckUpdateXrayCore, "tsbCheckUpdateXrayCore");
|
||||||
this.tsbCheckUpdatePACList.Click += new System.EventHandler(this.tsbCheckUpdatePACList_Click);
|
this.tsbCheckUpdateXrayCore.Click += new System.EventHandler(this.tsbCheckUpdateXrayCore_Click);
|
||||||
//
|
//
|
||||||
// tsbCheckClearPACList
|
// toolStripSeparator15
|
||||||
//
|
//
|
||||||
this.tsbCheckClearPACList.Name = "tsbCheckClearPACList";
|
this.toolStripSeparator15.Name = "toolStripSeparator15";
|
||||||
resources.ApplyResources(this.tsbCheckClearPACList, "tsbCheckClearPACList");
|
resources.ApplyResources(this.toolStripSeparator15, "toolStripSeparator15");
|
||||||
this.tsbCheckClearPACList.Click += new System.EventHandler(this.tsbCheckClearPACList_Click);
|
//
|
||||||
|
// tsbCheckUpdateGeoSite
|
||||||
|
//
|
||||||
|
this.tsbCheckUpdateGeoSite.Name = "tsbCheckUpdateGeoSite";
|
||||||
|
resources.ApplyResources(this.tsbCheckUpdateGeoSite, "tsbCheckUpdateGeoSite");
|
||||||
|
this.tsbCheckUpdateGeoSite.Click += new System.EventHandler(this.tsbCheckUpdateGeoSite_Click);
|
||||||
|
//
|
||||||
|
// tsbCheckUpdateGeoIP
|
||||||
|
//
|
||||||
|
this.tsbCheckUpdateGeoIP.Name = "tsbCheckUpdateGeoIP";
|
||||||
|
resources.ApplyResources(this.tsbCheckUpdateGeoIP, "tsbCheckUpdateGeoIP");
|
||||||
|
this.tsbCheckUpdateGeoIP.Click += new System.EventHandler(this.tsbCheckUpdateGeoIP_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator10
|
// toolStripSeparator10
|
||||||
//
|
//
|
||||||
@@ -697,6 +853,7 @@
|
|||||||
//
|
//
|
||||||
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.toolStripSeparator12,
|
this.toolStripSeparator12,
|
||||||
this.tsbLanguageDef,
|
this.tsbLanguageDef,
|
||||||
this.tsbLanguageZhHans});
|
this.tsbLanguageZhHans});
|
||||||
@@ -710,6 +867,12 @@
|
|||||||
resources.ApplyResources(this.tsbAbout, "tsbAbout");
|
resources.ApplyResources(this.tsbAbout, "tsbAbout");
|
||||||
this.tsbAbout.Click += new System.EventHandler(this.tsbAbout_Click);
|
this.tsbAbout.Click += new System.EventHandler(this.tsbAbout_Click);
|
||||||
//
|
//
|
||||||
|
// tsbV2rayWebsite
|
||||||
|
//
|
||||||
|
this.tsbV2rayWebsite.Name = "tsbV2rayWebsite";
|
||||||
|
resources.ApplyResources(this.tsbV2rayWebsite, "tsbV2rayWebsite");
|
||||||
|
this.tsbV2rayWebsite.Click += new System.EventHandler(this.tsbV2rayWebsite_Click);
|
||||||
|
//
|
||||||
// toolStripSeparator12
|
// toolStripSeparator12
|
||||||
//
|
//
|
||||||
this.toolStripSeparator12.Name = "toolStripSeparator12";
|
this.toolStripSeparator12.Name = "toolStripSeparator12";
|
||||||
@@ -750,8 +913,7 @@
|
|||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.Controls.Add(this.groupBox1);
|
this.Controls.Add(this.splitContainer1);
|
||||||
this.Controls.Add(this.groupBox2);
|
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.Controls.Add(this.tsMain);
|
this.Controls.Add(this.tsMain);
|
||||||
this.MaximizeBox = true;
|
this.MaximizeBox = true;
|
||||||
@@ -762,17 +924,22 @@
|
|||||||
this.Shown += new System.EventHandler(this.MainForm_Shown);
|
this.Shown += new System.EventHandler(this.MainForm_Shown);
|
||||||
this.VisibleChanged += new System.EventHandler(this.MainForm_VisibleChanged);
|
this.VisibleChanged += new System.EventHandler(this.MainForm_VisibleChanged);
|
||||||
this.Resize += new System.EventHandler(this.MainForm_Resize);
|
this.Resize += new System.EventHandler(this.MainForm_Resize);
|
||||||
|
this.scMain.Panel1.ResumeLayout(false);
|
||||||
|
this.scMain.Panel2.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.scMain)).EndInit();
|
||||||
|
this.scMain.ResumeLayout(false);
|
||||||
|
this.cmsLv.ResumeLayout(false);
|
||||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||||
this.splitContainer1.ResumeLayout(false);
|
this.splitContainer1.ResumeLayout(false);
|
||||||
this.cmsLv.ResumeLayout(false);
|
|
||||||
this.cmsMain.ResumeLayout(false);
|
|
||||||
this.groupBox1.ResumeLayout(false);
|
this.groupBox1.ResumeLayout(false);
|
||||||
this.groupBox2.ResumeLayout(false);
|
this.gbMsgTitle.ResumeLayout(false);
|
||||||
this.groupBox2.PerformLayout();
|
this.gbMsgTitle.PerformLayout();
|
||||||
|
this.cmsMsgBox.ResumeLayout(false);
|
||||||
this.ssMain.ResumeLayout(false);
|
this.ssMain.ResumeLayout(false);
|
||||||
this.ssMain.PerformLayout();
|
this.ssMain.PerformLayout();
|
||||||
|
this.cmsMain.ResumeLayout(false);
|
||||||
this.tsMain.ResumeLayout(false);
|
this.tsMain.ResumeLayout(false);
|
||||||
this.tsMain.PerformLayout();
|
this.tsMain.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
@@ -780,10 +947,10 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.GroupBox groupBox1;
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
private System.Windows.Forms.GroupBox groupBox2;
|
private System.Windows.Forms.GroupBox gbMsgTitle;
|
||||||
private System.Windows.Forms.TextBox txtMsgBox;
|
private System.Windows.Forms.TextBox txtMsgBox;
|
||||||
private v2rayN.Base.ListViewFlickerFree lvServers;
|
private v2rayN.Base.ListViewFlickerFree lvServers;
|
||||||
private System.Windows.Forms.NotifyIcon notifyMain;
|
private System.Windows.Forms.NotifyIcon notifyMain;
|
||||||
@@ -803,8 +970,6 @@
|
|||||||
private System.Windows.Forms.ToolStripMenuItem menuExport2ServerConfig;
|
private System.Windows.Forms.ToolStripMenuItem menuExport2ServerConfig;
|
||||||
private System.Windows.Forms.ToolStrip tsMain;
|
private System.Windows.Forms.ToolStrip tsMain;
|
||||||
private System.Windows.Forms.ToolStripDropDownButton tsbServer;
|
private System.Windows.Forms.ToolStripDropDownButton tsbServer;
|
||||||
private System.Windows.Forms.ToolStripButton tsbOptionSetting;
|
|
||||||
private System.Windows.Forms.ToolStripButton tsbReload;
|
|
||||||
private System.Windows.Forms.ToolStripButton tsbClose;
|
private System.Windows.Forms.ToolStripButton tsbClose;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
|
||||||
@@ -817,19 +982,16 @@
|
|||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator9;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator9;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuSysAgentMode;
|
private System.Windows.Forms.ToolStripMenuItem menuSysAgentMode;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuGlobal;
|
private System.Windows.Forms.ToolStripMenuItem menuGlobal;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuGlobalPAC;
|
private System.Windows.Forms.ToolStripMenuItem menuKeepClear;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuKeep;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuCopyPACUrl;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuAddCustomServer;
|
private System.Windows.Forms.ToolStripMenuItem menuAddCustomServer;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuAddShadowsocksServer;
|
private System.Windows.Forms.ToolStripMenuItem menuAddShadowsocksServer;
|
||||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
private System.Windows.Forms.SplitContainer scMain;
|
||||||
private QRCodeControl qrCodeControl;
|
private QRCodeControl qrCodeControl;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator10;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator10;
|
||||||
private System.Windows.Forms.ToolStripDropDownButton tsbCheckUpdate;
|
private System.Windows.Forms.ToolStripDropDownButton tsbCheckUpdate;
|
||||||
private System.Windows.Forms.ToolStripMenuItem tsbCheckUpdateN;
|
private System.Windows.Forms.ToolStripMenuItem tsbCheckUpdateN;
|
||||||
private System.Windows.Forms.ToolStripMenuItem tsbCheckUpdateCore;
|
private System.Windows.Forms.ToolStripMenuItem tsbCheckUpdateCore;
|
||||||
private System.Windows.Forms.ToolStripMenuItem tsbCheckUpdatePACList;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuAddServers;
|
private System.Windows.Forms.ToolStripMenuItem menuAddServers;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuExport2ShareUrl;
|
private System.Windows.Forms.ToolStripMenuItem menuExport2ShareUrl;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuSpeedServer;
|
private System.Windows.Forms.ToolStripMenuItem menuSpeedServer;
|
||||||
@@ -844,8 +1006,6 @@
|
|||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator8;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator8;
|
||||||
private System.Windows.Forms.ToolStripMenuItem tsbSubSetting;
|
private System.Windows.Forms.ToolStripMenuItem tsbSubSetting;
|
||||||
private System.Windows.Forms.ToolStripMenuItem tsbSubUpdate;
|
private System.Windows.Forms.ToolStripMenuItem tsbSubUpdate;
|
||||||
private System.Windows.Forms.ToolStripMenuItem tsbCheckClearPACList;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuKeepPAC;
|
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuSelectAll;
|
private System.Windows.Forms.ToolStripMenuItem menuSelectAll;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuExport2SubContent;
|
private System.Windows.Forms.ToolStripMenuItem menuExport2SubContent;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator12;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator12;
|
||||||
@@ -854,21 +1014,46 @@
|
|||||||
private System.Windows.Forms.ToolStripButton tsbPromotion;
|
private System.Windows.Forms.ToolStripButton tsbPromotion;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuAddSocksServer;
|
private System.Windows.Forms.ToolStripMenuItem menuAddSocksServer;
|
||||||
private System.Windows.Forms.StatusStrip ssMain;
|
private System.Windows.Forms.StatusStrip ssMain;
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslSocksPort;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslHttpPort;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank2;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank1;
|
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank1;
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslPacPort;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank3;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslSocksPortLab;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslHttpPortLab;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslPacPortLab;
|
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslServerSpeed;
|
private System.Windows.Forms.ToolStripStatusLabel toolSslServerSpeed;
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank4;
|
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank4;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuRemoveDuplicateServer;
|
private System.Windows.Forms.ToolStripMenuItem menuRemoveDuplicateServer;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuTcpingServer;
|
private System.Windows.Forms.ToolStripMenuItem menuTcpingServer;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuRealPingServer;
|
private System.Windows.Forms.ToolStripMenuItem menuRealPingServer;
|
||||||
private System.Windows.Forms.ToolStripMenuItem menuNotEnabledHttp;
|
private System.Windows.Forms.ToolStripMenuItem menuUpdateSubscriptions;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsbV2rayWebsite;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuKeepNothing;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsbTestMe;
|
||||||
|
private System.Windows.Forms.ToolStripButton tsbReload;
|
||||||
|
private System.Windows.Forms.ToolStripButton tsbQRCodeSwitch;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuAddVlessServer;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuAddTrojanServer;
|
||||||
|
private System.Windows.Forms.ToolStripDropDownButton tsbSetting;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsbOptionSetting;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsbRoutingSetting;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsbCheckUpdateXrayCore;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuClearServerStatistics;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuRoutings;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator13;
|
||||||
|
private System.Windows.Forms.ContextMenuStrip cmsMsgBox;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuMsgBoxSelectAll;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuMsgBoxCopy;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuMsgBoxAddRoutingRule;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuMsgBoxCopyAll;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator14;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsbBackupGuiNConfig;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator15;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsbCheckUpdateGeoSite;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsbCheckUpdateGeoIP;
|
||||||
|
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuMsgBoxFilter;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel toolSslInboundInfo;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel toolSslRoutingRule;
|
||||||
|
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank2;
|
||||||
|
private System.Windows.Forms.ToolStripComboBox menuServers2;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem tsbSubUpdateViaProxy;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuUpdateSubViaProxy;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuMsgBoxClear;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -119,151 +119,175 @@
|
|||||||
</resheader>
|
</resheader>
|
||||||
<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="menuAddVmessServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuAddVmessServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<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>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuAddShadowsocksServer.Text" xml:space="preserve">
|
<data name="menuAddShadowsocksServer.Text" xml:space="preserve">
|
||||||
<value>添加[Shadowsocks]服务器</value>
|
<value>添加[Shadowsocks]服务器</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuAddSocksServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuAddSocksServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuAddSocksServer.Text" xml:space="preserve">
|
<data name="menuAddSocksServer.Text" xml:space="preserve">
|
||||||
<value>添加[Socks]服务器</value>
|
<value>添加[Socks]服务器</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="menuAddTrojanServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>300, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuAddTrojanServer.Text" xml:space="preserve">
|
||||||
|
<value>添加[Trojan]服务器</value>
|
||||||
|
</data>
|
||||||
<data name="menuAddCustomServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuAddCustomServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuAddCustomServer.Text" xml:space="preserve">
|
<data name="menuAddCustomServer.Text" xml:space="preserve">
|
||||||
<value>添加自定义配置服务器</value>
|
<value>添加自定义配置服务器</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuAddServers.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuAddServers.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuAddServers.Text" xml:space="preserve">
|
<data name="menuAddServers.Text" xml:space="preserve">
|
||||||
<value>从剪贴板导入批量URL</value>
|
<value>从剪贴板导入批量URL (Ctrl+V)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuScanScreen.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuScanScreen.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuScanScreen.Text" xml:space="preserve">
|
<data name="menuScanScreen.Text" xml:space="preserve">
|
||||||
<value>扫描屏幕上的二维码</value>
|
<value>扫描屏幕上的二维码 (Ctrl+S)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>275, 6</value>
|
<value>297, 6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuRemoveServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuRemoveServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuRemoveServer.Text" xml:space="preserve">
|
<data name="menuRemoveServer.Text" xml:space="preserve">
|
||||||
<value>移除所选服务器(多选) (Delete)</value>
|
<value>移除所选服务器(多选) (Delete)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuRemoveDuplicateServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuRemoveDuplicateServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuRemoveDuplicateServer.Text" xml:space="preserve">
|
<data name="menuRemoveDuplicateServer.Text" xml:space="preserve">
|
||||||
<value>移除重复的服务器</value>
|
<value>移除重复的服务器</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuCopyServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuCopyServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuCopyServer.Text" xml:space="preserve">
|
<data name="menuCopyServer.Text" xml:space="preserve">
|
||||||
<value>复制所选服务器</value>
|
<value>克隆所选服务器</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuSetDefaultServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuSetDefaultServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuSetDefaultServer.Text" xml:space="preserve">
|
<data name="menuSetDefaultServer.Text" xml:space="preserve">
|
||||||
<value>设为活动服务器 (Enter)</value>
|
<value>设为活动服务器 (Enter)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripSeparator3.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>275, 6</value>
|
<value>297, 6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuMoveTop.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuMoveTop.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuMoveTop.Text" xml:space="preserve">
|
<data name="menuMoveTop.Text" xml:space="preserve">
|
||||||
<value>上移至顶</value>
|
<value>上移至顶 (T)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuMoveUp.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuMoveUp.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuMoveUp.Text" xml:space="preserve">
|
<data name="menuMoveUp.Text" xml:space="preserve">
|
||||||
<value>上移 (U)</value>
|
<value>上移 (U)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuMoveDown.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuMoveDown.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuMoveDown.Text" xml:space="preserve">
|
<data name="menuMoveDown.Text" xml:space="preserve">
|
||||||
<value>下移 (D)</value>
|
<value>下移 (D)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuMoveBottom.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuMoveBottom.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuMoveBottom.Text" xml:space="preserve">
|
<data name="menuMoveBottom.Text" xml:space="preserve">
|
||||||
<value>下移至底</value>
|
<value>下移至底 (B)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuSelectAll.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuSelectAll.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuSelectAll.Text" xml:space="preserve">
|
<data name="menuSelectAll.Text" xml:space="preserve">
|
||||||
<value>全选 (Ctrl+A)</value>
|
<value>全选 (Ctrl+A)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripSeparator9.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator9.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>275, 6</value>
|
<value>297, 6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuPingServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuPingServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuPingServer.Text" xml:space="preserve">
|
<data name="menuPingServer.Text" xml:space="preserve">
|
||||||
<value>测试服务器延迟Ping(多选)(Ctrl+P)</value>
|
<value>测试服务器延迟Ping(多选) (Ctrl+P)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuTcpingServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuTcpingServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuTcpingServer.Text" xml:space="preserve">
|
<data name="menuTcpingServer.Text" xml:space="preserve">
|
||||||
<value>测试服务器延迟Tcping(多选)(Ctrl+O)</value>
|
<value>测试服务器延迟Tcping(多选) (Ctrl+O)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuRealPingServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuRealPingServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuRealPingServer.Text" xml:space="preserve">
|
<data name="menuRealPingServer.Text" xml:space="preserve">
|
||||||
<value>测试服务器真连接延迟(多选)(Ctrl+R)</value>
|
<value>测试服务器真连接延迟(多选) (Ctrl+R)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuSpeedServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuSpeedServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuSpeedServer.Text" xml:space="preserve">
|
<data name="menuSpeedServer.Text" xml:space="preserve">
|
||||||
<value>测试服务器速度(多选)(Ctrl+T)</value>
|
<value>测试服务器速度(多选) (Ctrl+T)</value>
|
||||||
|
</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="menuClearServerStatistics.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>300, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuClearServerStatistics.Text" xml:space="preserve">
|
||||||
|
<value>清除所有服务统计数据</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripSeparator6.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>275, 6</value>
|
<value>297, 6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuExport2ClientConfig.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuExport2ClientConfig.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuExport2ClientConfig.Text" xml:space="preserve">
|
<data name="menuExport2ClientConfig.Text" xml:space="preserve">
|
||||||
<value>导出所选服务器为客户端配置</value>
|
<value>导出所选服务器为客户端配置</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuExport2ServerConfig.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuExport2ServerConfig.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuExport2ServerConfig.Text" xml:space="preserve">
|
<data name="menuExport2ServerConfig.Text" xml:space="preserve">
|
||||||
<value>导出所选服务器为服务端配置</value>
|
<value>导出所选服务器为服务端配置</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuExport2ShareUrl.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuExport2ShareUrl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuExport2ShareUrl.Text" xml:space="preserve">
|
<data name="menuExport2ShareUrl.Text" xml:space="preserve">
|
||||||
<value>批量导出分享URL至剪贴板(多选)</value>
|
<value>批量导出分享URL至剪贴板(多选) (Ctrl+C)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuExport2SubContent.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuExport2SubContent.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>278, 22</value>
|
<value>300, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuExport2SubContent.Text" xml:space="preserve">
|
<data name="menuExport2SubContent.Text" xml:space="preserve">
|
||||||
<value>批量导出订阅内容至剪贴板(多选)</value>
|
<value>批量导出订阅内容至剪贴板(多选)</value>
|
||||||
@@ -275,7 +299,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>279, 534</value>
|
<value>301, 622</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>
|
||||||
@@ -294,115 +318,187 @@
|
|||||||
ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAMAAAADAAAACw==
|
ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAMAAAADAAAACw==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuNotEnabledHttp.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
<value>340, 22</value>
|
<value>服务器列表</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuNotEnabledHttp.Text" xml:space="preserve">
|
<data name="menuMsgBoxSelectAll.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>关闭Http代理</value>
|
<value>221, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMsgBoxSelectAll.Text" xml:space="preserve">
|
||||||
|
<value>全选 (Ctrl+A)</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMsgBoxCopy.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>221, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMsgBoxCopy.Text" xml:space="preserve">
|
||||||
|
<value>复制 (Ctrl+C)</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMsgBoxCopyAll.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>221, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMsgBoxCopyAll.Text" xml:space="preserve">
|
||||||
|
<value>复制所有</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMsgBoxAddRoutingRule.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>221, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMsgBoxAddRoutingRule.Text" xml:space="preserve">
|
||||||
|
<value>快速添加路由规则 (Ctrl+V)</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMsgBoxFilter.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>221, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMsgBoxFilter.Text" xml:space="preserve">
|
||||||
|
<value>设置信息过滤器</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmsMsgBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>222, 114</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolSslServerSpeed.Text" xml:space="preserve">
|
||||||
|
<value>网速显示未启用</value>
|
||||||
|
</data>
|
||||||
|
<data name="gbMsgTitle.Text" xml:space="preserve">
|
||||||
|
<value>信息</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuKeepClear.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>172, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuKeepClear.Text" xml:space="preserve">
|
||||||
|
<value>清除系统代理</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuGlobal.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuGlobal.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>340, 22</value>
|
<value>172, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuGlobal.Text" xml:space="preserve">
|
<data name="menuGlobal.Text" xml:space="preserve">
|
||||||
<value>开启Http代理,并自动配置代理服务器(全局模式)</value>
|
<value>自动配置系统代理</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuGlobalPAC.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuKeepNothing.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>340, 22</value>
|
<value>172, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuGlobalPAC.Text" xml:space="preserve">
|
<data name="menuKeepNothing.Text" xml:space="preserve">
|
||||||
<value>开启PAC,并自动配置PAC(PAC模式)</value>
|
<value>不改变系统代理</value>
|
||||||
</data>
|
|
||||||
<data name="menuKeep.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>340, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuKeep.Text" xml:space="preserve">
|
|
||||||
<value>仅开启Http代理,不自动配置代理服务器(直连模式)</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuKeepPAC.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>340, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuKeepPAC.Text" xml:space="preserve">
|
|
||||||
<value>仅开启PAC,不自动配置PAC</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="menuSysAgentMode.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuSysAgentMode.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>195, 22</value>
|
<value>260, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuSysAgentMode.Text" xml:space="preserve">
|
<data name="menuSysAgentMode.Text" xml:space="preserve">
|
||||||
<value>Http代理</value>
|
<value>系统代理</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuRoutings.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>260, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuRoutings.Text" xml:space="preserve">
|
||||||
|
<value>路由</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuServers.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuServers.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>195, 22</value>
|
<value>260, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuServers.Text" xml:space="preserve">
|
<data name="menuServers.Text" xml:space="preserve">
|
||||||
<value>服务器</value>
|
<value>服务器</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="menuServers2.ToolTipText" xml:space="preserve">
|
||||||
|
<value>服务器</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripSeparator13.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>257, 6</value>
|
||||||
|
</data>
|
||||||
<data name="menuAddServers2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuAddServers2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>195, 22</value>
|
<value>260, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuAddServers2.Text" xml:space="preserve">
|
<data name="menuAddServers2.Text" xml:space="preserve">
|
||||||
<value>从剪贴板导入批量URL</value>
|
<value>从剪贴板导入批量URL</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuScanScreen2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuScanScreen2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>195, 22</value>
|
<value>260, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuScanScreen2.Text" xml:space="preserve">
|
<data name="menuScanScreen2.Text" xml:space="preserve">
|
||||||
<value>扫描屏幕上的二维码</value>
|
<value>扫描屏幕上的二维码</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuCopyPACUrl.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuUpdateSubscriptions.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>195, 22</value>
|
<value>260, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuCopyPACUrl.Text" xml:space="preserve">
|
<data name="menuUpdateSubscriptions.Text" xml:space="preserve">
|
||||||
<value>复制本地PAC网址</value>
|
<value>更新订阅</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuUpdateSubViaProxy.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>260, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuUpdateSubViaProxy.Text" xml:space="preserve">
|
||||||
|
<value>更新订阅(通过代理)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>192, 6</value>
|
<value>257, 6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuExit.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuExit.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>195, 22</value>
|
<value>260, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="menuExit.Text" xml:space="preserve">
|
<data name="menuExit.Text" xml:space="preserve">
|
||||||
<value>退出</value>
|
<value>退出</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmsMain.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmsMain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>196, 142</value>
|
<value>261, 227</value>
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>服务器列表</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolSslServerSpeed.Text" xml:space="preserve">
|
|
||||||
<value>网速显示未启用</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
|
||||||
<value>信息</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbSubSetting.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbSubSetting.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>124, 22</value>
|
<value>180, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbSubSetting.Text" xml:space="preserve">
|
<data name="tsbSubSetting.Text" xml:space="preserve">
|
||||||
<value>订阅设置</value>
|
<value>订阅设置</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbSubUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbSubUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>124, 22</value>
|
<value>180, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbSubUpdate.Text" xml:space="preserve">
|
<data name="tsbSubUpdate.Text" xml:space="preserve">
|
||||||
<value>更新订阅</value>
|
<value>更新订阅</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tsbSubUpdateViaProxy.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>180, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbSubUpdateViaProxy.Text" xml:space="preserve">
|
||||||
|
<value>更新订阅(通过代理)</value>
|
||||||
|
</data>
|
||||||
<data name="tsbSub.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbSub.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>61, 53</value>
|
<value>61, 53</value>
|
||||||
</data>
|
</data>
|
||||||
<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>189, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbOptionSetting.Text" xml:space="preserve">
|
<data name="tsbOptionSetting.Text" xml:space="preserve">
|
||||||
<value> 参数设置 </value>
|
<value>参数设置</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbRoutingSetting.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>189, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbRoutingSetting.Text" xml:space="preserve">
|
||||||
|
<value>路由设置</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripSeparator14.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>186, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbBackupGuiNConfig.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>189, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbBackupGuiNConfig.Text" xml:space="preserve">
|
||||||
|
<value>备份v2rayN配置文件</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbSetting.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>61, 53</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbSetting.Text" xml:space="preserve">
|
||||||
|
<value> 设置 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbReload.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="tsbReload.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAE3SURBVFhH7ZaBDQIhDEVvBEdwBDfQDXQER3AD3cARdAPd
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE3SURBVFhH7ZaBDQIhDEVvBEdwBDfQDXQER3AD3cARdAPd
|
||||||
QDfSDbQvuSb1AicFjJrwkxcN0FIolOuamv5VE2E+gLaPayWchEcE+hhTXVPhIoQmDcFYbKpoJtwEdX4X
|
QDfSDbQvuSb1AicFjJrwkxcN0FIolOuamv5VE2E+gLaPayWchEcE+hhTXVPhIoQmDcFYbKpoJtwEdX4X
|
||||||
jgIrXfTwnzb6dBw22BaJVdjJmWQs1/SdBRtE0U5cBXW2oSFRO0HtSEeW2FZ1wsq9sjuRdTDVAXnNuWLY
|
jgIrXfTwnzb6dBw22BaJVdjJmWQs1/SdBRtE0U5cBXW2oSFRO0HtSEeW2FZ1wsq9sjuRdTDVAXnNuWLY
|
||||||
6JnAl0sYa/Q5q1dhq35ci+Bkq2HJvbZpxGeybAAuw4Fq+cnW1wPITgHFYxvBUw+qHEIL1yq1vDKhVlH3
|
6JnAl0sYa/Q5q1dhq35ci+Bkq2HJvbZpxGeybAAuw4Fq+cnW1wPITgHFYxvBUw+qHEIL1yq1vDKhVlH3
|
||||||
@@ -417,28 +513,31 @@
|
|||||||
<value> 重启服务 </value>
|
<value> 重启服务 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbCheckUpdateN.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbCheckUpdateN.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>232, 22</value>
|
<value>168, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbCheckUpdateN.Text" xml:space="preserve">
|
<data name="tsbCheckUpdateN.Text" xml:space="preserve">
|
||||||
<value>检查更新v2rayN</value>
|
<value>v2rayN</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbCheckUpdateCore.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbCheckUpdateCore.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>232, 22</value>
|
<value>168, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbCheckUpdateCore.Text" xml:space="preserve">
|
<data name="tsbCheckUpdateCore.Text" xml:space="preserve">
|
||||||
<value>检查更新v2rayCore</value>
|
<value>v2fly-Core</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbCheckUpdatePACList.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbCheckUpdateXrayCore.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>232, 22</value>
|
<value>168, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbCheckUpdatePACList.Text" xml:space="preserve">
|
<data name="tsbCheckUpdateXrayCore.Text" xml:space="preserve">
|
||||||
<value>检查更新PAC</value>
|
<value>Xray-Core</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbCheckClearPACList.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator15.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>232, 22</value>
|
<value>165, 6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbCheckClearPACList.Text" xml:space="preserve">
|
<data name="tsbCheckUpdateGeoSite.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>简化PAC (请设置Core路由)</value>
|
<value>168, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbCheckUpdateGeoIP.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>168, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbCheckUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbCheckUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>85, 53</value>
|
<value>85, 53</value>
|
||||||
@@ -447,7 +546,10 @@
|
|||||||
<value> 检查更新 </value>
|
<value> 检查更新 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbAbout.Text" xml:space="preserve">
|
<data name="tsbAbout.Text" xml:space="preserve">
|
||||||
<value>关于</value>
|
<value>v2rayN 项目</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbV2rayWebsite.Text" xml:space="preserve">
|
||||||
|
<value>V2Ray 官网</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tsbHelp.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tsbHelp.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>69, 53</value>
|
<value>69, 53</value>
|
||||||
@@ -464,11 +566,14 @@
|
|||||||
<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>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAySURBVFhH7c6xDQAgCEVBRnVTHU2ZABuMxV3yOvJDAAA/
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAySURBVFhH7c6xDQAgCEVBRnVTHU2ZABuMxV3yOvJDAAA/
|
||||||
GqfZVG6X8mg1dfUAAPBQxAZd0SJruVXHWwAAAABJRU5ErkJggg==
|
GqfZVG6X8mg1dfUAAPBQxAZd0SJruVXHWwAAAABJRU5ErkJggg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tsbClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>76, 53</value>
|
||||||
|
</data>
|
||||||
<data name="tsbClose.Text" xml:space="preserve">
|
<data name="tsbClose.Text" xml:space="preserve">
|
||||||
<value> 关闭 </value>
|
<value> 关闭窗口 </value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
98
v2rayN/v2rayN/Forms/MsgFilterSetForm.Designer.cs
generated
Normal file
98
v2rayN/v2rayN/Forms/MsgFilterSetForm.Designer.cs
generated
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
partial class MsgFilterSetForm
|
||||||
|
{
|
||||||
|
/// <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(MsgFilterSetForm));
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtMsgFilter = new System.Windows.Forms.TextBox();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.btnClose = new System.Windows.Forms.Button();
|
||||||
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Controls.Add(this.txtMsgFilter);
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtMsgFilter
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtMsgFilter, "txtMsgFilter");
|
||||||
|
this.txtMsgFilter.Name = "txtMsgFilter";
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
|
this.panel2.Controls.Add(this.btnOK);
|
||||||
|
this.panel2.Name = "panel2";
|
||||||
|
//
|
||||||
|
// 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);
|
||||||
|
//
|
||||||
|
// btnOK
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.btnOK, "btnOK");
|
||||||
|
this.btnOK.Name = "btnOK";
|
||||||
|
this.btnOK.UseVisualStyleBackColor = true;
|
||||||
|
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||||
|
//
|
||||||
|
// MsgFilterSetForm
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.groupBox1);
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Name = "MsgFilterSetForm";
|
||||||
|
this.Load += new System.EventHandler(this.MsgFilterSetForm_Load);
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.groupBox1.PerformLayout();
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
|
private System.Windows.Forms.TextBox txtMsgFilter;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.Button btnClose;
|
||||||
|
private System.Windows.Forms.Button btnOK;
|
||||||
|
}
|
||||||
|
}
|
||||||
38
v2rayN/v2rayN/Forms/MsgFilterSetForm.cs
Normal file
38
v2rayN/v2rayN/Forms/MsgFilterSetForm.cs
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
public partial class MsgFilterSetForm : BaseForm
|
||||||
|
{
|
||||||
|
public string MsgFilter { get; set; }
|
||||||
|
|
||||||
|
public MsgFilterSetForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MsgFilterSetForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
txtMsgFilter.Text = MsgFilter;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
MsgFilter = txtMsgFilter.Text;
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.Cancel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
267
v2rayN/v2rayN/Forms/MsgFilterSetForm.resx
Normal file
267
v2rayN/v2rayN/Forms/MsgFilterSetForm.resx
Normal file
@@ -0,0 +1,267 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtMsgFilter.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtMsgFilter.Name" xml:space="preserve">
|
||||||
|
<value>txtMsgFilter</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>&OK</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>&Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtMsgFilter.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="txtMsgFilter.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>41, 29</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>490, 60</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="txtMsgFilter.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>11</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Name" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>396, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Name" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>MsgFilterSetForm</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtMsgFilter.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>409, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 76</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtMsgFilter.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>490, 76</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Name" xml:space="preserve">
|
||||||
|
<value>btnClose</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>Filter</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Name" xml:space="preserve">
|
||||||
|
<value>btnOK</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>490, 136</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>303, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>MsgFilterSetForm</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
||||||
132
v2rayN/v2rayN/Forms/MsgFilterSetForm.zh-Hans.resx
Normal file
132
v2rayN/v2rayN/Forms/MsgFilterSetForm.zh-Hans.resx
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
<?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="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>过滤器</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>取消(&C)</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>设置过滤器</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
402
v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs
generated
402
v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs
generated
@@ -33,12 +33,9 @@
|
|||||||
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.label16 = new System.Windows.Forms.Label();
|
this.chkdefAllowInsecure = new System.Windows.Forms.CheckBox();
|
||||||
this.cmblistenerType = new System.Windows.Forms.ComboBox();
|
|
||||||
this.chksniffingEnabled2 = new System.Windows.Forms.CheckBox();
|
this.chksniffingEnabled2 = new System.Windows.Forms.CheckBox();
|
||||||
this.chksniffingEnabled = new System.Windows.Forms.CheckBox();
|
this.chksniffingEnabled = new System.Windows.Forms.CheckBox();
|
||||||
this.txtremoteDNS = new System.Windows.Forms.TextBox();
|
|
||||||
this.label14 = new System.Windows.Forms.Label();
|
|
||||||
this.chkmuxEnabled = new System.Windows.Forms.CheckBox();
|
this.chkmuxEnabled = new System.Windows.Forms.CheckBox();
|
||||||
this.chkAllowIn2 = new System.Windows.Forms.CheckBox();
|
this.chkAllowIn2 = new System.Windows.Forms.CheckBox();
|
||||||
this.chkudpEnabled2 = new System.Windows.Forms.CheckBox();
|
this.chkudpEnabled2 = new System.Windows.Forms.CheckBox();
|
||||||
@@ -54,21 +51,9 @@
|
|||||||
this.txtlocalPort = new System.Windows.Forms.TextBox();
|
this.txtlocalPort = new System.Windows.Forms.TextBox();
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
this.tabPage2 = new System.Windows.Forms.TabPage();
|
this.tabPage2 = new System.Windows.Forms.TabPage();
|
||||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
this.linkDnsObjectDoc = new System.Windows.Forms.LinkLabel();
|
||||||
this.tabControl2 = new System.Windows.Forms.TabControl();
|
this.txtremoteDNS = new System.Windows.Forms.TextBox();
|
||||||
this.tabPage3 = new System.Windows.Forms.TabPage();
|
this.label14 = new System.Windows.Forms.Label();
|
||||||
this.txtUseragent = new System.Windows.Forms.TextBox();
|
|
||||||
this.tabPage4 = new System.Windows.Forms.TabPage();
|
|
||||||
this.txtUserdirect = new System.Windows.Forms.TextBox();
|
|
||||||
this.tabPage5 = new System.Windows.Forms.TabPage();
|
|
||||||
this.txtUserblock = new System.Windows.Forms.TextBox();
|
|
||||||
this.tabPage8 = new System.Windows.Forms.TabPage();
|
|
||||||
this.cmbroutingMode = new System.Windows.Forms.ComboBox();
|
|
||||||
this.panel3 = new System.Windows.Forms.Panel();
|
|
||||||
this.btnSetDefRountingRule = new System.Windows.Forms.Button();
|
|
||||||
this.labRoutingTips = new System.Windows.Forms.Label();
|
|
||||||
this.cmbdomainStrategy = new System.Windows.Forms.ComboBox();
|
|
||||||
this.label15 = new System.Windows.Forms.Label();
|
|
||||||
this.tabPage6 = new System.Windows.Forms.TabPage();
|
this.tabPage6 = new System.Windows.Forms.TabPage();
|
||||||
this.chkKcpcongestion = new System.Windows.Forms.CheckBox();
|
this.chkKcpcongestion = new System.Windows.Forms.CheckBox();
|
||||||
this.txtKcpwriteBufferSize = new System.Windows.Forms.TextBox();
|
this.txtKcpwriteBufferSize = new System.Windows.Forms.TextBox();
|
||||||
@@ -84,17 +69,24 @@
|
|||||||
this.txtKcpmtu = new System.Windows.Forms.TextBox();
|
this.txtKcpmtu = new System.Windows.Forms.TextBox();
|
||||||
this.label6 = new System.Windows.Forms.Label();
|
this.label6 = new System.Windows.Forms.Label();
|
||||||
this.tabPage7 = new System.Windows.Forms.TabPage();
|
this.tabPage7 = new System.Windows.Forms.TabPage();
|
||||||
|
this.chkEnableAutoAdjustMainLvColWidth = new System.Windows.Forms.CheckBox();
|
||||||
|
this.btnSetLoopback = new System.Windows.Forms.Button();
|
||||||
|
this.txtautoUpdateInterval = new System.Windows.Forms.TextBox();
|
||||||
|
this.label15 = new System.Windows.Forms.Label();
|
||||||
|
this.chkIgnoreGeoUpdateCore = new System.Windows.Forms.CheckBox();
|
||||||
|
this.cmbCoreType = new System.Windows.Forms.ComboBox();
|
||||||
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
|
this.chkKeepOlderDedupl = new System.Windows.Forms.CheckBox();
|
||||||
this.cbFreshrate = new System.Windows.Forms.ComboBox();
|
this.cbFreshrate = new System.Windows.Forms.ComboBox();
|
||||||
this.lbFreshrate = new System.Windows.Forms.Label();
|
this.lbFreshrate = new System.Windows.Forms.Label();
|
||||||
this.chkEnableStatistics = new System.Windows.Forms.CheckBox();
|
this.chkEnableStatistics = new System.Windows.Forms.CheckBox();
|
||||||
this.chkAllowLANConn = new System.Windows.Forms.CheckBox();
|
this.chkAllowLANConn = new System.Windows.Forms.CheckBox();
|
||||||
this.txturlGFWList = new System.Windows.Forms.TextBox();
|
|
||||||
this.label13 = new System.Windows.Forms.Label();
|
|
||||||
this.chkAutoRun = new System.Windows.Forms.CheckBox();
|
this.chkAutoRun = new System.Windows.Forms.CheckBox();
|
||||||
this.tabPage9 = new System.Windows.Forms.TabPage();
|
this.tabPage3 = new System.Windows.Forms.TabPage();
|
||||||
this.txtuserPacRule = new System.Windows.Forms.TextBox();
|
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||||
this.panel4 = new System.Windows.Forms.Panel();
|
this.label13 = new System.Windows.Forms.Label();
|
||||||
this.label4 = new System.Windows.Forms.Label();
|
this.label12 = new System.Windows.Forms.Label();
|
||||||
|
this.txtsystemProxyExceptions = new System.Windows.Forms.TextBox();
|
||||||
this.panel2 = new System.Windows.Forms.Panel();
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
this.btnOK = new System.Windows.Forms.Button();
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
this.panel1 = new System.Windows.Forms.Panel();
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
@@ -102,54 +94,45 @@
|
|||||||
this.tabPage1.SuspendLayout();
|
this.tabPage1.SuspendLayout();
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
this.tabPage2.SuspendLayout();
|
this.tabPage2.SuspendLayout();
|
||||||
this.groupBox2.SuspendLayout();
|
|
||||||
this.tabControl2.SuspendLayout();
|
|
||||||
this.tabPage3.SuspendLayout();
|
|
||||||
this.tabPage4.SuspendLayout();
|
|
||||||
this.tabPage5.SuspendLayout();
|
|
||||||
this.tabPage8.SuspendLayout();
|
|
||||||
this.panel3.SuspendLayout();
|
|
||||||
this.tabPage6.SuspendLayout();
|
this.tabPage6.SuspendLayout();
|
||||||
this.tabPage7.SuspendLayout();
|
this.tabPage7.SuspendLayout();
|
||||||
this.tabPage9.SuspendLayout();
|
this.tabPage3.SuspendLayout();
|
||||||
this.panel4.SuspendLayout();
|
this.groupBox2.SuspendLayout();
|
||||||
this.panel2.SuspendLayout();
|
this.panel2.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// 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.tabPage3);
|
||||||
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
|
||||||
//
|
//
|
||||||
this.groupBox1.Controls.Add(this.label16);
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
this.groupBox1.Controls.Add(this.cmblistenerType);
|
this.groupBox1.Controls.Add(this.chkdefAllowInsecure);
|
||||||
this.groupBox1.Controls.Add(this.chksniffingEnabled2);
|
this.groupBox1.Controls.Add(this.chksniffingEnabled2);
|
||||||
this.groupBox1.Controls.Add(this.chksniffingEnabled);
|
this.groupBox1.Controls.Add(this.chksniffingEnabled);
|
||||||
this.groupBox1.Controls.Add(this.txtremoteDNS);
|
|
||||||
this.groupBox1.Controls.Add(this.label14);
|
|
||||||
this.groupBox1.Controls.Add(this.chkmuxEnabled);
|
this.groupBox1.Controls.Add(this.chkmuxEnabled);
|
||||||
this.groupBox1.Controls.Add(this.chkAllowIn2);
|
this.groupBox1.Controls.Add(this.chkAllowIn2);
|
||||||
this.groupBox1.Controls.Add(this.chkudpEnabled2);
|
this.groupBox1.Controls.Add(this.chkudpEnabled2);
|
||||||
@@ -164,27 +147,14 @@
|
|||||||
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;
|
||||||
//
|
//
|
||||||
// label16
|
// chkdefAllowInsecure
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label16, "label16");
|
resources.ApplyResources(this.chkdefAllowInsecure, "chkdefAllowInsecure");
|
||||||
this.label16.Name = "label16";
|
this.chkdefAllowInsecure.Name = "chkdefAllowInsecure";
|
||||||
//
|
this.chkdefAllowInsecure.UseVisualStyleBackColor = true;
|
||||||
// cmblistenerType
|
|
||||||
//
|
|
||||||
this.cmblistenerType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmblistenerType.FormattingEnabled = true;
|
|
||||||
this.cmblistenerType.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmblistenerType.Items"),
|
|
||||||
resources.GetString("cmblistenerType.Items1"),
|
|
||||||
resources.GetString("cmblistenerType.Items2"),
|
|
||||||
resources.GetString("cmblistenerType.Items3"),
|
|
||||||
resources.GetString("cmblistenerType.Items4")});
|
|
||||||
resources.ApplyResources(this.cmblistenerType, "cmblistenerType");
|
|
||||||
this.cmblistenerType.Name = "cmblistenerType";
|
|
||||||
//
|
//
|
||||||
// chksniffingEnabled2
|
// chksniffingEnabled2
|
||||||
//
|
//
|
||||||
@@ -198,16 +168,6 @@
|
|||||||
this.chksniffingEnabled.Name = "chksniffingEnabled";
|
this.chksniffingEnabled.Name = "chksniffingEnabled";
|
||||||
this.chksniffingEnabled.UseVisualStyleBackColor = true;
|
this.chksniffingEnabled.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// txtremoteDNS
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txtremoteDNS, "txtremoteDNS");
|
|
||||||
this.txtremoteDNS.Name = "txtremoteDNS";
|
|
||||||
//
|
|
||||||
// label14
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label14, "label14");
|
|
||||||
this.label14.Name = "label14";
|
|
||||||
//
|
|
||||||
// chkmuxEnabled
|
// chkmuxEnabled
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.chkmuxEnabled, "chkmuxEnabled");
|
resources.ApplyResources(this.chkmuxEnabled, "chkmuxEnabled");
|
||||||
@@ -229,12 +189,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
|
||||||
@@ -249,8 +209,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"),
|
||||||
@@ -276,6 +236,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[] {
|
||||||
@@ -284,7 +245,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
|
||||||
@@ -304,124 +264,33 @@
|
|||||||
//
|
//
|
||||||
// tabPage2
|
// tabPage2
|
||||||
//
|
//
|
||||||
this.tabPage2.Controls.Add(this.groupBox2);
|
|
||||||
resources.ApplyResources(this.tabPage2, "tabPage2");
|
resources.ApplyResources(this.tabPage2, "tabPage2");
|
||||||
|
this.tabPage2.Controls.Add(this.linkDnsObjectDoc);
|
||||||
|
this.tabPage2.Controls.Add(this.txtremoteDNS);
|
||||||
|
this.tabPage2.Controls.Add(this.label14);
|
||||||
this.tabPage2.Name = "tabPage2";
|
this.tabPage2.Name = "tabPage2";
|
||||||
this.tabPage2.UseVisualStyleBackColor = true;
|
this.tabPage2.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// groupBox2
|
// linkDnsObjectDoc
|
||||||
//
|
//
|
||||||
this.groupBox2.Controls.Add(this.tabControl2);
|
resources.ApplyResources(this.linkDnsObjectDoc, "linkDnsObjectDoc");
|
||||||
this.groupBox2.Controls.Add(this.panel3);
|
this.linkDnsObjectDoc.Name = "linkDnsObjectDoc";
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
this.linkDnsObjectDoc.TabStop = true;
|
||||||
this.groupBox2.Name = "groupBox2";
|
this.linkDnsObjectDoc.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkDnsObjectDoc_LinkClicked);
|
||||||
this.groupBox2.TabStop = false;
|
|
||||||
//
|
//
|
||||||
// tabControl2
|
// txtremoteDNS
|
||||||
//
|
//
|
||||||
this.tabControl2.Controls.Add(this.tabPage3);
|
resources.ApplyResources(this.txtremoteDNS, "txtremoteDNS");
|
||||||
this.tabControl2.Controls.Add(this.tabPage4);
|
this.txtremoteDNS.Name = "txtremoteDNS";
|
||||||
this.tabControl2.Controls.Add(this.tabPage5);
|
|
||||||
this.tabControl2.Controls.Add(this.tabPage8);
|
|
||||||
resources.ApplyResources(this.tabControl2, "tabControl2");
|
|
||||||
this.tabControl2.Name = "tabControl2";
|
|
||||||
this.tabControl2.SelectedIndex = 0;
|
|
||||||
//
|
//
|
||||||
// tabPage3
|
// label14
|
||||||
//
|
//
|
||||||
this.tabPage3.Controls.Add(this.txtUseragent);
|
resources.ApplyResources(this.label14, "label14");
|
||||||
resources.ApplyResources(this.tabPage3, "tabPage3");
|
this.label14.Name = "label14";
|
||||||
this.tabPage3.Name = "tabPage3";
|
|
||||||
this.tabPage3.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// txtUseragent
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txtUseragent, "txtUseragent");
|
|
||||||
this.txtUseragent.Name = "txtUseragent";
|
|
||||||
//
|
|
||||||
// tabPage4
|
|
||||||
//
|
|
||||||
this.tabPage4.Controls.Add(this.txtUserdirect);
|
|
||||||
resources.ApplyResources(this.tabPage4, "tabPage4");
|
|
||||||
this.tabPage4.Name = "tabPage4";
|
|
||||||
this.tabPage4.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// txtUserdirect
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txtUserdirect, "txtUserdirect");
|
|
||||||
this.txtUserdirect.Name = "txtUserdirect";
|
|
||||||
//
|
|
||||||
// tabPage5
|
|
||||||
//
|
|
||||||
this.tabPage5.Controls.Add(this.txtUserblock);
|
|
||||||
resources.ApplyResources(this.tabPage5, "tabPage5");
|
|
||||||
this.tabPage5.Name = "tabPage5";
|
|
||||||
this.tabPage5.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// txtUserblock
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txtUserblock, "txtUserblock");
|
|
||||||
this.txtUserblock.Name = "txtUserblock";
|
|
||||||
//
|
|
||||||
// tabPage8
|
|
||||||
//
|
|
||||||
this.tabPage8.Controls.Add(this.cmbroutingMode);
|
|
||||||
resources.ApplyResources(this.tabPage8, "tabPage8");
|
|
||||||
this.tabPage8.Name = "tabPage8";
|
|
||||||
this.tabPage8.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// cmbroutingMode
|
|
||||||
//
|
|
||||||
this.cmbroutingMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbroutingMode.FormattingEnabled = true;
|
|
||||||
this.cmbroutingMode.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbroutingMode.Items"),
|
|
||||||
resources.GetString("cmbroutingMode.Items1"),
|
|
||||||
resources.GetString("cmbroutingMode.Items2"),
|
|
||||||
resources.GetString("cmbroutingMode.Items3")});
|
|
||||||
resources.ApplyResources(this.cmbroutingMode, "cmbroutingMode");
|
|
||||||
this.cmbroutingMode.Name = "cmbroutingMode";
|
|
||||||
//
|
|
||||||
// panel3
|
|
||||||
//
|
|
||||||
this.panel3.Controls.Add(this.btnSetDefRountingRule);
|
|
||||||
this.panel3.Controls.Add(this.labRoutingTips);
|
|
||||||
this.panel3.Controls.Add(this.cmbdomainStrategy);
|
|
||||||
this.panel3.Controls.Add(this.label15);
|
|
||||||
resources.ApplyResources(this.panel3, "panel3");
|
|
||||||
this.panel3.Name = "panel3";
|
|
||||||
//
|
|
||||||
// btnSetDefRountingRule
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.btnSetDefRountingRule, "btnSetDefRountingRule");
|
|
||||||
this.btnSetDefRountingRule.Name = "btnSetDefRountingRule";
|
|
||||||
this.btnSetDefRountingRule.UseVisualStyleBackColor = true;
|
|
||||||
this.btnSetDefRountingRule.Click += new System.EventHandler(this.btnSetDefRountingRule_Click);
|
|
||||||
//
|
|
||||||
// labRoutingTips
|
|
||||||
//
|
|
||||||
this.labRoutingTips.ForeColor = System.Drawing.Color.Brown;
|
|
||||||
resources.ApplyResources(this.labRoutingTips, "labRoutingTips");
|
|
||||||
this.labRoutingTips.Name = "labRoutingTips";
|
|
||||||
//
|
|
||||||
// cmbdomainStrategy
|
|
||||||
//
|
|
||||||
this.cmbdomainStrategy.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.cmbdomainStrategy.FormattingEnabled = true;
|
|
||||||
this.cmbdomainStrategy.Items.AddRange(new object[] {
|
|
||||||
resources.GetString("cmbdomainStrategy.Items"),
|
|
||||||
resources.GetString("cmbdomainStrategy.Items1"),
|
|
||||||
resources.GetString("cmbdomainStrategy.Items2")});
|
|
||||||
resources.ApplyResources(this.cmbdomainStrategy, "cmbdomainStrategy");
|
|
||||||
this.cmbdomainStrategy.Name = "cmbdomainStrategy";
|
|
||||||
//
|
|
||||||
// label15
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label15, "label15");
|
|
||||||
this.label15.Name = "label15";
|
|
||||||
//
|
//
|
||||||
// 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);
|
||||||
@@ -435,7 +304,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;
|
||||||
//
|
//
|
||||||
@@ -507,22 +375,78 @@
|
|||||||
//
|
//
|
||||||
// tabPage7
|
// tabPage7
|
||||||
//
|
//
|
||||||
|
resources.ApplyResources(this.tabPage7, "tabPage7");
|
||||||
|
this.tabPage7.Controls.Add(this.chkEnableAutoAdjustMainLvColWidth);
|
||||||
|
this.tabPage7.Controls.Add(this.btnSetLoopback);
|
||||||
|
this.tabPage7.Controls.Add(this.txtautoUpdateInterval);
|
||||||
|
this.tabPage7.Controls.Add(this.label15);
|
||||||
|
this.tabPage7.Controls.Add(this.chkIgnoreGeoUpdateCore);
|
||||||
|
this.tabPage7.Controls.Add(this.cmbCoreType);
|
||||||
|
this.tabPage7.Controls.Add(this.label4);
|
||||||
|
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);
|
||||||
this.tabPage7.Controls.Add(this.chkEnableStatistics);
|
this.tabPage7.Controls.Add(this.chkEnableStatistics);
|
||||||
this.tabPage7.Controls.Add(this.chkAllowLANConn);
|
this.tabPage7.Controls.Add(this.chkAllowLANConn);
|
||||||
this.tabPage7.Controls.Add(this.txturlGFWList);
|
|
||||||
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;
|
||||||
//
|
//
|
||||||
|
// chkEnableAutoAdjustMainLvColWidth
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.chkEnableAutoAdjustMainLvColWidth, "chkEnableAutoAdjustMainLvColWidth");
|
||||||
|
this.chkEnableAutoAdjustMainLvColWidth.Name = "chkEnableAutoAdjustMainLvColWidth";
|
||||||
|
this.chkEnableAutoAdjustMainLvColWidth.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// btnSetLoopback
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.btnSetLoopback, "btnSetLoopback");
|
||||||
|
this.btnSetLoopback.Name = "btnSetLoopback";
|
||||||
|
this.btnSetLoopback.UseVisualStyleBackColor = true;
|
||||||
|
this.btnSetLoopback.Click += new System.EventHandler(this.btnSetLoopback_Click);
|
||||||
|
//
|
||||||
|
// txtautoUpdateInterval
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtautoUpdateInterval, "txtautoUpdateInterval");
|
||||||
|
this.txtautoUpdateInterval.Name = "txtautoUpdateInterval";
|
||||||
|
//
|
||||||
|
// label15
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label15, "label15");
|
||||||
|
this.label15.Name = "label15";
|
||||||
|
//
|
||||||
|
// chkIgnoreGeoUpdateCore
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.chkIgnoreGeoUpdateCore, "chkIgnoreGeoUpdateCore");
|
||||||
|
this.chkIgnoreGeoUpdateCore.Name = "chkIgnoreGeoUpdateCore";
|
||||||
|
this.chkIgnoreGeoUpdateCore.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// cmbCoreType
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.cmbCoreType, "cmbCoreType");
|
||||||
|
this.cmbCoreType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbCoreType.FormattingEnabled = true;
|
||||||
|
this.cmbCoreType.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("cmbCoreType.Items"),
|
||||||
|
resources.GetString("cmbCoreType.Items1")});
|
||||||
|
this.cmbCoreType.Name = "cmbCoreType";
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label4, "label4");
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
//
|
||||||
|
// chkKeepOlderDedupl
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.chkKeepOlderDedupl, "chkKeepOlderDedupl");
|
||||||
|
this.chkKeepOlderDedupl.Name = "chkKeepOlderDedupl";
|
||||||
|
this.chkKeepOlderDedupl.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// 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
|
||||||
@@ -542,52 +466,48 @@
|
|||||||
this.chkAllowLANConn.Name = "chkAllowLANConn";
|
this.chkAllowLANConn.Name = "chkAllowLANConn";
|
||||||
this.chkAllowLANConn.UseVisualStyleBackColor = true;
|
this.chkAllowLANConn.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// txturlGFWList
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.txturlGFWList, "txturlGFWList");
|
|
||||||
this.txturlGFWList.Name = "txturlGFWList";
|
|
||||||
//
|
|
||||||
// label13
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.label13, "label13");
|
|
||||||
this.label13.Name = "label13";
|
|
||||||
//
|
|
||||||
// chkAutoRun
|
// chkAutoRun
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.chkAutoRun, "chkAutoRun");
|
resources.ApplyResources(this.chkAutoRun, "chkAutoRun");
|
||||||
this.chkAutoRun.Name = "chkAutoRun";
|
this.chkAutoRun.Name = "chkAutoRun";
|
||||||
this.chkAutoRun.UseVisualStyleBackColor = true;
|
this.chkAutoRun.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// tabPage9
|
// tabPage3
|
||||||
//
|
//
|
||||||
this.tabPage9.Controls.Add(this.txtuserPacRule);
|
resources.ApplyResources(this.tabPage3, "tabPage3");
|
||||||
this.tabPage9.Controls.Add(this.panel4);
|
this.tabPage3.Controls.Add(this.groupBox2);
|
||||||
resources.ApplyResources(this.tabPage9, "tabPage9");
|
this.tabPage3.Name = "tabPage3";
|
||||||
this.tabPage9.Name = "tabPage9";
|
this.tabPage3.UseVisualStyleBackColor = true;
|
||||||
this.tabPage9.UseVisualStyleBackColor = true;
|
|
||||||
//
|
//
|
||||||
// txtuserPacRule
|
// groupBox2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.txtuserPacRule, "txtuserPacRule");
|
resources.ApplyResources(this.groupBox2, "groupBox2");
|
||||||
this.txtuserPacRule.Name = "txtuserPacRule";
|
this.groupBox2.Controls.Add(this.label13);
|
||||||
|
this.groupBox2.Controls.Add(this.label12);
|
||||||
|
this.groupBox2.Controls.Add(this.txtsystemProxyExceptions);
|
||||||
|
this.groupBox2.Name = "groupBox2";
|
||||||
|
this.groupBox2.TabStop = false;
|
||||||
//
|
//
|
||||||
// panel4
|
// label13
|
||||||
//
|
//
|
||||||
this.panel4.Controls.Add(this.label4);
|
resources.ApplyResources(this.label13, "label13");
|
||||||
resources.ApplyResources(this.panel4, "panel4");
|
this.label13.Name = "label13";
|
||||||
this.panel4.Name = "panel4";
|
|
||||||
//
|
//
|
||||||
// label4
|
// label12
|
||||||
//
|
//
|
||||||
this.label4.ForeColor = System.Drawing.Color.Brown;
|
resources.ApplyResources(this.label12, "label12");
|
||||||
resources.ApplyResources(this.label4, "label4");
|
this.label12.Name = "label12";
|
||||||
this.label4.Name = "label4";
|
//
|
||||||
|
// txtsystemProxyExceptions
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtsystemProxyExceptions, "txtsystemProxyExceptions");
|
||||||
|
this.txtsystemProxyExceptions.Name = "txtsystemProxyExceptions";
|
||||||
//
|
//
|
||||||
// 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
|
||||||
@@ -618,24 +538,14 @@
|
|||||||
this.groupBox1.ResumeLayout(false);
|
this.groupBox1.ResumeLayout(false);
|
||||||
this.groupBox1.PerformLayout();
|
this.groupBox1.PerformLayout();
|
||||||
this.tabPage2.ResumeLayout(false);
|
this.tabPage2.ResumeLayout(false);
|
||||||
this.groupBox2.ResumeLayout(false);
|
this.tabPage2.PerformLayout();
|
||||||
this.tabControl2.ResumeLayout(false);
|
|
||||||
this.tabPage3.ResumeLayout(false);
|
|
||||||
this.tabPage3.PerformLayout();
|
|
||||||
this.tabPage4.ResumeLayout(false);
|
|
||||||
this.tabPage4.PerformLayout();
|
|
||||||
this.tabPage5.ResumeLayout(false);
|
|
||||||
this.tabPage5.PerformLayout();
|
|
||||||
this.tabPage8.ResumeLayout(false);
|
|
||||||
this.panel3.ResumeLayout(false);
|
|
||||||
this.panel3.PerformLayout();
|
|
||||||
this.tabPage6.ResumeLayout(false);
|
this.tabPage6.ResumeLayout(false);
|
||||||
this.tabPage6.PerformLayout();
|
this.tabPage6.PerformLayout();
|
||||||
this.tabPage7.ResumeLayout(false);
|
this.tabPage7.ResumeLayout(false);
|
||||||
this.tabPage7.PerformLayout();
|
this.tabPage7.PerformLayout();
|
||||||
this.tabPage9.ResumeLayout(false);
|
this.tabPage3.ResumeLayout(false);
|
||||||
this.tabPage9.PerformLayout();
|
this.groupBox2.ResumeLayout(false);
|
||||||
this.panel4.ResumeLayout(false);
|
this.groupBox2.PerformLayout();
|
||||||
this.panel2.ResumeLayout(false);
|
this.panel2.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
@@ -655,9 +565,7 @@
|
|||||||
private System.Windows.Forms.Panel panel1;
|
private System.Windows.Forms.Panel panel1;
|
||||||
private System.Windows.Forms.TabControl tabControl1;
|
private System.Windows.Forms.TabControl tabControl1;
|
||||||
private System.Windows.Forms.TabPage tabPage1;
|
private System.Windows.Forms.TabPage tabPage1;
|
||||||
private System.Windows.Forms.TabPage tabPage2;
|
|
||||||
private System.Windows.Forms.Panel panel2;
|
private System.Windows.Forms.Panel panel2;
|
||||||
private System.Windows.Forms.GroupBox groupBox2;
|
|
||||||
private System.Windows.Forms.ComboBox cmbprotocol;
|
private System.Windows.Forms.ComboBox cmbprotocol;
|
||||||
private System.Windows.Forms.Label label1;
|
private System.Windows.Forms.Label label1;
|
||||||
private System.Windows.Forms.ComboBox cmbprotocol2;
|
private System.Windows.Forms.ComboBox cmbprotocol2;
|
||||||
@@ -666,14 +574,6 @@
|
|||||||
private System.Windows.Forms.CheckBox chkudpEnabled2;
|
private System.Windows.Forms.CheckBox chkudpEnabled2;
|
||||||
private System.Windows.Forms.CheckBox chkAllowIn2;
|
private System.Windows.Forms.CheckBox chkAllowIn2;
|
||||||
private System.Windows.Forms.CheckBox chkmuxEnabled;
|
private System.Windows.Forms.CheckBox chkmuxEnabled;
|
||||||
private System.Windows.Forms.TabControl tabControl2;
|
|
||||||
private System.Windows.Forms.TabPage tabPage3;
|
|
||||||
private System.Windows.Forms.TabPage tabPage4;
|
|
||||||
private System.Windows.Forms.Label labRoutingTips;
|
|
||||||
private System.Windows.Forms.TextBox txtUseragent;
|
|
||||||
private System.Windows.Forms.TabPage tabPage5;
|
|
||||||
private System.Windows.Forms.TextBox txtUserdirect;
|
|
||||||
private System.Windows.Forms.TextBox txtUserblock;
|
|
||||||
private System.Windows.Forms.TabPage tabPage6;
|
private System.Windows.Forms.TabPage tabPage6;
|
||||||
private System.Windows.Forms.TextBox txtKcpmtu;
|
private System.Windows.Forms.TextBox txtKcpmtu;
|
||||||
private System.Windows.Forms.Label label6;
|
private System.Windows.Forms.Label label6;
|
||||||
@@ -690,27 +590,29 @@
|
|||||||
private System.Windows.Forms.CheckBox chkKcpcongestion;
|
private System.Windows.Forms.CheckBox chkKcpcongestion;
|
||||||
private System.Windows.Forms.TabPage tabPage7;
|
private System.Windows.Forms.TabPage tabPage7;
|
||||||
private System.Windows.Forms.CheckBox chkAutoRun;
|
private System.Windows.Forms.CheckBox chkAutoRun;
|
||||||
private System.Windows.Forms.Label label13;
|
|
||||||
private System.Windows.Forms.TextBox txturlGFWList;
|
|
||||||
private System.Windows.Forms.CheckBox chkAllowLANConn;
|
private System.Windows.Forms.CheckBox chkAllowLANConn;
|
||||||
private System.Windows.Forms.TextBox txtremoteDNS;
|
|
||||||
private System.Windows.Forms.Label label14;
|
|
||||||
private System.Windows.Forms.Panel panel3;
|
|
||||||
private System.Windows.Forms.ComboBox cmbdomainStrategy;
|
|
||||||
private System.Windows.Forms.Label label15;
|
|
||||||
private System.Windows.Forms.ComboBox cmbroutingMode;
|
|
||||||
private System.Windows.Forms.CheckBox chksniffingEnabled;
|
private System.Windows.Forms.CheckBox chksniffingEnabled;
|
||||||
private System.Windows.Forms.CheckBox chksniffingEnabled2;
|
private System.Windows.Forms.CheckBox chksniffingEnabled2;
|
||||||
private System.Windows.Forms.Button btnSetDefRountingRule;
|
|
||||||
private System.Windows.Forms.CheckBox chkEnableStatistics;
|
private System.Windows.Forms.CheckBox chkEnableStatistics;
|
||||||
private System.Windows.Forms.ComboBox cbFreshrate;
|
private System.Windows.Forms.ComboBox cbFreshrate;
|
||||||
private System.Windows.Forms.Label lbFreshrate;
|
private System.Windows.Forms.Label lbFreshrate;
|
||||||
private System.Windows.Forms.Label label16;
|
private System.Windows.Forms.CheckBox chkKeepOlderDedupl;
|
||||||
private System.Windows.Forms.ComboBox cmblistenerType;
|
private System.Windows.Forms.CheckBox chkdefAllowInsecure;
|
||||||
private System.Windows.Forms.TabPage tabPage8;
|
private System.Windows.Forms.TabPage tabPage2;
|
||||||
private System.Windows.Forms.TabPage tabPage9;
|
private System.Windows.Forms.LinkLabel linkDnsObjectDoc;
|
||||||
private System.Windows.Forms.TextBox txtuserPacRule;
|
private System.Windows.Forms.TextBox txtremoteDNS;
|
||||||
private System.Windows.Forms.Panel panel4;
|
private System.Windows.Forms.Label label14;
|
||||||
|
private System.Windows.Forms.ComboBox cmbCoreType;
|
||||||
private System.Windows.Forms.Label label4;
|
private System.Windows.Forms.Label label4;
|
||||||
|
private System.Windows.Forms.CheckBox chkIgnoreGeoUpdateCore;
|
||||||
|
private System.Windows.Forms.TabPage tabPage3;
|
||||||
|
private System.Windows.Forms.TextBox txtsystemProxyExceptions;
|
||||||
|
private System.Windows.Forms.Label label12;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox2;
|
||||||
|
private System.Windows.Forms.Label label13;
|
||||||
|
private System.Windows.Forms.TextBox txtautoUpdateInterval;
|
||||||
|
private System.Windows.Forms.Label label15;
|
||||||
|
private System.Windows.Forms.Button btnSetLoopback;
|
||||||
|
private System.Windows.Forms.CheckBox chkEnableAutoAdjustMainLvColWidth;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,9 @@ using System.Collections.Generic;
|
|||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using v2rayN.Handler;
|
using v2rayN.Handler;
|
||||||
using v2rayN.Base;
|
using v2rayN.Base;
|
||||||
|
using v2rayN.HttpProxyHandler;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace v2rayN.Forms
|
namespace v2rayN.Forms
|
||||||
{
|
{
|
||||||
@@ -17,13 +20,9 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
InitBase();
|
InitBase();
|
||||||
|
|
||||||
InitRouting();
|
|
||||||
|
|
||||||
InitKCP();
|
InitKCP();
|
||||||
|
|
||||||
InitGUI();
|
InitGUI();
|
||||||
|
|
||||||
InitUserPAC();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -67,24 +66,11 @@ namespace v2rayN.Forms
|
|||||||
//remoteDNS
|
//remoteDNS
|
||||||
txtremoteDNS.Text = config.remoteDNS;
|
txtremoteDNS.Text = config.remoteDNS;
|
||||||
|
|
||||||
cmblistenerType.SelectedIndex = config.listenerType;
|
chkdefAllowInsecure.Checked = config.defAllowInsecure;
|
||||||
|
|
||||||
|
txtsystemProxyExceptions.Text = config.systemProxyExceptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 初始化路由设置
|
|
||||||
/// </summary>
|
|
||||||
private void InitRouting()
|
|
||||||
{
|
|
||||||
//路由
|
|
||||||
cmbdomainStrategy.Text = config.domainStrategy;
|
|
||||||
int routingMode = 0;
|
|
||||||
int.TryParse(config.routingMode, out routingMode);
|
|
||||||
cmbroutingMode.SelectedIndex = routingMode;
|
|
||||||
|
|
||||||
txtUseragent.Text = Utils.List2String(config.useragent, true);
|
|
||||||
txtUserdirect.Text = Utils.List2String(config.userdirect, true);
|
|
||||||
txtUserblock.Text = Utils.List2String(config.userblock, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 初始化KCP设置
|
/// 初始化KCP设置
|
||||||
@@ -108,17 +94,11 @@ namespace v2rayN.Forms
|
|||||||
//开机自动启动
|
//开机自动启动
|
||||||
chkAutoRun.Checked = Utils.IsAutoRun();
|
chkAutoRun.Checked = Utils.IsAutoRun();
|
||||||
|
|
||||||
//自定义GFWList
|
|
||||||
txturlGFWList.Text = config.urlGFWList;
|
|
||||||
|
|
||||||
chkAllowLANConn.Checked = config.allowLANConn;
|
chkAllowLANConn.Checked = config.allowLANConn;
|
||||||
|
chkEnableStatistics.Checked = config.enableStatistics;
|
||||||
|
chkKeepOlderDedupl.Checked = config.keepOlderDedupl;
|
||||||
|
|
||||||
|
ComboItem[] cbSource = new ComboItem[]
|
||||||
var enableStatistics = config.enableStatistics;
|
|
||||||
chkEnableStatistics.Checked = enableStatistics;
|
|
||||||
|
|
||||||
|
|
||||||
var cbSource = new ComboItem[]
|
|
||||||
{
|
{
|
||||||
new ComboItem{ID = (int)Global.StatisticsFreshRate.quick, Text = UIRes.I18N("QuickFresh")},
|
new ComboItem{ID = (int)Global.StatisticsFreshRate.quick, Text = UIRes.I18N("QuickFresh")},
|
||||||
new ComboItem{ID = (int)Global.StatisticsFreshRate.medium, Text = UIRes.I18N("MediumFresh")},
|
new ComboItem{ID = (int)Global.StatisticsFreshRate.medium, Text = UIRes.I18N("MediumFresh")},
|
||||||
@@ -142,13 +122,11 @@ namespace v2rayN.Forms
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
chkIgnoreGeoUpdateCore.Checked = config.ignoreGeoUpdateCore;
|
||||||
|
cmbCoreType.SelectedIndex = (int)config.coreType;
|
||||||
|
txtautoUpdateInterval.Text = config.autoUpdateInterval.ToString();
|
||||||
|
chkEnableAutoAdjustMainLvColWidth.Checked = config.uiItem.enableAutoAdjustMainLvColWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InitUserPAC()
|
|
||||||
{
|
|
||||||
txtuserPacRule.Text = Utils.List2String(config.userPacRule, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void btnOK_Click(object sender, EventArgs e)
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (SaveBase() != 0)
|
if (SaveBase() != 0)
|
||||||
@@ -156,10 +134,6 @@ namespace v2rayN.Forms
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SaveRouting() != 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (SaveKCP() != 0)
|
if (SaveKCP() != 0)
|
||||||
{
|
{
|
||||||
@@ -171,18 +145,13 @@ namespace v2rayN.Forms
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SaveUserPAC() != 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ConfigHandler.SaveConfig(ref config) == 0)
|
if (ConfigHandler.SaveConfig(ref config) == 0)
|
||||||
{
|
{
|
||||||
this.DialogResult = DialogResult.OK;
|
this.DialogResult = DialogResult.OK;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UI.Show(UIRes.I18N("OperationFailed"));
|
UI.ShowWarning(UIRes.I18N("OperationFailed"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,6 +183,21 @@ namespace v2rayN.Forms
|
|||||||
UI.Show(UIRes.I18N("PleaseSelectProtocol"));
|
UI.Show(UIRes.I18N("PleaseSelectProtocol"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var remoteDNS = txtremoteDNS.Text.TrimEx();
|
||||||
|
var obj = Utils.ParseJson(remoteDNS);
|
||||||
|
if (obj != null && obj.ContainsKey("servers"))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (remoteDNS.Contains("{") || remoteDNS.Contains("}"))
|
||||||
|
{
|
||||||
|
UI.Show(UIRes.I18N("FillCorrectDNSText"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
config.inbound[0].localPort = Utils.ToInt(localPort);
|
config.inbound[0].localPort = Utils.ToInt(localPort);
|
||||||
config.inbound[0].protocol = protocol;
|
config.inbound[0].protocol = protocol;
|
||||||
config.inbound[0].udpEnabled = udpEnabled;
|
config.inbound[0].udpEnabled = udpEnabled;
|
||||||
@@ -263,34 +247,14 @@ namespace v2rayN.Forms
|
|||||||
//remoteDNS
|
//remoteDNS
|
||||||
config.remoteDNS = txtremoteDNS.Text.TrimEx();
|
config.remoteDNS = txtremoteDNS.Text.TrimEx();
|
||||||
|
|
||||||
config.listenerType = cmblistenerType.SelectedIndex;
|
config.defAllowInsecure = chkdefAllowInsecure.Checked;
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
config.systemProxyExceptions = txtsystemProxyExceptions.Text.TrimEx();
|
||||||
/// 保存路由设置
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
private int SaveRouting()
|
|
||||||
{
|
|
||||||
//路由
|
|
||||||
string domainStrategy = cmbdomainStrategy.Text;
|
|
||||||
string routingMode = cmbroutingMode.SelectedIndex.ToString();
|
|
||||||
|
|
||||||
string useragent = txtUseragent.Text.TrimEx();
|
|
||||||
string userdirect = txtUserdirect.Text.TrimEx();
|
|
||||||
string userblock = txtUserblock.Text.TrimEx();
|
|
||||||
|
|
||||||
config.domainStrategy = domainStrategy;
|
|
||||||
config.routingMode = routingMode;
|
|
||||||
|
|
||||||
config.useragent = Utils.String2List(useragent);
|
|
||||||
config.userdirect = Utils.String2List(userdirect);
|
|
||||||
config.userblock = Utils.String2List(userblock);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 保存KCP设置
|
/// 保存KCP设置
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -335,36 +299,21 @@ namespace v2rayN.Forms
|
|||||||
//开机自动启动
|
//开机自动启动
|
||||||
Utils.SetAutoRun(chkAutoRun.Checked);
|
Utils.SetAutoRun(chkAutoRun.Checked);
|
||||||
|
|
||||||
//自定义GFWList
|
|
||||||
config.urlGFWList = txturlGFWList.Text.TrimEx();
|
|
||||||
|
|
||||||
config.allowLANConn = chkAllowLANConn.Checked;
|
config.allowLANConn = chkAllowLANConn.Checked;
|
||||||
|
|
||||||
var lastEnableStatistics = config.enableStatistics;
|
bool lastEnableStatistics = config.enableStatistics;
|
||||||
config.enableStatistics = chkEnableStatistics.Checked;
|
config.enableStatistics = chkEnableStatistics.Checked;
|
||||||
config.statisticsFreshRate = (int)cbFreshrate.SelectedValue;
|
config.statisticsFreshRate = (int)cbFreshrate.SelectedValue;
|
||||||
|
config.keepOlderDedupl = chkKeepOlderDedupl.Checked;
|
||||||
|
|
||||||
//if(lastEnableStatistics != config.enableStatistics)
|
config.ignoreGeoUpdateCore = chkIgnoreGeoUpdateCore.Checked;
|
||||||
//{
|
config.coreType = (ECoreType)cmbCoreType.SelectedIndex;
|
||||||
// /// https://stackoverflow.com/questions/779405/how-do-i-restart-my-c-sharp-winform-application
|
config.autoUpdateInterval = Utils.ToInt(txtautoUpdateInterval.Text);
|
||||||
// // Shut down the current app instance.
|
config.uiItem.enableAutoAdjustMainLvColWidth = chkEnableAutoAdjustMainLvColWidth.Checked;
|
||||||
// Application.Exit();
|
|
||||||
|
|
||||||
// // Restart the app passing "/restart [processId]" as cmd line args
|
|
||||||
// Process.Start(Application.ExecutablePath, "/restart " + Process.GetCurrentProcess().Id);
|
|
||||||
//}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
private int SaveUserPAC()
|
|
||||||
{
|
|
||||||
string userPacRule = txtuserPacRule.Text.TrimEx();
|
|
||||||
userPacRule = userPacRule.Replace("\"", "");
|
|
||||||
|
|
||||||
config.userPacRule = Utils.String2List(userPacRule);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnClose_Click(object sender, EventArgs e)
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
this.DialogResult = DialogResult.Cancel;
|
this.DialogResult = DialogResult.Cancel;
|
||||||
@@ -382,66 +331,14 @@ namespace v2rayN.Forms
|
|||||||
chkudpEnabled2.Enabled = blAllow2;
|
chkudpEnabled2.Enabled = blAllow2;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnSetDefRountingRule_Click(object sender, EventArgs e)
|
private void linkDnsObjectDoc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
{
|
{
|
||||||
txtUseragent.Text = Utils.GetEmbedText(Global.CustomRoutingFileName + Global.agentTag);
|
Process.Start("https://www.v2fly.org/config/dns.html#dnsobject");
|
||||||
txtUserdirect.Text = Utils.GetEmbedText(Global.CustomRoutingFileName + Global.directTag);
|
|
||||||
txtUserblock.Text = Utils.GetEmbedText(Global.CustomRoutingFileName + Global.blockTag);
|
|
||||||
cmbroutingMode.SelectedIndex = 3;
|
|
||||||
|
|
||||||
var lstUrl = new List<string>();
|
|
||||||
lstUrl.Add(Global.CustomRoutingListUrl + Global.agentTag);
|
|
||||||
lstUrl.Add(Global.CustomRoutingListUrl + Global.directTag);
|
|
||||||
lstUrl.Add(Global.CustomRoutingListUrl + Global.blockTag);
|
|
||||||
|
|
||||||
var lstTxt = new List<TextBox>();
|
|
||||||
lstTxt.Add(txtUseragent);
|
|
||||||
lstTxt.Add(txtUserdirect);
|
|
||||||
lstTxt.Add(txtUserblock);
|
|
||||||
|
|
||||||
for (int k = 0; k < lstUrl.Count; k++)
|
|
||||||
{
|
|
||||||
var txt = lstTxt[k];
|
|
||||||
DownloadHandle downloadHandle = new DownloadHandle();
|
|
||||||
downloadHandle.UpdateCompleted += (sender2, args) =>
|
|
||||||
{
|
|
||||||
if (args.Success)
|
|
||||||
{
|
|
||||||
var result = args.Msg;
|
|
||||||
if (Utils.IsNullOrEmpty(result))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
txt.Text = result;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AppendText(false, args.Msg);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
downloadHandle.Error += (sender2, args) =>
|
|
||||||
{
|
|
||||||
AppendText(true, args.GetException().Message);
|
|
||||||
};
|
|
||||||
|
|
||||||
downloadHandle.WebDownloadString(lstUrl[k]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
void AppendText(bool notify, string text)
|
|
||||||
{
|
|
||||||
labRoutingTips.Text = text;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class ComboItem
|
private void btnSetLoopback_Click(object sender, EventArgs e)
|
||||||
{
|
|
||||||
public int ID
|
|
||||||
{
|
{
|
||||||
get; set;
|
Process.Start(Utils.GetPath("EnableLoopback.exe"));
|
||||||
}
|
|
||||||
public string Text
|
|
||||||
{
|
|
||||||
get; set;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -121,26 +121,11 @@
|
|||||||
<value>取消(&C)</value>
|
<value>取消(&C)</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="label16.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkdefAllowInsecure.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>53, 12</value>
|
<value>324, 16</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label16.Text" xml:space="preserve">
|
<data name="chkdefAllowInsecure.Text" xml:space="preserve">
|
||||||
<value>Http代理</value>
|
<value>传输层安全选tls时,默认跳过证书验证(allowInsecure)</value>
|
||||||
</data>
|
|
||||||
<data name="cmblistenerType.Items" xml:space="preserve">
|
|
||||||
<value>关闭Http代理</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmblistenerType.Items1" xml:space="preserve">
|
|
||||||
<value>开启Http代理,并自动配置代理服务器(全局模式)</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmblistenerType.Items2" xml:space="preserve">
|
|
||||||
<value>开启PAC,并自动配置PAC(PAC模式)</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmblistenerType.Items3" xml:space="preserve">
|
|
||||||
<value>仅开启Http代理,不自动配置代理服务器(直连模式)</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmblistenerType.Items4" xml:space="preserve">
|
|
||||||
<value>仅开启PAC,不自动配置PAC</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="chksniffingEnabled2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chksniffingEnabled2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>96, 16</value>
|
<value>96, 16</value>
|
||||||
@@ -154,14 +139,11 @@
|
|||||||
<data name="chksniffingEnabled.Text" xml:space="preserve">
|
<data name="chksniffingEnabled.Text" xml:space="preserve">
|
||||||
<value>开启流量探测</value>
|
<value>开启流量探测</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label14.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkmuxEnabled.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>191, 12</value>
|
<value>114, 16</value>
|
||||||
</data>
|
|
||||||
<data name="label14.Text" xml:space="preserve">
|
|
||||||
<value>自定义DNS(可多个,用逗号(,)隔开)</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="chkmuxEnabled.Text" xml:space="preserve">
|
<data name="chkmuxEnabled.Text" xml:space="preserve">
|
||||||
<value>开启Mux多路复用(默认开启)</value>
|
<value>开启Mux多路复用</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkAllowIn2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkAllowIn2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>102, 16</value>
|
<value>102, 16</value>
|
||||||
@@ -211,113 +193,75 @@
|
|||||||
<data name="label2.Text" xml:space="preserve">
|
<data name="label2.Text" xml:space="preserve">
|
||||||
<value>本地监听端口</value>
|
<value>本地监听端口</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>648, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>654, 443</value>
|
||||||
|
</data>
|
||||||
<data name="tabPage1.Text" xml:space="preserve">
|
<data name="tabPage1.Text" xml:space="preserve">
|
||||||
<value> Core:基础设置 </value>
|
<value> Core:基础设置 </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtUseragent.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="linkDnsObjectDoc.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>628, 449</value>
|
<value>161, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage3.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="linkDnsObjectDoc.Text" xml:space="preserve">
|
||||||
<value>634, 455</value>
|
<value>支持填写DnsObject,JSON格式</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage3.Text" xml:space="preserve">
|
<data name="label14.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value> 1.代理的Domain或IP </value>
|
<value>191, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtUserdirect.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label14.Text" xml:space="preserve">
|
||||||
<value>628, 449</value>
|
<value>自定义DNS(可多个,用逗号(,)隔开)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage4.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="tabPage2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>634, 455</value>
|
<value>654, 443</value>
|
||||||
</data>
|
|
||||||
<data name="tabPage4.Text" xml:space="preserve">
|
|
||||||
<value> 2.直连的Domain或IP </value>
|
|
||||||
</data>
|
|
||||||
<data name="txtUserblock.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="cmbroutingMode.Items" xml:space="preserve">
|
|
||||||
<value>全局</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbroutingMode.Items1" xml:space="preserve">
|
|
||||||
<value>绕过局域网地址</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbroutingMode.Items2" xml:space="preserve">
|
|
||||||
<value>绕过大陆地址</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbroutingMode.Items3" xml:space="preserve">
|
|
||||||
<value>绕过局域网及大陆地址</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbroutingMode.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>19, 26</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbroutingMode.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>244, 20</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="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>
|
|
||||||
<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 name="btnSetDefRountingRule.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>351, 14</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnSetDefRountingRule.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>201, 23</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnSetDefRountingRule.Text" xml:space="preserve">
|
|
||||||
<value>一键设置默认自定义路由规则</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="labRoutingTips.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="labRoutingTips.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>5, 49</value>
|
|
||||||
</data>
|
|
||||||
<data name="labRoutingTips.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>383, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="labRoutingTips.Text" xml:space="preserve">
|
|
||||||
<value>*设置的规则,用逗号(,)隔开;支持Domain(纯字符串/正则/子域名)和IP</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbdomainStrategy.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>81, 14</value>
|
|
||||||
</data>
|
|
||||||
<data name="cmbdomainStrategy.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>186, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>53, 12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label15.Text" xml:space="preserve">
|
|
||||||
<value>域名策略</value>
|
|
||||||
</data>
|
|
||||||
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>642, 72</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage2.Text" xml:space="preserve">
|
<data name="tabPage2.Text" xml:space="preserve">
|
||||||
<value> Core:路由设置 </value>
|
<value> Core:DNS设置 </value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>654, 443</value>
|
||||||
</data>
|
</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="chkEnableAutoAdjustMainLvColWidth.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>204, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkEnableAutoAdjustMainLvColWidth.Text" xml:space="preserve">
|
||||||
|
<value>自动调整服务器列宽在更新订阅后</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnSetLoopback.Text" xml:space="preserve">
|
||||||
|
<value>解除Windows10 UWP应用回环代理限制</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtautoUpdateInterval.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>255, 156</value>
|
||||||
|
</data>
|
||||||
|
<data name="label15.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>191, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label15.Text" xml:space="preserve">
|
||||||
|
<value>自动更新Geo文件的间隔(单位小时)</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkIgnoreGeoUpdateCore.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>150, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkIgnoreGeoUpdateCore.Text" xml:space="preserve">
|
||||||
|
<value>更新Core时忽略Geo文件</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>53, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Text" xml:space="preserve">
|
||||||
|
<value>Core类型</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkKeepOlderDedupl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>156, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkKeepOlderDedupl.Text" xml:space="preserve">
|
||||||
|
<value>去重时保留序号较小的项</value>
|
||||||
|
</data>
|
||||||
<data name="lbFreshrate.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="lbFreshrate.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>77, 12</value>
|
<value>77, 12</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -325,10 +269,10 @@
|
|||||||
<value>统计刷新频率</value>
|
<value>统计刷新频率</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkEnableStatistics.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkEnableStatistics.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>384, 16</value>
|
<value>372, 16</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkEnableStatistics.Text" xml:space="preserve">
|
<data name="chkEnableStatistics.Text" xml:space="preserve">
|
||||||
<value>启用统计(实时网速显示和使用流量显示,需要重启v2rayN客户端)</value>
|
<value>启用统计(实时网速显示和使用流量显示,需要重启v2rayN客户端)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkAllowLANConn.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkAllowLANConn.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>144, 16</value>
|
<value>144, 16</value>
|
||||||
@@ -336,30 +280,54 @@
|
|||||||
<data name="chkAllowLANConn.Text" xml:space="preserve">
|
<data name="chkAllowLANConn.Text" xml:space="preserve">
|
||||||
<value>允许来自局域网的连接</value>
|
<value>允许来自局域网的连接</value>
|
||||||
</data>
|
</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">
|
<data name="chkAutoRun.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>180, 16</value>
|
<value>180, 16</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkAutoRun.Text" xml:space="preserve">
|
<data name="chkAutoRun.Text" xml:space="preserve">
|
||||||
<value>开机自动启动(可能会不成功)</value>
|
<value>开机自动启动(可能会不成功)</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tabPage7.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>654, 443</value>
|
||||||
|
</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="label4.Text" xml:space="preserve">
|
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>*设置用户PAC规则,用逗号(,)隔开</value>
|
<value>95, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="tabPage9.Text" xml:space="preserve">
|
<data name="label13.Text" xml:space="preserve">
|
||||||
<value> 用户PAC设置 </value>
|
<value>使用分号(;)分隔</value>
|
||||||
|
</data>
|
||||||
|
<data name="label12.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>239, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label12.Text" xml:space="preserve">
|
||||||
|
<value>对于下列字符开头的地址不使用代理服务器:</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>654, 443</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Text" xml:space="preserve">
|
||||||
|
<value>例外</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>654, 443</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage3.Text" xml:space="preserve">
|
||||||
|
<value> 系统代理设置 </value>
|
||||||
|
</data>
|
||||||
|
<data name="tabControl1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>662, 469</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
<value>确定(&O)</value>
|
<value>确定(&O)</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 479</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>662, 539</value>
|
||||||
|
</data>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>参数设置</value>
|
<value>参数设置</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
10
v2rayN/v2rayN/Forms/QRCodeControl.Designer.cs
generated
10
v2rayN/v2rayN/Forms/QRCodeControl.Designer.cs
generated
@@ -31,7 +31,6 @@
|
|||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(QRCodeControl));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(QRCodeControl));
|
||||||
this.txtUrl = new System.Windows.Forms.TextBox();
|
this.txtUrl = new System.Windows.Forms.TextBox();
|
||||||
this.picQRCode = new System.Windows.Forms.PictureBox();
|
this.picQRCode = new System.Windows.Forms.PictureBox();
|
||||||
this.chkShow = new System.Windows.Forms.CheckBox();
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.picQRCode)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.picQRCode)).BeginInit();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
@@ -47,20 +46,12 @@
|
|||||||
this.picQRCode.Name = "picQRCode";
|
this.picQRCode.Name = "picQRCode";
|
||||||
this.picQRCode.TabStop = false;
|
this.picQRCode.TabStop = false;
|
||||||
//
|
//
|
||||||
// chkShow
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.chkShow, "chkShow");
|
|
||||||
this.chkShow.Name = "chkShow";
|
|
||||||
this.chkShow.UseVisualStyleBackColor = true;
|
|
||||||
this.chkShow.CheckedChanged += new System.EventHandler(this.chkShow_CheckedChanged);
|
|
||||||
//
|
|
||||||
// QRCodeControl
|
// QRCodeControl
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.Controls.Add(this.picQRCode);
|
this.Controls.Add(this.picQRCode);
|
||||||
this.Controls.Add(this.txtUrl);
|
this.Controls.Add(this.txtUrl);
|
||||||
this.Controls.Add(this.chkShow);
|
|
||||||
this.Name = "QRCodeControl";
|
this.Name = "QRCodeControl";
|
||||||
this.Load += new System.EventHandler(this.QRCodeControl_Load);
|
this.Load += new System.EventHandler(this.QRCodeControl_Load);
|
||||||
((System.ComponentModel.ISupportInitialize)(this.picQRCode)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.picQRCode)).EndInit();
|
||||||
@@ -73,6 +64,5 @@
|
|||||||
|
|
||||||
private System.Windows.Forms.TextBox txtUrl;
|
private System.Windows.Forms.TextBox txtUrl;
|
||||||
private System.Windows.Forms.PictureBox picQRCode;
|
private System.Windows.Forms.PictureBox picQRCode;
|
||||||
private System.Windows.Forms.CheckBox chkShow;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
private void QRCodeControl_Load(object sender, System.EventArgs e)
|
private void QRCodeControl_Load(object sender, System.EventArgs e)
|
||||||
{
|
{
|
||||||
chkShow_CheckedChanged(null, null);
|
|
||||||
txtUrl.MouseUp += txtUrl_MouseUp;
|
txtUrl.MouseUp += txtUrl_MouseUp;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,23 +24,16 @@ namespace v2rayN.Forms
|
|||||||
{
|
{
|
||||||
if (Index >= 0)
|
if (Index >= 0)
|
||||||
{
|
{
|
||||||
string url = ConfigHandler.GetVmessQRCode(config, Index);
|
string url = ShareHandler.GetShareUrl(config, Index);
|
||||||
if (Utils.IsNullOrEmpty(url))
|
if (Utils.IsNullOrEmpty(url))
|
||||||
{
|
{
|
||||||
picQRCode.Image = null;
|
picQRCode.Image = null;
|
||||||
txtUrl.Text = string.Empty;
|
txtUrl.Text = string.Empty;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
picQRCode.Image = QRCodeHelper.GetQRCode(url);
|
|
||||||
txtUrl.Text = url;
|
txtUrl.Text = url;
|
||||||
|
picQRCode.Image = QRCodeHelper.GetQRCode(url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void chkShow_CheckedChanged(object sender, System.EventArgs e)
|
|
||||||
{
|
|
||||||
picQRCode.Visible =
|
|
||||||
txtUrl.Visible = chkShow.Checked;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,106 +117,76 @@
|
|||||||
<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=">>picQRCode.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
|
||||||
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>356, 441</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkShow.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 0</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="txtUrl.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkShow.Text" xml:space="preserve">
|
|
||||||
<value>Show shared content</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>$this.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="chkShow.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>356, 16</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
|
||||||
<value>QRCodeControl</value>
|
|
||||||
</data>
|
|
||||||
<data name="picQRCode.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>356, 355</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtUrl.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 371</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>chkShow.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>picQRCode.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="txtUrl.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="txtUrl.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Bottom</value>
|
<value>Bottom</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="picQRCode.TabIndex" type="System.Int32, mscorlib">
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<value>24</value>
|
<data name="txtUrl.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
</data>
|
<value>0, 371</value>
|
||||||
<data name="chkShow.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Top</value>
|
|
||||||
</data>
|
|
||||||
<data name="picQRCode.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="txtUrl.Multiline" type="System.Boolean, mscorlib">
|
<data name="txtUrl.Multiline" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="picQRCode.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
|
|
||||||
<value>Zoom</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtUrl.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtUrl.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>chkShow.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name="picQRCode.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 16</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtUrl.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>chkShow.Name" xml:space="preserve">
|
|
||||||
<value>chkShow</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>picQRCode.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtUrl.Name" xml:space="preserve">
|
|
||||||
<value>txtUrl</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>chkShow.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>picQRCode.Name" xml:space="preserve">
|
|
||||||
<value>picQRCode</value>
|
|
||||||
</data>
|
|
||||||
<data name="txtUrl.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtUrl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>356, 70</value>
|
<value>356, 70</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkShow.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtUrl.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>25</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
<data name=">>txtUrl.Name" xml:space="preserve">
|
||||||
<value>6, 12</value>
|
<value>txtUrl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkShow.AutoSize" type="System.Boolean, mscorlib">
|
<data name=">>txtUrl.Type" xml:space="preserve">
|
||||||
<value>True</value>
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUrl.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUrl.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="picQRCode.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="picQRCode.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="picQRCode.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>356, 371</value>
|
||||||
|
</data>
|
||||||
|
<data name="picQRCode.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
|
||||||
|
<value>Zoom</value>
|
||||||
|
</data>
|
||||||
|
<data name="picQRCode.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>24</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>picQRCode.Name" xml:space="preserve">
|
||||||
|
<value>picQRCode</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>picQRCode.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>picQRCode.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>picQRCode.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>356, 441</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>QRCodeControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -117,7 +117,4 @@
|
|||||||
<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="chkShow.Text" xml:space="preserve">
|
|
||||||
<value>显示分享内容</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
170
v2rayN/v2rayN/Forms/RoutingRuleQuicklyAddForm.Designer.cs
generated
Normal file
170
v2rayN/v2rayN/Forms/RoutingRuleQuicklyAddForm.Designer.cs
generated
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
partial class RoutingRuleQuicklyAddForm
|
||||||
|
{
|
||||||
|
/// <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(RoutingRuleQuicklyAddForm));
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.panel3 = new System.Windows.Forms.Panel();
|
||||||
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
|
this.cmbOutboundTag = new System.Windows.Forms.ComboBox();
|
||||||
|
this.panel4 = new System.Windows.Forms.Panel();
|
||||||
|
this.btnClose = new System.Windows.Forms.Button();
|
||||||
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtIP = new System.Windows.Forms.TextBox();
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtDomain = new System.Windows.Forms.TextBox();
|
||||||
|
this.panel3.SuspendLayout();
|
||||||
|
this.panel4.SuspendLayout();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.groupBox2.SuspendLayout();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel1, "panel1");
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
//
|
||||||
|
// panel3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel3, "panel3");
|
||||||
|
this.panel3.Controls.Add(this.label4);
|
||||||
|
this.panel3.Controls.Add(this.cmbOutboundTag);
|
||||||
|
this.panel3.Name = "panel3";
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label4, "label4");
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
//
|
||||||
|
// cmbOutboundTag
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.cmbOutboundTag, "cmbOutboundTag");
|
||||||
|
this.cmbOutboundTag.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbOutboundTag.FormattingEnabled = true;
|
||||||
|
this.cmbOutboundTag.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("cmbOutboundTag.Items"),
|
||||||
|
resources.GetString("cmbOutboundTag.Items1"),
|
||||||
|
resources.GetString("cmbOutboundTag.Items2")});
|
||||||
|
this.cmbOutboundTag.Name = "cmbOutboundTag";
|
||||||
|
//
|
||||||
|
// panel4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel4, "panel4");
|
||||||
|
this.panel4.Controls.Add(this.btnClose);
|
||||||
|
this.panel4.Controls.Add(this.btnOK);
|
||||||
|
this.panel4.Name = "panel4";
|
||||||
|
//
|
||||||
|
// 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);
|
||||||
|
//
|
||||||
|
// btnOK
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.btnOK, "btnOK");
|
||||||
|
this.btnOK.Name = "btnOK";
|
||||||
|
this.btnOK.UseVisualStyleBackColor = true;
|
||||||
|
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
|
this.panel2.Controls.Add(this.groupBox2);
|
||||||
|
this.panel2.Controls.Add(this.groupBox1);
|
||||||
|
this.panel2.Name = "panel2";
|
||||||
|
//
|
||||||
|
// groupBox2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.groupBox2, "groupBox2");
|
||||||
|
this.groupBox2.Controls.Add(this.txtIP);
|
||||||
|
this.groupBox2.Name = "groupBox2";
|
||||||
|
this.groupBox2.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtIP
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtIP, "txtIP");
|
||||||
|
this.txtIP.Name = "txtIP";
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Controls.Add(this.txtDomain);
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtDomain
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtDomain, "txtDomain");
|
||||||
|
this.txtDomain.Name = "txtDomain";
|
||||||
|
//
|
||||||
|
// RoutingRuleQuicklyAddForm
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.CancelButton = this.btnClose;
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Controls.Add(this.panel4);
|
||||||
|
this.Controls.Add(this.panel3);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Name = "RoutingRuleQuicklyAddForm";
|
||||||
|
this.Load += new System.EventHandler(this.RoutingRuleQuicklyAddForm_Load);
|
||||||
|
this.panel3.ResumeLayout(false);
|
||||||
|
this.panel3.PerformLayout();
|
||||||
|
this.panel4.ResumeLayout(false);
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
|
this.groupBox2.ResumeLayout(false);
|
||||||
|
this.groupBox2.PerformLayout();
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.groupBox1.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private System.Windows.Forms.Panel panel3;
|
||||||
|
private System.Windows.Forms.Label label4;
|
||||||
|
private System.Windows.Forms.ComboBox cmbOutboundTag;
|
||||||
|
private System.Windows.Forms.Panel panel4;
|
||||||
|
private System.Windows.Forms.Button btnClose;
|
||||||
|
private System.Windows.Forms.Button btnOK;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
|
private System.Windows.Forms.TextBox txtDomain;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox2;
|
||||||
|
private System.Windows.Forms.TextBox txtIP;
|
||||||
|
}
|
||||||
|
}
|
||||||
73
v2rayN/v2rayN/Forms/RoutingRuleQuicklyAddForm.cs
Normal file
73
v2rayN/v2rayN/Forms/RoutingRuleQuicklyAddForm.cs
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
using System;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using v2rayN.Handler;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
public partial class RoutingRuleQuicklyAddForm : BaseForm
|
||||||
|
{
|
||||||
|
public string domain
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
private RulesItem rulesItem;
|
||||||
|
|
||||||
|
public RoutingRuleQuicklyAddForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RoutingRuleQuicklyAddForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
rulesItem = new RulesItem();
|
||||||
|
ClearBind();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void EndBindingData()
|
||||||
|
{
|
||||||
|
if (rulesItem != null)
|
||||||
|
{
|
||||||
|
rulesItem.outboundTag = cmbOutboundTag.Text;
|
||||||
|
rulesItem.domain = Utils.String2List(txtDomain.Text);
|
||||||
|
rulesItem.ip = Utils.String2List(txtIP.Text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ClearBind()
|
||||||
|
{
|
||||||
|
cmbOutboundTag.Text = Global.agentTag;
|
||||||
|
txtDomain.Text = domain;
|
||||||
|
}
|
||||||
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
EndBindingData();
|
||||||
|
var hasRule = false;
|
||||||
|
if (rulesItem.domain != null && rulesItem.domain.Count > 0)
|
||||||
|
{
|
||||||
|
hasRule = true;
|
||||||
|
}
|
||||||
|
if (rulesItem.ip != null && rulesItem.ip.Count > 0)
|
||||||
|
{
|
||||||
|
hasRule = true;
|
||||||
|
}
|
||||||
|
if (!hasRule)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (ConfigHandler.InsertRoutingRuleItem(ref config, rulesItem) == 0)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UI.ShowWarning(UIRes.I18N("OperationFailed"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.Cancel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
462
v2rayN/v2rayN/Forms/RoutingRuleQuicklyAddForm.resx
Normal file
462
v2rayN/v2rayN/Forms/RoutingRuleQuicklyAddForm.resx
Normal file
@@ -0,0 +1,462 @@
|
|||||||
|
<?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=">>txtIP.Name" xml:space="preserve">
|
||||||
|
<value>txtIP</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="panel3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="cmbOutboundTag.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>119, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel4.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>3, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>220, 207</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel4.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Name" xml:space="preserve">
|
||||||
|
<value>btnOK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>RoutingRuleQuicklyAddForm</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel4.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 288</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel4.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>32</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Parent" xml:space="preserve">
|
||||||
|
<value>panel4</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Items" xml:space="preserve">
|
||||||
|
<value>proxy</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Left</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>24</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>506, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>11</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Name" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>Domain</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Name" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>31</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbOutboundTag.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>506, 51</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.Name" xml:space="preserve">
|
||||||
|
<value>txtDomain</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbOutboundTag.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Top</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel4.Name" xml:space="preserve">
|
||||||
|
<value>panel4</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Text" xml:space="preserve">
|
||||||
|
<value>IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>280, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>3, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Name" xml:space="preserve">
|
||||||
|
<value>label4</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Text" xml:space="preserve">
|
||||||
|
<value>outboundTag</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Name" xml:space="preserve">
|
||||||
|
<value>btnClose</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Items2" xml:space="preserve">
|
||||||
|
<value>block</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Items1" xml:space="preserve">
|
||||||
|
<value>direct</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>305, 25</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Top</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>506, 227</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>280, 227</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>&OK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbOutboundTag.Name" xml:space="preserve">
|
||||||
|
<value>cmbOutboundTag</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>506, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbOutboundTag.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>&Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>226, 227</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>107, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>RoutingRuleQuicklyAddForm</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Name" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>19, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>71, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Parent" xml:space="preserve">
|
||||||
|
<value>panel4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Name" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Name" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 61</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel4.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>274, 207</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>506, 348</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>25</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>398, 25</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>zh-Hans</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
||||||
132
v2rayN/v2rayN/Forms/RoutingRuleQuicklyAddForm.zh-Hans.resx
Normal file
132
v2rayN/v2rayN/Forms/RoutingRuleQuicklyAddForm.zh-Hans.resx
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
<?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="label4.Text" xml:space="preserve">
|
||||||
|
<value>OutboundTag</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>取消(&C)</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>快速添加路由规则</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
249
v2rayN/v2rayN/Forms/RoutingRuleSettingDetailsForm.Designer.cs
generated
Normal file
249
v2rayN/v2rayN/Forms/RoutingRuleSettingDetailsForm.Designer.cs
generated
Normal file
@@ -0,0 +1,249 @@
|
|||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
partial class RoutingRuleSettingDetailsForm
|
||||||
|
{
|
||||||
|
/// <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(RoutingRuleSettingDetailsForm));
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.panel3 = new System.Windows.Forms.Panel();
|
||||||
|
this.chkEnabled = new System.Windows.Forms.CheckBox();
|
||||||
|
this.clbInboundTag = new System.Windows.Forms.CheckedListBox();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.clbProtocol = new System.Windows.Forms.CheckedListBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.txtPort = new System.Windows.Forms.TextBox();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.labRoutingTips = new System.Windows.Forms.Label();
|
||||||
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
|
this.cmbOutboundTag = new System.Windows.Forms.ComboBox();
|
||||||
|
this.panel4 = new System.Windows.Forms.Panel();
|
||||||
|
this.btnClose = new System.Windows.Forms.Button();
|
||||||
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtIP = new System.Windows.Forms.TextBox();
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtDomain = new System.Windows.Forms.TextBox();
|
||||||
|
this.panel3.SuspendLayout();
|
||||||
|
this.panel4.SuspendLayout();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.groupBox2.SuspendLayout();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel1, "panel1");
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
//
|
||||||
|
// panel3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel3, "panel3");
|
||||||
|
this.panel3.Controls.Add(this.chkEnabled);
|
||||||
|
this.panel3.Controls.Add(this.clbInboundTag);
|
||||||
|
this.panel3.Controls.Add(this.label2);
|
||||||
|
this.panel3.Controls.Add(this.clbProtocol);
|
||||||
|
this.panel3.Controls.Add(this.label3);
|
||||||
|
this.panel3.Controls.Add(this.txtPort);
|
||||||
|
this.panel3.Controls.Add(this.label1);
|
||||||
|
this.panel3.Controls.Add(this.labRoutingTips);
|
||||||
|
this.panel3.Controls.Add(this.label4);
|
||||||
|
this.panel3.Controls.Add(this.cmbOutboundTag);
|
||||||
|
this.panel3.Name = "panel3";
|
||||||
|
//
|
||||||
|
// chkEnabled
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.chkEnabled, "chkEnabled");
|
||||||
|
this.chkEnabled.Name = "chkEnabled";
|
||||||
|
this.chkEnabled.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// clbInboundTag
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.clbInboundTag, "clbInboundTag");
|
||||||
|
this.clbInboundTag.CheckOnClick = true;
|
||||||
|
this.clbInboundTag.FormattingEnabled = true;
|
||||||
|
this.clbInboundTag.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("clbInboundTag.Items"),
|
||||||
|
resources.GetString("clbInboundTag.Items1")});
|
||||||
|
this.clbInboundTag.MultiColumn = true;
|
||||||
|
this.clbInboundTag.Name = "clbInboundTag";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label2, "label2");
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
//
|
||||||
|
// clbProtocol
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.clbProtocol, "clbProtocol");
|
||||||
|
this.clbProtocol.CheckOnClick = true;
|
||||||
|
this.clbProtocol.FormattingEnabled = true;
|
||||||
|
this.clbProtocol.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("clbProtocol.Items"),
|
||||||
|
resources.GetString("clbProtocol.Items1"),
|
||||||
|
resources.GetString("clbProtocol.Items2")});
|
||||||
|
this.clbProtocol.MultiColumn = true;
|
||||||
|
this.clbProtocol.Name = "clbProtocol";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label3, "label3");
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
//
|
||||||
|
// txtPort
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtPort, "txtPort");
|
||||||
|
this.txtPort.Name = "txtPort";
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label1, "label1");
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
//
|
||||||
|
// labRoutingTips
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labRoutingTips, "labRoutingTips");
|
||||||
|
this.labRoutingTips.ForeColor = System.Drawing.Color.Brown;
|
||||||
|
this.labRoutingTips.Name = "labRoutingTips";
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label4, "label4");
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
//
|
||||||
|
// cmbOutboundTag
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.cmbOutboundTag, "cmbOutboundTag");
|
||||||
|
this.cmbOutboundTag.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbOutboundTag.FormattingEnabled = true;
|
||||||
|
this.cmbOutboundTag.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("cmbOutboundTag.Items"),
|
||||||
|
resources.GetString("cmbOutboundTag.Items1"),
|
||||||
|
resources.GetString("cmbOutboundTag.Items2")});
|
||||||
|
this.cmbOutboundTag.Name = "cmbOutboundTag";
|
||||||
|
//
|
||||||
|
// panel4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel4, "panel4");
|
||||||
|
this.panel4.Controls.Add(this.btnClose);
|
||||||
|
this.panel4.Controls.Add(this.btnOK);
|
||||||
|
this.panel4.Name = "panel4";
|
||||||
|
//
|
||||||
|
// 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);
|
||||||
|
//
|
||||||
|
// btnOK
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.btnOK, "btnOK");
|
||||||
|
this.btnOK.Name = "btnOK";
|
||||||
|
this.btnOK.UseVisualStyleBackColor = true;
|
||||||
|
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
|
this.panel2.Controls.Add(this.groupBox2);
|
||||||
|
this.panel2.Controls.Add(this.groupBox1);
|
||||||
|
this.panel2.Name = "panel2";
|
||||||
|
//
|
||||||
|
// groupBox2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.groupBox2, "groupBox2");
|
||||||
|
this.groupBox2.Controls.Add(this.txtIP);
|
||||||
|
this.groupBox2.Name = "groupBox2";
|
||||||
|
this.groupBox2.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtIP
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtIP, "txtIP");
|
||||||
|
this.txtIP.Name = "txtIP";
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Controls.Add(this.txtDomain);
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtDomain
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtDomain, "txtDomain");
|
||||||
|
this.txtDomain.Name = "txtDomain";
|
||||||
|
//
|
||||||
|
// RoutingRuleSettingDetailsForm
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.CancelButton = this.btnClose;
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Controls.Add(this.panel4);
|
||||||
|
this.Controls.Add(this.panel3);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Name = "RoutingRuleSettingDetailsForm";
|
||||||
|
this.Load += new System.EventHandler(this.RoutingRuleSettingDetailsForm_Load);
|
||||||
|
this.panel3.ResumeLayout(false);
|
||||||
|
this.panel3.PerformLayout();
|
||||||
|
this.panel4.ResumeLayout(false);
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
|
this.groupBox2.ResumeLayout(false);
|
||||||
|
this.groupBox2.PerformLayout();
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.groupBox1.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private System.Windows.Forms.Panel panel3;
|
||||||
|
private System.Windows.Forms.Label label4;
|
||||||
|
private System.Windows.Forms.ComboBox cmbOutboundTag;
|
||||||
|
private System.Windows.Forms.Panel panel4;
|
||||||
|
private System.Windows.Forms.Button btnClose;
|
||||||
|
private System.Windows.Forms.Button btnOK;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
|
private System.Windows.Forms.TextBox txtDomain;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox2;
|
||||||
|
private System.Windows.Forms.TextBox txtIP;
|
||||||
|
private System.Windows.Forms.Label labRoutingTips;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.TextBox txtPort;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.CheckedListBox clbProtocol;
|
||||||
|
private System.Windows.Forms.CheckedListBox clbInboundTag;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.CheckBox chkEnabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
139
v2rayN/v2rayN/Forms/RoutingRuleSettingDetailsForm.cs
Normal file
139
v2rayN/v2rayN/Forms/RoutingRuleSettingDetailsForm.cs
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using v2rayN.Base;
|
||||||
|
using v2rayN.Handler;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
public partial class RoutingRuleSettingDetailsForm : BaseForm
|
||||||
|
{
|
||||||
|
public RulesItem rulesItem
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RoutingRuleSettingDetailsForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RoutingRuleSettingDetailsForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (Utils.IsNullOrEmpty(rulesItem.outboundTag))
|
||||||
|
{
|
||||||
|
ClearBind();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BindingData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void EndBindingData()
|
||||||
|
{
|
||||||
|
if (rulesItem != null)
|
||||||
|
{
|
||||||
|
rulesItem.port = txtPort.Text.TrimEx();
|
||||||
|
|
||||||
|
var inboundTag = new List<String>();
|
||||||
|
for (int i = 0; i < clbInboundTag.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if (clbInboundTag.GetItemChecked(i))
|
||||||
|
{
|
||||||
|
inboundTag.Add(clbInboundTag.Items[i].ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rulesItem.inboundTag = inboundTag;
|
||||||
|
rulesItem.outboundTag = cmbOutboundTag.Text;
|
||||||
|
rulesItem.domain = Utils.String2List(txtDomain.Text);
|
||||||
|
rulesItem.ip = Utils.String2List(txtIP.Text);
|
||||||
|
|
||||||
|
var protocol = new List<string>();
|
||||||
|
for (int i = 0; i < clbProtocol.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if (clbProtocol.GetItemChecked(i))
|
||||||
|
{
|
||||||
|
protocol.Add(clbProtocol.Items[i].ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rulesItem.protocol = protocol;
|
||||||
|
rulesItem.enabled = chkEnabled.Checked;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void BindingData()
|
||||||
|
{
|
||||||
|
if (rulesItem != null)
|
||||||
|
{
|
||||||
|
txtPort.Text = rulesItem.port ?? string.Empty;
|
||||||
|
cmbOutboundTag.Text = rulesItem.outboundTag;
|
||||||
|
txtDomain.Text = Utils.List2String(rulesItem.domain, true);
|
||||||
|
txtIP.Text = Utils.List2String(rulesItem.ip, true);
|
||||||
|
|
||||||
|
if (rulesItem.inboundTag != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < clbInboundTag.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if (rulesItem.inboundTag.Contains(clbInboundTag.Items[i].ToString()))
|
||||||
|
{
|
||||||
|
clbInboundTag.SetItemChecked(i, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rulesItem.protocol != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < clbProtocol.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if (rulesItem.protocol.Contains(clbProtocol.Items[i].ToString()))
|
||||||
|
{
|
||||||
|
clbProtocol.SetItemChecked(i, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
chkEnabled.Checked = rulesItem.enabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void ClearBind()
|
||||||
|
{
|
||||||
|
txtPort.Text = string.Empty;
|
||||||
|
cmbOutboundTag.Text = Global.agentTag;
|
||||||
|
txtDomain.Text = string.Empty;
|
||||||
|
txtIP.Text = string.Empty;
|
||||||
|
chkEnabled.Checked = true;
|
||||||
|
}
|
||||||
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
EndBindingData();
|
||||||
|
var hasRule = false;
|
||||||
|
if (rulesItem.domain != null && rulesItem.domain.Count > 0)
|
||||||
|
{
|
||||||
|
hasRule = true;
|
||||||
|
}
|
||||||
|
if (rulesItem.ip != null && rulesItem.ip.Count > 0)
|
||||||
|
{
|
||||||
|
hasRule = true;
|
||||||
|
}
|
||||||
|
if (rulesItem.protocol != null && rulesItem.protocol.Count > 0)
|
||||||
|
{
|
||||||
|
hasRule = true;
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(rulesItem.port))
|
||||||
|
{
|
||||||
|
hasRule = true;
|
||||||
|
}
|
||||||
|
if (!hasRule)
|
||||||
|
{
|
||||||
|
UI.ShowWarning(string.Format(UIRes.I18N("RoutingRuleDetailRequiredTips"), "Port/Protocol/Domain/IP"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.Cancel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
693
v2rayN/v2rayN/Forms/RoutingRuleSettingDetailsForm.resx
Normal file
693
v2rayN/v2rayN/Forms/RoutingRuleSettingDetailsForm.resx
Normal file
@@ -0,0 +1,693 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>53, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbInboundTag.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>32</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>245, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.ColumnWidth" type="System.Int32, mscorlib">
|
||||||
|
<value>80</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>31</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Items" xml:space="preserve">
|
||||||
|
<value>proxy</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>4, 4, 4, 4</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Name" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbProtocol.Name" xml:space="preserve">
|
||||||
|
<value>clbProtocol</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Protocol</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRoutingTips.ZOrder" xml:space="preserve">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbProtocol.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Left</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbInboundTag.ColumnWidth" type="System.Int32, mscorlib">
|
||||||
|
<value>80</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbInboundTag.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbInboundTag.Items1" xml:space="preserve">
|
||||||
|
<value>http</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Items1" xml:space="preserve">
|
||||||
|
<value>tls</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>RoutingSettingDetailsForm</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbProtocol.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>411, 15</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>119, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>36</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel4.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>344, 375</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRoutingTips.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>598, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRoutingTips.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
|
<value>label1</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>742, 395</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbOutboundTag.ZOrder" xml:space="preserve">
|
||||||
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>chkEnabled.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Name" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Parent" xml:space="preserve">
|
||||||
|
<value>panel4</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Items2" xml:space="preserve">
|
||||||
|
<value>bittorrent</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbInboundTag.Items" xml:space="preserve">
|
||||||
|
<value>socks</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>chkEnabled.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRoutingTips.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>19, 82</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>25</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbInboundTag.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>347, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>3, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRoutingTips.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>19, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRoutingTips.Name" xml:space="preserve">
|
||||||
|
<value>labRoutingTips</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>19, 47</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>39</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Name" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>RoutingRuleSettingDetailsForm</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Name" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>107, 43</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Name" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.ZOrder" xml:space="preserve">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>386, 375</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbOutboundTag.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbOutboundTag.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel4.Name" xml:space="preserve">
|
||||||
|
<value>panel4</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Top</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkEnabled.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>42</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel4.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Items" xml:space="preserve">
|
||||||
|
<value>http</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Name" xml:space="preserve">
|
||||||
|
<value>txtPort</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>3, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel4.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>742, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>24</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>Port</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkEnabled.Text" xml:space="preserve">
|
||||||
|
<value>Enable</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Name" xml:space="preserve">
|
||||||
|
<value>label4</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>&OK</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRoutingTips.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Parent" xml:space="preserve">
|
||||||
|
<value>panel4</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>34</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>274, 47</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>40</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Items2" xml:space="preserve">
|
||||||
|
<value>block</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRoutingTips.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>33</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>347, 43</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Name" xml:space="preserve">
|
||||||
|
<value>btnOK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>119, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>11</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Name" xml:space="preserve">
|
||||||
|
<value>label3</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>inboundTag</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Top</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>742, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 121</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel4.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRoutingTips.Text" xml:space="preserve">
|
||||||
|
<value>*Set the rules, separated by commas (,); The comma in the regular is replaced by <COMMA></value>
|
||||||
|
</data>
|
||||||
|
<data name="clbInboundTag.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>245, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Name" xml:space="preserve">
|
||||||
|
<value>btnClose</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>392, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>742, 111</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>chkEnabled.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkEnabled.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>617, 19</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkEnabled.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.Name" xml:space="preserve">
|
||||||
|
<value>txtIP</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Items1" xml:space="preserve">
|
||||||
|
<value>direct</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Name" xml:space="preserve">
|
||||||
|
<value>label2</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkEnabled.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>60, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbOutboundTag.Name" xml:space="preserve">
|
||||||
|
<value>cmbOutboundTag</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>chkEnabled.Name" xml:space="preserve">
|
||||||
|
<value>chkEnabled</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>274, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>742, 576</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel4.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>392, 395</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbInboundTag.Name" xml:space="preserve">
|
||||||
|
<value>clbInboundTag</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>&Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkEnabled.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.Name" xml:space="preserve">
|
||||||
|
<value>txtDomain</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbInboundTag.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>41</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Text" xml:space="preserve">
|
||||||
|
<value>IP</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbInboundTag.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 516</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>71, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>350, 395</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbProtocol.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>Domain</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>504, 15</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>107, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Text" xml:space="preserve">
|
||||||
|
<value>outboundTag</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>35</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
||||||
173
v2rayN/v2rayN/Forms/RoutingRuleSettingDetailsForm.zh-Hans.resx
Normal file
173
v2rayN/v2rayN/Forms/RoutingRuleSettingDetailsForm.zh-Hans.resx
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="chkEnabled.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>670, 18</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbInboundTag.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>372, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbInboundTag.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>272, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>279, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>372, 46</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>272, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>279, 50</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>120, 46</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>19, 50</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRoutingTips.Text" xml:space="preserve">
|
||||||
|
<value>*设置的路由规则,用逗号(,)分隔;正则中的逗号用<COMMA>替代</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Text" xml:space="preserve">
|
||||||
|
<value>OutboundTag</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>120, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>取消(&C)</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="txtIP.ScrollBars" type="System.Windows.Forms.ScrollBars, System.Windows.Forms">
|
||||||
|
<value>Vertical</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.ScrollBars" type="System.Windows.Forms.ScrollBars, System.Windows.Forms">
|
||||||
|
<value>Vertical</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>路由规则详情设置</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
357
v2rayN/v2rayN/Forms/RoutingRuleSettingForm.Designer.cs
generated
Normal file
357
v2rayN/v2rayN/Forms/RoutingRuleSettingForm.Designer.cs
generated
Normal file
@@ -0,0 +1,357 @@
|
|||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
partial class RoutingRuleSettingForm
|
||||||
|
{
|
||||||
|
/// <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()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RoutingRuleSettingForm));
|
||||||
|
this.btnClose = new System.Windows.Forms.Button();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.label5 = new System.Windows.Forms.Label();
|
||||||
|
this.btnBrowse = new System.Windows.Forms.Button();
|
||||||
|
this.txtCustomIcon = new System.Windows.Forms.TextBox();
|
||||||
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.txtUrl = new System.Windows.Forms.TextBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.txtRemarks = new System.Windows.Forms.TextBox();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.lvRoutings = new v2rayN.Base.ListViewFlickerFree();
|
||||||
|
this.cmsLv = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
|
this.menuAdd = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuRemove = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuSelectAll = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuExportSelectedRules = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.menuMoveTop = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuMoveUp = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuMoveDown = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuMoveBottom = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.MenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.tabControl2 = new System.Windows.Forms.TabControl();
|
||||||
|
this.tabPage2 = new System.Windows.Forms.TabPage();
|
||||||
|
this.menuServer = new System.Windows.Forms.MenuStrip();
|
||||||
|
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuImportRulesFromFile = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuImportRulesFromClipboard = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuImportRulesFromUrl = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
this.cmsLv.SuspendLayout();
|
||||||
|
this.tabControl2.SuspendLayout();
|
||||||
|
this.tabPage2.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);
|
||||||
|
//
|
||||||
|
// 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.Controls.Add(this.label5);
|
||||||
|
this.panel1.Controls.Add(this.btnBrowse);
|
||||||
|
this.panel1.Controls.Add(this.txtCustomIcon);
|
||||||
|
this.panel1.Controls.Add(this.label4);
|
||||||
|
this.panel1.Controls.Add(this.label1);
|
||||||
|
this.panel1.Controls.Add(this.txtUrl);
|
||||||
|
this.panel1.Controls.Add(this.label3);
|
||||||
|
this.panel1.Controls.Add(this.txtRemarks);
|
||||||
|
this.panel1.Controls.Add(this.label2);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
//
|
||||||
|
// label5
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label5, "label5");
|
||||||
|
this.label5.Name = "label5";
|
||||||
|
//
|
||||||
|
// btnBrowse
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.btnBrowse, "btnBrowse");
|
||||||
|
this.btnBrowse.Name = "btnBrowse";
|
||||||
|
this.btnBrowse.UseVisualStyleBackColor = true;
|
||||||
|
this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click);
|
||||||
|
//
|
||||||
|
// txtCustomIcon
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtCustomIcon, "txtCustomIcon");
|
||||||
|
this.txtCustomIcon.Name = "txtCustomIcon";
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label4, "label4");
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label1, "label1");
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
//
|
||||||
|
// txtUrl
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtUrl, "txtUrl");
|
||||||
|
this.txtUrl.Name = "txtUrl";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label3, "label3");
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
//
|
||||||
|
// txtRemarks
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtRemarks, "txtRemarks");
|
||||||
|
this.txtRemarks.Name = "txtRemarks";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label2, "label2");
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
//
|
||||||
|
// lvRoutings
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.lvRoutings, "lvRoutings");
|
||||||
|
this.lvRoutings.ContextMenuStrip = this.cmsLv;
|
||||||
|
this.lvRoutings.FullRowSelect = true;
|
||||||
|
this.lvRoutings.GridLines = true;
|
||||||
|
this.lvRoutings.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
||||||
|
this.lvRoutings.HideSelection = false;
|
||||||
|
this.lvRoutings.Items.AddRange(new System.Windows.Forms.ListViewItem[] {
|
||||||
|
((System.Windows.Forms.ListViewItem)(resources.GetObject("lvRoutings.Items")))});
|
||||||
|
this.lvRoutings.MultiSelect = false;
|
||||||
|
this.lvRoutings.Name = "lvRoutings";
|
||||||
|
this.lvRoutings.UseCompatibleStateImageBehavior = false;
|
||||||
|
this.lvRoutings.View = System.Windows.Forms.View.Details;
|
||||||
|
this.lvRoutings.DoubleClick += new System.EventHandler(this.lvRoutings_DoubleClick);
|
||||||
|
this.lvRoutings.KeyDown += new System.Windows.Forms.KeyEventHandler(this.lvRoutings_KeyDown);
|
||||||
|
//
|
||||||
|
// cmsLv
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.cmsLv, "cmsLv");
|
||||||
|
this.cmsLv.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
|
this.cmsLv.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.menuAdd,
|
||||||
|
this.menuRemove,
|
||||||
|
this.menuSelectAll,
|
||||||
|
this.menuExportSelectedRules,
|
||||||
|
this.toolStripSeparator3,
|
||||||
|
this.menuMoveTop,
|
||||||
|
this.menuMoveUp,
|
||||||
|
this.menuMoveDown,
|
||||||
|
this.menuMoveBottom});
|
||||||
|
this.cmsLv.Name = "cmsLv";
|
||||||
|
this.cmsLv.OwnerItem = this.MenuItem1;
|
||||||
|
//
|
||||||
|
// menuAdd
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuAdd, "menuAdd");
|
||||||
|
this.menuAdd.Name = "menuAdd";
|
||||||
|
this.menuAdd.Click += new System.EventHandler(this.menuAdd_Click);
|
||||||
|
//
|
||||||
|
// menuRemove
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuRemove, "menuRemove");
|
||||||
|
this.menuRemove.Name = "menuRemove";
|
||||||
|
this.menuRemove.Click += new System.EventHandler(this.menuRemove_Click);
|
||||||
|
//
|
||||||
|
// menuSelectAll
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuSelectAll, "menuSelectAll");
|
||||||
|
this.menuSelectAll.Name = "menuSelectAll";
|
||||||
|
this.menuSelectAll.Click += new System.EventHandler(this.menuSelectAll_Click);
|
||||||
|
//
|
||||||
|
// menuExportSelectedRules
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuExportSelectedRules, "menuExportSelectedRules");
|
||||||
|
this.menuExportSelectedRules.Name = "menuExportSelectedRules";
|
||||||
|
this.menuExportSelectedRules.Click += new System.EventHandler(this.menuExportSelectedRules_Click);
|
||||||
|
//
|
||||||
|
// toolStripSeparator3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.toolStripSeparator3, "toolStripSeparator3");
|
||||||
|
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||||
|
//
|
||||||
|
// menuMoveTop
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuMoveTop, "menuMoveTop");
|
||||||
|
this.menuMoveTop.Name = "menuMoveTop";
|
||||||
|
this.menuMoveTop.Click += new System.EventHandler(this.menuMoveTop_Click);
|
||||||
|
//
|
||||||
|
// menuMoveUp
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuMoveUp, "menuMoveUp");
|
||||||
|
this.menuMoveUp.Name = "menuMoveUp";
|
||||||
|
this.menuMoveUp.Click += new System.EventHandler(this.menuMoveUp_Click);
|
||||||
|
//
|
||||||
|
// menuMoveDown
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuMoveDown, "menuMoveDown");
|
||||||
|
this.menuMoveDown.Name = "menuMoveDown";
|
||||||
|
this.menuMoveDown.Click += new System.EventHandler(this.menuMoveDown_Click);
|
||||||
|
//
|
||||||
|
// menuMoveBottom
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuMoveBottom, "menuMoveBottom");
|
||||||
|
this.menuMoveBottom.Name = "menuMoveBottom";
|
||||||
|
this.menuMoveBottom.Click += new System.EventHandler(this.menuMoveBottom_Click);
|
||||||
|
//
|
||||||
|
// MenuItem1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.MenuItem1, "MenuItem1");
|
||||||
|
this.MenuItem1.DropDown = this.cmsLv;
|
||||||
|
this.MenuItem1.Name = "MenuItem1";
|
||||||
|
//
|
||||||
|
// tabControl2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tabControl2, "tabControl2");
|
||||||
|
this.tabControl2.Controls.Add(this.tabPage2);
|
||||||
|
this.tabControl2.Name = "tabControl2";
|
||||||
|
this.tabControl2.SelectedIndex = 0;
|
||||||
|
//
|
||||||
|
// tabPage2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tabPage2, "tabPage2");
|
||||||
|
this.tabPage2.Controls.Add(this.lvRoutings);
|
||||||
|
this.tabPage2.Name = "tabPage2";
|
||||||
|
this.tabPage2.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// menuServer
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuServer, "menuServer");
|
||||||
|
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.MenuItem1,
|
||||||
|
this.toolStripMenuItem1});
|
||||||
|
this.menuServer.Name = "menuServer";
|
||||||
|
//
|
||||||
|
// toolStripMenuItem1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1");
|
||||||
|
this.toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.menuImportRulesFromFile,
|
||||||
|
this.menuImportRulesFromClipboard,
|
||||||
|
this.menuImportRulesFromUrl});
|
||||||
|
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
||||||
|
//
|
||||||
|
// menuImportRulesFromFile
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuImportRulesFromFile, "menuImportRulesFromFile");
|
||||||
|
this.menuImportRulesFromFile.Name = "menuImportRulesFromFile";
|
||||||
|
this.menuImportRulesFromFile.Click += new System.EventHandler(this.menuImportRulesFromFile_Click);
|
||||||
|
//
|
||||||
|
// menuImportRulesFromClipboard
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuImportRulesFromClipboard, "menuImportRulesFromClipboard");
|
||||||
|
this.menuImportRulesFromClipboard.Name = "menuImportRulesFromClipboard";
|
||||||
|
this.menuImportRulesFromClipboard.Click += new System.EventHandler(this.menuImportRulesFromClipboard_Click);
|
||||||
|
//
|
||||||
|
// menuImportRulesFromUrl
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuImportRulesFromUrl, "menuImportRulesFromUrl");
|
||||||
|
this.menuImportRulesFromUrl.Name = "menuImportRulesFromUrl";
|
||||||
|
this.menuImportRulesFromUrl.Click += new System.EventHandler(this.menuImportRulesFromUrl_Click);
|
||||||
|
//
|
||||||
|
// RoutingRuleSettingForm
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.CancelButton = this.btnClose;
|
||||||
|
this.Controls.Add(this.tabControl2);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Controls.Add(this.menuServer);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
|
this.Name = "RoutingRuleSettingForm";
|
||||||
|
this.Load += new System.EventHandler(this.RoutingRuleSettingForm_Load);
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
|
this.panel1.ResumeLayout(false);
|
||||||
|
this.panel1.PerformLayout();
|
||||||
|
this.cmsLv.ResumeLayout(false);
|
||||||
|
this.tabControl2.ResumeLayout(false);
|
||||||
|
this.tabPage2.ResumeLayout(false);
|
||||||
|
this.menuServer.ResumeLayout(false);
|
||||||
|
this.menuServer.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
private System.Windows.Forms.Button btnClose;
|
||||||
|
private System.Windows.Forms.Button btnOK;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private Base.ListViewFlickerFree lvRoutings;
|
||||||
|
private System.Windows.Forms.TabControl tabControl2;
|
||||||
|
private System.Windows.Forms.TabPage tabPage2;
|
||||||
|
private System.Windows.Forms.ContextMenuStrip cmsLv;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuRemove;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuMoveTop;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuMoveUp;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuMoveDown;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuMoveBottom;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuSelectAll;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuAdd;
|
||||||
|
private System.Windows.Forms.MenuStrip menuServer;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem MenuItem1;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuImportRulesFromFile;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuImportRulesFromClipboard;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuExportSelectedRules;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuImportRulesFromUrl;
|
||||||
|
private System.Windows.Forms.TextBox txtRemarks;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.TextBox txtUrl;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.TextBox txtCustomIcon;
|
||||||
|
private System.Windows.Forms.Label label4;
|
||||||
|
private System.Windows.Forms.Button btnBrowse;
|
||||||
|
private System.Windows.Forms.Label label5;
|
||||||
|
}
|
||||||
|
}
|
||||||
358
v2rayN/v2rayN/Forms/RoutingRuleSettingForm.cs
Normal file
358
v2rayN/v2rayN/Forms/RoutingRuleSettingForm.cs
Normal file
@@ -0,0 +1,358 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using v2rayN.Base;
|
||||||
|
using v2rayN.Handler;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
public partial class RoutingRuleSettingForm : BaseForm
|
||||||
|
{
|
||||||
|
public int EditIndex
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
protected RoutingItem routingItem = null;
|
||||||
|
|
||||||
|
private List<int> lvSelecteds = new List<int>();
|
||||||
|
public RoutingRuleSettingForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RoutingRuleSettingForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (EditIndex >= 0)
|
||||||
|
{
|
||||||
|
routingItem = config.routings[EditIndex];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
routingItem = new RoutingItem();
|
||||||
|
}
|
||||||
|
if (routingItem.rules == null)
|
||||||
|
{
|
||||||
|
routingItem.rules = new List<RulesItem>();
|
||||||
|
}
|
||||||
|
|
||||||
|
txtRemarks.Text = routingItem.remarks ?? string.Empty;
|
||||||
|
txtUrl.Text = routingItem.url ?? string.Empty;
|
||||||
|
txtCustomIcon.Text = routingItem.customIcon ?? string.Empty;
|
||||||
|
|
||||||
|
InitRoutingsView();
|
||||||
|
RefreshRoutingsView();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InitRoutingsView()
|
||||||
|
{
|
||||||
|
lvRoutings.BeginUpdate();
|
||||||
|
lvRoutings.Items.Clear();
|
||||||
|
|
||||||
|
lvRoutings.GridLines = true;
|
||||||
|
lvRoutings.FullRowSelect = true;
|
||||||
|
lvRoutings.View = View.Details;
|
||||||
|
lvRoutings.MultiSelect = true;
|
||||||
|
lvRoutings.HeaderStyle = ColumnHeaderStyle.Clickable;
|
||||||
|
|
||||||
|
lvRoutings.Columns.Add("", 30);
|
||||||
|
lvRoutings.Columns.Add("outboundTag", 80);
|
||||||
|
lvRoutings.Columns.Add("port", 80);
|
||||||
|
lvRoutings.Columns.Add("protocol", 80);
|
||||||
|
lvRoutings.Columns.Add("inboundTag", 80);
|
||||||
|
lvRoutings.Columns.Add("domain", 160);
|
||||||
|
lvRoutings.Columns.Add("ip", 160);
|
||||||
|
lvRoutings.Columns.Add("enable", 60);
|
||||||
|
|
||||||
|
lvRoutings.EndUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshRoutingsView()
|
||||||
|
{
|
||||||
|
lvRoutings.BeginUpdate();
|
||||||
|
lvRoutings.Items.Clear();
|
||||||
|
|
||||||
|
for (int k = 0; k < routingItem.rules.Count; k++)
|
||||||
|
{
|
||||||
|
var item = routingItem.rules[k];
|
||||||
|
|
||||||
|
ListViewItem lvItem = new ListViewItem("");
|
||||||
|
Utils.AddSubItem(lvItem, "outboundTag", item.outboundTag);
|
||||||
|
Utils.AddSubItem(lvItem, "port", item.port);
|
||||||
|
Utils.AddSubItem(lvItem, "protocol", Utils.List2String(item.protocol));
|
||||||
|
Utils.AddSubItem(lvItem, "inboundTag", Utils.List2String(item.inboundTag));
|
||||||
|
Utils.AddSubItem(lvItem, "domain", Utils.List2String(item.domain));
|
||||||
|
Utils.AddSubItem(lvItem, "ip", Utils.List2String(item.ip));
|
||||||
|
Utils.AddSubItem(lvItem, "enable", item.enabled.ToString());
|
||||||
|
|
||||||
|
if (lvItem != null) lvRoutings.Items.Add(lvItem);
|
||||||
|
}
|
||||||
|
lvRoutings.EndUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
routingItem.remarks = txtRemarks.Text.Trim();
|
||||||
|
routingItem.url = txtUrl.Text.Trim();
|
||||||
|
routingItem.customIcon = txtCustomIcon.Text.Trim();
|
||||||
|
|
||||||
|
if (ConfigHandler.AddRoutingItem(ref config, routingItem, EditIndex) == 0)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UI.ShowWarning(UIRes.I18N("OperationFailed"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.Cancel;
|
||||||
|
}
|
||||||
|
private void btnBrowse_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OpenFileDialog openFileDialog1 = new OpenFileDialog();
|
||||||
|
openFileDialog1.Filter = "PNG|*.png";
|
||||||
|
openFileDialog1.ShowDialog();
|
||||||
|
txtCustomIcon.Text = openFileDialog1.FileName;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void lvRoutings_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int index = GetLvSelectedIndex();
|
||||||
|
if (index < 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var fm = new RoutingRuleSettingDetailsForm();
|
||||||
|
fm.rulesItem = routingItem.rules[index];
|
||||||
|
if (fm.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
RefreshRoutingsView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int GetLvSelectedIndex()
|
||||||
|
{
|
||||||
|
int index = -1;
|
||||||
|
lvSelecteds.Clear();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (lvRoutings.SelectedIndices.Count <= 0)
|
||||||
|
{
|
||||||
|
UI.Show(UIRes.I18N("PleaseSelectRules"));
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
index = lvRoutings.SelectedIndices[0];
|
||||||
|
foreach (int i in lvRoutings.SelectedIndices)
|
||||||
|
{
|
||||||
|
lvSelecteds.Add(i);
|
||||||
|
}
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Edit function
|
||||||
|
|
||||||
|
private void menuMoveTop_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
MoveRule(EMove.Top);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void menuMoveUp_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
MoveRule(EMove.Up);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void menuMoveDown_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
MoveRule(EMove.Down);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void menuMoveBottom_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
MoveRule(EMove.Bottom);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MoveRule(EMove eMove)
|
||||||
|
{
|
||||||
|
int index = GetLvSelectedIndex();
|
||||||
|
if (index < 0)
|
||||||
|
{
|
||||||
|
UI.Show(UIRes.I18N("PleaseSelectRules"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (ConfigHandler.MoveRoutingRule(ref routingItem, index, eMove) == 0)
|
||||||
|
{
|
||||||
|
RefreshRoutingsView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void menuSelectAll_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
foreach (ListViewItem item in lvRoutings.Items)
|
||||||
|
{
|
||||||
|
item.Selected = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void menuAdd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var fm = new RoutingRuleSettingDetailsForm();
|
||||||
|
fm.rulesItem = new RulesItem();
|
||||||
|
if (fm.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
routingItem.rules.Insert(0, fm.rulesItem);
|
||||||
|
RefreshRoutingsView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void menuRemove_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int index = GetLvSelectedIndex();
|
||||||
|
if (index < 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (UI.ShowYesNo(UIRes.I18N("RemoveRules")) == DialogResult.No)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (int k = lvSelecteds.Count - 1; k >= 0; k--)
|
||||||
|
{
|
||||||
|
routingItem.rules.RemoveAt(index);
|
||||||
|
}
|
||||||
|
RefreshRoutingsView();
|
||||||
|
}
|
||||||
|
private void menuExportSelectedRules_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
GetLvSelectedIndex();
|
||||||
|
var lst = new List<RulesItem>();
|
||||||
|
foreach (int v in lvSelecteds)
|
||||||
|
{
|
||||||
|
lst.Add(routingItem.rules[v]);
|
||||||
|
}
|
||||||
|
if (lst.Count > 0)
|
||||||
|
{
|
||||||
|
Utils.SetClipboardData(Utils.ToJson(lst));
|
||||||
|
//UI.Show(UIRes.I18N("OperationSuccess"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void lvRoutings_KeyDown(object sender, KeyEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Control)
|
||||||
|
{
|
||||||
|
switch (e.KeyCode)
|
||||||
|
{
|
||||||
|
case Keys.A:
|
||||||
|
menuSelectAll_Click(null, null);
|
||||||
|
break;
|
||||||
|
case Keys.C:
|
||||||
|
menuExportSelectedRules_Click(null, null);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch (e.KeyCode)
|
||||||
|
{
|
||||||
|
case Keys.Delete:
|
||||||
|
menuRemove_Click(null, null);
|
||||||
|
break;
|
||||||
|
case Keys.T:
|
||||||
|
menuMoveTop_Click(null, null);
|
||||||
|
break;
|
||||||
|
case Keys.B:
|
||||||
|
menuMoveBottom_Click(null, null);
|
||||||
|
break;
|
||||||
|
case Keys.U:
|
||||||
|
menuMoveUp_Click(null, null);
|
||||||
|
break;
|
||||||
|
case Keys.D:
|
||||||
|
menuMoveDown_Click(null, null);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region preset rules
|
||||||
|
|
||||||
|
private void menuImportRulesFromFile_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OpenFileDialog fileDialog = new OpenFileDialog
|
||||||
|
{
|
||||||
|
Multiselect = false,
|
||||||
|
Filter = "Rules|*.json|All|*.*"
|
||||||
|
};
|
||||||
|
if (fileDialog.ShowDialog() != DialogResult.OK)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
string fileName = fileDialog.FileName;
|
||||||
|
if (Utils.IsNullOrEmpty(fileName))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
string result = Utils.LoadResource(fileName);
|
||||||
|
if (Utils.IsNullOrEmpty(result))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (AddBatchRoutingRules(ref routingItem, result) == 0)
|
||||||
|
{
|
||||||
|
RefreshRoutingsView();
|
||||||
|
UI.Show(UIRes.I18N("OperationSuccess"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void menuImportRulesFromClipboard_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string clipboardData = Utils.GetClipboardData();
|
||||||
|
if (AddBatchRoutingRules(ref routingItem, clipboardData) == 0)
|
||||||
|
{
|
||||||
|
RefreshRoutingsView();
|
||||||
|
UI.Show(UIRes.I18N("OperationSuccess"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void menuImportRulesFromUrl_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var url = txtUrl.Text.Trim();
|
||||||
|
if (Utils.IsNullOrEmpty(url))
|
||||||
|
{
|
||||||
|
UI.Show(UIRes.I18N("MsgNeedUrl"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DownloadHandle downloadHandle = new DownloadHandle();
|
||||||
|
string clipboardData = downloadHandle.WebDownloadStringSync(url);
|
||||||
|
if (AddBatchRoutingRules(ref routingItem, clipboardData) == 0)
|
||||||
|
{
|
||||||
|
RefreshRoutingsView();
|
||||||
|
UI.Show(UIRes.I18N("OperationSuccess"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private int AddBatchRoutingRules(ref RoutingItem routingItem, string clipboardData)
|
||||||
|
{
|
||||||
|
bool blReplace = false;
|
||||||
|
if (UI.ShowYesNo(UIRes.I18N("AddBatchRoutingRulesYesNo")) == DialogResult.No)
|
||||||
|
{
|
||||||
|
blReplace = true;
|
||||||
|
}
|
||||||
|
return ConfigHandler.AddBatchRoutingRules(ref routingItem, clipboardData, blReplace);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
785
v2rayN/v2rayN/Forms/RoutingRuleSettingForm.resx
Normal file
785
v2rayN/v2rayN/Forms/RoutingRuleSettingForm.resx
Normal file
@@ -0,0 +1,785 @@
|
|||||||
|
<?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=">>tabControl2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUrl.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="toolStripSeparator3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>199, 6</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="lvRoutings.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuImportRulesFromUrl.Name" xml:space="preserve">
|
||||||
|
<value>menuImportRulesFromUrl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label5.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveDown.Text" xml:space="preserve">
|
||||||
|
<value>Down (D)</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>762, 25</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>32</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUrl.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>47, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveBottom.Text" xml:space="preserve">
|
||||||
|
<value>Move to bottom (B)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Parent" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>40</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItem1.Text" xml:space="preserve">
|
||||||
|
<value>Edit and Function</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Name" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnBrowse.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuServer.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuMoveUp.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Parent" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuServer.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>15</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>toolStripSeparator3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>toolStripMenuItem1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>4, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tabControl2.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUrl.Parent" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuMoveBottom.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>Rule Settings</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuRemove.Text" xml:space="preserve">
|
||||||
|
<value>Remove selected</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tabPage2.Name" xml:space="preserve">
|
||||||
|
<value>tabPage2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuExportSelectedRules.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>202, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>475, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>33</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnBrowse.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>MenuItem1.Name" xml:space="preserve">
|
||||||
|
<value>MenuItem1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>754, 231</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tabControl2.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>568, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuAdd.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtCustomIcon.Name" xml:space="preserve">
|
||||||
|
<value>txtCustomIcon</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuServer.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
|
<value>label1</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>762, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Sub Url</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>95, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.Text" xml:space="preserve">
|
||||||
|
<value>PNG(128*128)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Parent" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>120, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportRulesFromUrl.Text" xml:space="preserve">
|
||||||
|
<value>Import Rules From Sub Url</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuSelectAll.Name" xml:space="preserve">
|
||||||
|
<value>menuSelectAll</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuMoveTop.Name" xml:space="preserve">
|
||||||
|
<value>menuMoveTop</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveBottom.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>202, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmsLv.Name" xml:space="preserve">
|
||||||
|
<value>cmsLv</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuAdd.Text" xml:space="preserve">
|
||||||
|
<value>Add</value>
|
||||||
|
</data>
|
||||||
|
<data name="lvRoutings.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>12</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>toolStripSeparator3.Name" xml:space="preserve">
|
||||||
|
<value>toolStripSeparator3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label5.Name" xml:space="preserve">
|
||||||
|
<value>label5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>lvRoutings.Parent" xml:space="preserve">
|
||||||
|
<value>tabPage2</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUrl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>644, 48</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuMoveBottom.Name" xml:space="preserve">
|
||||||
|
<value>menuMoveBottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 25</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>18, 105</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>18, 63</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportRulesFromFile.Text" xml:space="preserve">
|
||||||
|
<value>Import Rules From File</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveTop.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>202, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabControl2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>762, 257</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>RoutingRuleSettingForm</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>166, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnBrowse.Parent" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveDown.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>202, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuMoveTop.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuServer.Name" xml:space="preserve">
|
||||||
|
<value>menuServer</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuSelectAll.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuServer.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Name" xml:space="preserve">
|
||||||
|
<value>btnClose</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveUp.Text" xml:space="preserve">
|
||||||
|
<value>Up (U)</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmsLv.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>203, 186</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Name" xml:space="preserve">
|
||||||
|
<value>btnOK</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>47, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabControl2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>14</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem1.Text" xml:space="preserve">
|
||||||
|
<value>Import Rules</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>MenuItem1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name="lvRoutings.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>3, 3</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>10, 117</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuImportRulesFromClipboard.Name" xml:space="preserve">
|
||||||
|
<value>menuImportRulesFromClipboard</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportRulesFromClipboard.Text" xml:space="preserve">
|
||||||
|
<value>Import Rules From Clipboard</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Parent" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuAdd.Name" xml:space="preserve">
|
||||||
|
<value>menuAdd</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabControl2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 167</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportRulesFromFile.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>247, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveTop.Text" xml:space="preserve">
|
||||||
|
<value>Move to top (T)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuImportRulesFromUrl.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>762, 142</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUrl.Name" xml:space="preserve">
|
||||||
|
<value>txtUrl</value>
|
||||||
|
</data>
|
||||||
|
<data name="lvRoutings.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>748, 225</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnBrowse.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>660, 104</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuServer.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name="lvRoutings.Items" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>
|
||||||
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkMAwAAAFFTeXN0
|
||||||
|
ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2Vu
|
||||||
|
PWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACFTeXN0ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0l0ZW0HAAAA
|
||||||
|
BFRleHQKSW1hZ2VJbmRleAlCYWNrQ29sb3IHQ2hlY2tlZARGb250CUZvcmVDb2xvchdVc2VJdGVtU3R5
|
||||||
|
bGVGb3JTdWJJdGVtcwEABAAEBAAIFFN5c3RlbS5EcmF3aW5nLkNvbG9yAwAAAAETU3lzdGVtLkRyYXdp
|
||||||
|
bmcuRm9udAMAAAAUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAAAQIAAAAGBAAAAAD/////Bfv///8UU3lz
|
||||||
|
dGVtLkRyYXdpbmcuQ29sb3IEAAAABG5hbWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAA
|
||||||
|
CgAAAAAAAAAAGAABAAAJBgAAAAH5////+////woAAAAAAAAAABoAAQABBQYAAAATU3lzdGVtLkRyYXdp
|
||||||
|
bmcuRm9udAQAAAAETmFtZQRTaXplBVN0eWxlBFVuaXQBAAQECxhTeXN0ZW0uRHJhd2luZy5Gb250U3R5
|
||||||
|
bGUDAAAAG1N5c3RlbS5EcmF3aW5nLkdyYXBoaWNzVW5pdAMAAAADAAAABggAAAAG5a6L5L2TAAAQQQX3
|
||||||
|
////GFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQEAAAAHdmFsdWVfXwAIAwAAAAAAAAAF9v///xtTeXN0
|
||||||
|
ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAMAAAADAAAACw==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUrl.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>34</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtCustomIcon.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnBrowse.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Name" xml:space="preserve">
|
||||||
|
<value>label4</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>&OK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportRulesFromUrl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>247, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>35</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>lvRoutings.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Base.ListViewFlickerFree, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>71, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>18, 45</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>31</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUrl.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>91, 45</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuImportRulesFromClipboard.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuMoveDown.Name" xml:space="preserve">
|
||||||
|
<value>menuMoveDown</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Name" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuAdd.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>202, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tabPage2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuImportRulesFromFile.Name" xml:space="preserve">
|
||||||
|
<value>menuImportRulesFromFile</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Name" xml:space="preserve">
|
||||||
|
<value>label3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>11</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUrl.ScrollBars" type="System.Windows.Forms.ScrollBars, System.Windows.Forms">
|
||||||
|
<value>Vertical</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnBrowse.Text" xml:space="preserve">
|
||||||
|
<value>&Browse</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtCustomIcon.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tabPage2.Parent" xml:space="preserve">
|
||||||
|
<value>tabControl2</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>Remarks</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage2.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 3, 3, 3</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 424</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuMoveUp.Name" xml:space="preserve">
|
||||||
|
<value>menuMoveUp</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage2.Text" xml:space="preserve">
|
||||||
|
<value>RuleList</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>toolStripMenuItem1.Name" xml:space="preserve">
|
||||||
|
<value>toolStripMenuItem1</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtCustomIcon.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>563, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label5.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuSelectAll.Text" xml:space="preserve">
|
||||||
|
<value>Select All (Ctrl+A)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>53, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabControl2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>18, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtCustomIcon.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>37</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuExportSelectedRules.Name" xml:space="preserve">
|
||||||
|
<value>menuExportSelectedRules</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>Optional</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuExportSelectedRules.Text" xml:space="preserve">
|
||||||
|
<value>Export Selected Rules</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>36</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>91, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuRemove.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportRulesFromClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>247, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuRemove.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>202, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuMoveDown.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>lvRoutings.Name" xml:space="preserve">
|
||||||
|
<value>lvRoutings</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveUp.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>202, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtCustomIcon.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>91, 105</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Name" xml:space="preserve">
|
||||||
|
<value>label2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuRemove.Name" xml:space="preserve">
|
||||||
|
<value>menuRemove</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUrl.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>762, 484</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuImportRulesFromFile.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnBrowse.Name" xml:space="preserve">
|
||||||
|
<value>btnBrowse</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnBrowse.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnBrowse.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>39</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuSelectAll.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>202, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>&Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label5.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>77, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtCustomIcon.Parent" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tabControl2.Name" xml:space="preserve">
|
||||||
|
<value>tabControl2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label5.Parent" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tabPage2.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmsLv.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Name" xml:space="preserve">
|
||||||
|
<value>txtRemarks</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuExportSelectedRules.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Text" xml:space="preserve">
|
||||||
|
<value>Custom icon</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>lvRoutings.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Top</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>25</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="menuServer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>139, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="cmsLv.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
||||||
300
v2rayN/v2rayN/Forms/RoutingRuleSettingForm.zh-Hans.resx
Normal file
300
v2rayN/v2rayN/Forms/RoutingRuleSettingForm.zh-Hans.resx
Normal file
@@ -0,0 +1,300 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 501</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>785, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>785, 147</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnBrowse.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>670, 104</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnBrowse.Text" xml:space="preserve">
|
||||||
|
<value>浏览(&B)</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtCustomIcon.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>101, 105</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.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="txtUrl.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>101, 45</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>83, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>订阅地址(Url)</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>101, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>别名</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuAdd.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>196, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuAdd.Text" xml:space="preserve">
|
||||||
|
<value>添加规则</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuRemove.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>196, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuRemove.Text" xml:space="preserve">
|
||||||
|
<value>移除所选规则</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuSelectAll.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>196, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuSelectAll.Text" xml:space="preserve">
|
||||||
|
<value>全选</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuExportSelectedRules.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>196, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuExportSelectedRules.Text" xml:space="preserve">
|
||||||
|
<value>导出所选规则至剪贴板</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripSeparator3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>193, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveTop.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>196, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveTop.Text" xml:space="preserve">
|
||||||
|
<value>上移至顶 (T)</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveUp.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>196, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveUp.Text" xml:space="preserve">
|
||||||
|
<value>上移 (U)</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveDown.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>196, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveDown.Text" xml:space="preserve">
|
||||||
|
<value>下移 (D)</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveBottom.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>196, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuMoveBottom.Text" xml:space="preserve">
|
||||||
|
<value>下移至底 (B)</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>68, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItem1.Text" xml:space="preserve">
|
||||||
|
<value>规则功能</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmsLv.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>197, 186</value>
|
||||||
|
</data>
|
||||||
|
<data name="lvRoutings.Items" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>
|
||||||
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkMAwAAAFFTeXN0
|
||||||
|
ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2Vu
|
||||||
|
PWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACFTeXN0ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0l0ZW0HAAAA
|
||||||
|
BFRleHQKSW1hZ2VJbmRleAlCYWNrQ29sb3IHQ2hlY2tlZARGb250CUZvcmVDb2xvchdVc2VJdGVtU3R5
|
||||||
|
bGVGb3JTdWJJdGVtcwEABAAEBAAIFFN5c3RlbS5EcmF3aW5nLkNvbG9yAwAAAAETU3lzdGVtLkRyYXdp
|
||||||
|
bmcuRm9udAMAAAAUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAAAQIAAAAGBAAAAAD/////Bfv///8UU3lz
|
||||||
|
dGVtLkRyYXdpbmcuQ29sb3IEAAAABG5hbWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAA
|
||||||
|
CgAAAAAAAAAAGAABAAAJBgAAAAH5////+////woAAAAAAAAAABoAAQABBQYAAAATU3lzdGVtLkRyYXdp
|
||||||
|
bmcuRm9udAQAAAAETmFtZQRTaXplBVN0eWxlBFVuaXQBAAQECxhTeXN0ZW0uRHJhd2luZy5Gb250U3R5
|
||||||
|
bGUDAAAAG1N5c3RlbS5EcmF3aW5nLkdyYXBoaWNzVW5pdAMAAAADAAAABggAAAAG5a6L5L2TAAAQQQX3
|
||||||
|
////GFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQEAAAAHdmFsdWVfXwAIAwAAAAAAAAAF9v///xtTeXN0
|
||||||
|
ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAMAAAADAAAACw==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="lvRoutings.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>771, 297</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabControl2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 172</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabControl2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>785, 329</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>777, 303</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPage2.Text" xml:space="preserve">
|
||||||
|
<value>规则列表</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>785, 25</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>68, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem1.Text" xml:space="preserve">
|
||||||
|
<value>导入规则</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportRulesFromFile.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>189, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportRulesFromFile.Text" xml:space="preserve">
|
||||||
|
<value>从文件中导入规则</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportRulesFromClipboard.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>189, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportRulesFromClipboard.Text" xml:space="preserve">
|
||||||
|
<value>从剪贴板中导入规则</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportRulesFromUrl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>189, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportRulesFromUrl.Text" xml:space="preserve">
|
||||||
|
<value>从订阅Url中导入规则</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>785, 561</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>规则集设置</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
234
v2rayN/v2rayN/Forms/RoutingSettingDetailsForm.Designer.cs
generated
Normal file
234
v2rayN/v2rayN/Forms/RoutingSettingDetailsForm.Designer.cs
generated
Normal file
@@ -0,0 +1,234 @@
|
|||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
partial class RoutingSettingDetailsForm
|
||||||
|
{
|
||||||
|
/// <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(RoutingSettingDetailsForm));
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.panel3 = new System.Windows.Forms.Panel();
|
||||||
|
this.clbProtocol = new System.Windows.Forms.CheckedListBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.txtPort = new System.Windows.Forms.TextBox();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.labRoutingTips = new System.Windows.Forms.Label();
|
||||||
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
|
this.cmbOutboundTag = new System.Windows.Forms.ComboBox();
|
||||||
|
this.txtRemarks = new System.Windows.Forms.TextBox();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.panel4 = new System.Windows.Forms.Panel();
|
||||||
|
this.btnClose = new System.Windows.Forms.Button();
|
||||||
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtIP = new System.Windows.Forms.TextBox();
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtDomain = new System.Windows.Forms.TextBox();
|
||||||
|
this.panel3.SuspendLayout();
|
||||||
|
this.panel4.SuspendLayout();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.groupBox2.SuspendLayout();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel1, "panel1");
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
//
|
||||||
|
// panel3
|
||||||
|
//
|
||||||
|
this.panel3.Controls.Add(this.clbProtocol);
|
||||||
|
this.panel3.Controls.Add(this.label3);
|
||||||
|
this.panel3.Controls.Add(this.txtPort);
|
||||||
|
this.panel3.Controls.Add(this.label1);
|
||||||
|
this.panel3.Controls.Add(this.labRoutingTips);
|
||||||
|
this.panel3.Controls.Add(this.label4);
|
||||||
|
this.panel3.Controls.Add(this.cmbOutboundTag);
|
||||||
|
this.panel3.Controls.Add(this.txtRemarks);
|
||||||
|
this.panel3.Controls.Add(this.label2);
|
||||||
|
resources.ApplyResources(this.panel3, "panel3");
|
||||||
|
this.panel3.Name = "panel3";
|
||||||
|
//
|
||||||
|
// clbProtocol
|
||||||
|
//
|
||||||
|
this.clbProtocol.CheckOnClick = true;
|
||||||
|
resources.ApplyResources(this.clbProtocol, "clbProtocol");
|
||||||
|
this.clbProtocol.FormattingEnabled = true;
|
||||||
|
this.clbProtocol.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("clbProtocol.Items"),
|
||||||
|
resources.GetString("clbProtocol.Items1"),
|
||||||
|
resources.GetString("clbProtocol.Items2")});
|
||||||
|
this.clbProtocol.MultiColumn = true;
|
||||||
|
this.clbProtocol.Name = "clbProtocol";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label3, "label3");
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
//
|
||||||
|
// txtPort
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtPort, "txtPort");
|
||||||
|
this.txtPort.Name = "txtPort";
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label1, "label1");
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
//
|
||||||
|
// labRoutingTips
|
||||||
|
//
|
||||||
|
this.labRoutingTips.ForeColor = System.Drawing.Color.Brown;
|
||||||
|
resources.ApplyResources(this.labRoutingTips, "labRoutingTips");
|
||||||
|
this.labRoutingTips.Name = "labRoutingTips";
|
||||||
|
//
|
||||||
|
// label4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label4, "label4");
|
||||||
|
this.label4.Name = "label4";
|
||||||
|
//
|
||||||
|
// cmbOutboundTag
|
||||||
|
//
|
||||||
|
this.cmbOutboundTag.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbOutboundTag.FormattingEnabled = true;
|
||||||
|
this.cmbOutboundTag.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("cmbOutboundTag.Items"),
|
||||||
|
resources.GetString("cmbOutboundTag.Items1"),
|
||||||
|
resources.GetString("cmbOutboundTag.Items2")});
|
||||||
|
resources.ApplyResources(this.cmbOutboundTag, "cmbOutboundTag");
|
||||||
|
this.cmbOutboundTag.Name = "cmbOutboundTag";
|
||||||
|
//
|
||||||
|
// txtRemarks
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtRemarks, "txtRemarks");
|
||||||
|
this.txtRemarks.Name = "txtRemarks";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label2, "label2");
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
//
|
||||||
|
// panel4
|
||||||
|
//
|
||||||
|
this.panel4.Controls.Add(this.btnClose);
|
||||||
|
this.panel4.Controls.Add(this.btnOK);
|
||||||
|
resources.ApplyResources(this.panel4, "panel4");
|
||||||
|
this.panel4.Name = "panel4";
|
||||||
|
//
|
||||||
|
// btnClose
|
||||||
|
//
|
||||||
|
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
resources.ApplyResources(this.btnClose, "btnClose");
|
||||||
|
this.btnClose.Name = "btnClose";
|
||||||
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
|
//
|
||||||
|
// btnOK
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.btnOK, "btnOK");
|
||||||
|
this.btnOK.Name = "btnOK";
|
||||||
|
this.btnOK.UseVisualStyleBackColor = true;
|
||||||
|
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
this.panel2.Controls.Add(this.groupBox2);
|
||||||
|
this.panel2.Controls.Add(this.groupBox1);
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
|
this.panel2.Name = "panel2";
|
||||||
|
//
|
||||||
|
// groupBox2
|
||||||
|
//
|
||||||
|
this.groupBox2.Controls.Add(this.txtIP);
|
||||||
|
resources.ApplyResources(this.groupBox2, "groupBox2");
|
||||||
|
this.groupBox2.Name = "groupBox2";
|
||||||
|
this.groupBox2.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtIP
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtIP, "txtIP");
|
||||||
|
this.txtIP.Name = "txtIP";
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
this.groupBox1.Controls.Add(this.txtDomain);
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtDomain
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtDomain, "txtDomain");
|
||||||
|
this.txtDomain.Name = "txtDomain";
|
||||||
|
//
|
||||||
|
// RoutingSettingDetailsForm
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.CancelButton = this.btnClose;
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Controls.Add(this.panel4);
|
||||||
|
this.Controls.Add(this.panel3);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Name = "RoutingSettingDetailsForm";
|
||||||
|
this.Load += new System.EventHandler(this.RoutingSettingDetailsForm_Load);
|
||||||
|
this.panel3.ResumeLayout(false);
|
||||||
|
this.panel3.PerformLayout();
|
||||||
|
this.panel4.ResumeLayout(false);
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
|
this.groupBox2.ResumeLayout(false);
|
||||||
|
this.groupBox2.PerformLayout();
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.groupBox1.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private System.Windows.Forms.Panel panel3;
|
||||||
|
private System.Windows.Forms.Label label4;
|
||||||
|
private System.Windows.Forms.ComboBox cmbOutboundTag;
|
||||||
|
private System.Windows.Forms.TextBox txtRemarks;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.Panel panel4;
|
||||||
|
private System.Windows.Forms.Button btnClose;
|
||||||
|
private System.Windows.Forms.Button btnOK;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
|
private System.Windows.Forms.TextBox txtDomain;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox2;
|
||||||
|
private System.Windows.Forms.TextBox txtIP;
|
||||||
|
private System.Windows.Forms.Label labRoutingTips;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.TextBox txtPort;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.CheckedListBox clbProtocol;
|
||||||
|
}
|
||||||
|
}
|
||||||
131
v2rayN/v2rayN/Forms/RoutingSettingDetailsForm.cs
Normal file
131
v2rayN/v2rayN/Forms/RoutingSettingDetailsForm.cs
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using v2rayN.Base;
|
||||||
|
using v2rayN.Handler;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
public partial class RoutingSettingDetailsForm : BaseForm
|
||||||
|
{
|
||||||
|
public int EditIndex
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
protected RulesItem routingItem = null;
|
||||||
|
|
||||||
|
public RoutingSettingDetailsForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RoutingSettingDetailsForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (EditIndex >= 0)
|
||||||
|
{
|
||||||
|
routingItem = config.rules[EditIndex];
|
||||||
|
BindingData();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
routingItem = new RulesItem();
|
||||||
|
ClearBind();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void EndBindingData()
|
||||||
|
{
|
||||||
|
if (routingItem != null)
|
||||||
|
{
|
||||||
|
routingItem.remarks = txtRemarks.Text.TrimEx();
|
||||||
|
routingItem.port = txtPort.Text.TrimEx();
|
||||||
|
routingItem.outboundTag = cmbOutboundTag.Text;
|
||||||
|
routingItem.domain = Utils.String2List(txtDomain.Text);
|
||||||
|
routingItem.ip = Utils.String2List(txtIP.Text);
|
||||||
|
|
||||||
|
var protocol = new List<string>();
|
||||||
|
for (int i = 0; i < clbProtocol.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if (clbProtocol.GetItemChecked(i))
|
||||||
|
{
|
||||||
|
protocol.Add(clbProtocol.Items[i].ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
routingItem.protocol = protocol;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void BindingData()
|
||||||
|
{
|
||||||
|
if (routingItem != null)
|
||||||
|
{
|
||||||
|
txtRemarks.Text = routingItem.remarks ?? string.Empty;
|
||||||
|
txtPort.Text = routingItem.port ?? string.Empty;
|
||||||
|
cmbOutboundTag.Text = routingItem.outboundTag;
|
||||||
|
txtDomain.Text = Utils.List2String(routingItem.domain, true);
|
||||||
|
txtIP.Text = Utils.List2String(routingItem.ip, true);
|
||||||
|
|
||||||
|
if (routingItem.protocol != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < clbProtocol.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if (routingItem.protocol.Contains(clbProtocol.Items[i].ToString()))
|
||||||
|
{
|
||||||
|
clbProtocol.SetItemChecked(i, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void ClearBind()
|
||||||
|
{
|
||||||
|
txtRemarks.Text = string.Empty;
|
||||||
|
txtPort.Text = string.Empty;
|
||||||
|
cmbOutboundTag.Text = Global.agentTag;
|
||||||
|
txtDomain.Text = string.Empty;
|
||||||
|
txtIP.Text = string.Empty;
|
||||||
|
}
|
||||||
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
EndBindingData();
|
||||||
|
var hasRule = false;
|
||||||
|
if (routingItem.domain != null && routingItem.domain.Count > 0)
|
||||||
|
{
|
||||||
|
hasRule = true;
|
||||||
|
}
|
||||||
|
if (routingItem.ip != null && routingItem.ip.Count > 0)
|
||||||
|
{
|
||||||
|
hasRule = true;
|
||||||
|
}
|
||||||
|
if (routingItem.protocol != null && routingItem.protocol.Count > 0)
|
||||||
|
{
|
||||||
|
hasRule = true;
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(routingItem.port))
|
||||||
|
{
|
||||||
|
hasRule = true;
|
||||||
|
}
|
||||||
|
if (!hasRule)
|
||||||
|
{
|
||||||
|
UI.ShowWarning(string.Format(UIRes.I18N("RoutingRuleDetailRequiredTips"), "Port/Protocol/Domain/IP"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ConfigHandler.AddRoutingRule(ref config, routingItem, EditIndex) == 0)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UI.ShowWarning(UIRes.I18N("OperationFailed"));
|
||||||
|
}
|
||||||
|
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.Cancel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
723
v2rayN/v2rayN/Forms/RoutingSettingDetailsForm.resx
Normal file
723
v2rayN/v2rayN/Forms/RoutingSettingDetailsForm.resx
Normal file
@@ -0,0 +1,723 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Top</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="panel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>742, 10</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="panel1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Name" xml:space="preserve">
|
||||||
|
<value>panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel1.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.ColumnWidth" type="System.Int32, mscorlib">
|
||||||
|
<value>80</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Items" xml:space="preserve">
|
||||||
|
<value>http</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Items1" xml:space="preserve">
|
||||||
|
<value>tls</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Items2" xml:space="preserve">
|
||||||
|
<value>bittorrent</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>347, 43</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>245, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbProtocol.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>39</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbProtocol.Name" xml:space="preserve">
|
||||||
|
<value>clbProtocol</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbProtocol.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbProtocol.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbProtocol.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>274, 47</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>53, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>36</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Protocol</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Name" xml:space="preserve">
|
||||||
|
<value>label3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>84, 43</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>166, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPort.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>35</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Name" xml:space="preserve">
|
||||||
|
<value>txtPort</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPort.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>19, 47</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>34</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>Port</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
|
<value>label1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRoutingTips.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRoutingTips.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>19, 82</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRoutingTips.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>598, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRoutingTips.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>33</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRoutingTips.Text" xml:space="preserve">
|
||||||
|
<value>*Set the rules, separated by commas (,); The comma in the regular is replaced by <COMMA></value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRoutingTips.Name" xml:space="preserve">
|
||||||
|
<value>labRoutingTips</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRoutingTips.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRoutingTips.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRoutingTips.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>274, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>47, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>32</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Text" xml:space="preserve">
|
||||||
|
<value>Out Tag</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Name" xml:space="preserve">
|
||||||
|
<value>label4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label4.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Items" xml:space="preserve">
|
||||||
|
<value>proxy</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Items1" xml:space="preserve">
|
||||||
|
<value>direct</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Items2" xml:space="preserve">
|
||||||
|
<value>block</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>347, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>119, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbOutboundTag.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>31</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbOutboundTag.Name" xml:space="preserve">
|
||||||
|
<value>cmbOutboundTag</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbOutboundTag.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbOutboundTag.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbOutboundTag.ZOrder" xml:space="preserve">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>84, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>166, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>30</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Name" xml:space="preserve">
|
||||||
|
<value>txtRemarks</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>19, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>47, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>29</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>Remarks</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Name" xml:space="preserve">
|
||||||
|
<value>label2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Parent" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Top</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 10</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>742, 111</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Name" xml:space="preserve">
|
||||||
|
<value>panel3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel3.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Name" xml:space="preserve">
|
||||||
|
<value>btnClose</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Parent" xml:space="preserve">
|
||||||
|
<value>panel4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Name" xml:space="preserve">
|
||||||
|
<value>btnOK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Parent" xml:space="preserve">
|
||||||
|
<value>panel4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel4.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel4.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 516</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>742, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel4.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel4.Name" xml:space="preserve">
|
||||||
|
<value>panel4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel4.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel4.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel4.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>504, 15</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>&Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Name" xml:space="preserve">
|
||||||
|
<value>btnClose</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Parent" xml:space="preserve">
|
||||||
|
<value>panel4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>411, 15</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>&OK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Name" xml:space="preserve">
|
||||||
|
<value>btnOK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Parent" xml:space="preserve">
|
||||||
|
<value>panel4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Name" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Name" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 121</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>742, 395</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>11</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Name" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.Name" xml:space="preserve">
|
||||||
|
<value>txtIP</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>392, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>350, 395</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Text" xml:space="preserve">
|
||||||
|
<value>IP</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Name" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox2.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>3, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>344, 375</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtIP.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>25</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.Name" xml:space="preserve">
|
||||||
|
<value>txtIP</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtIP.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.Name" xml:space="preserve">
|
||||||
|
<value>txtDomain</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Left</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>392, 395</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Text" xml:space="preserve">
|
||||||
|
<value>Domain</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Name" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>3, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>386, 375</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDomain.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>24</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.Name" xml:space="preserve">
|
||||||
|
<value>txtDomain</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.Parent" xml:space="preserve">
|
||||||
|
<value>groupBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtDomain.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>742, 576</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>RoutingSettingDetailsForm</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>RoutingSettingDetailsForm</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
145
v2rayN/v2rayN/Forms/RoutingSettingDetailsForm.zh-Hans.resx
Normal file
145
v2rayN/v2rayN/Forms/RoutingSettingDetailsForm.zh-Hans.resx
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
<?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="labRoutingTips.Text" xml:space="preserve">
|
||||||
|
<value>*设置的路由规则,用逗号(,)分隔;正则中的逗号用<COMMA>替代</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>71, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Text" xml:space="preserve">
|
||||||
|
<value>OutboundTag</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>别名</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>取消(&C)</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>路由规则详情设置</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
468
v2rayN/v2rayN/Forms/RoutingSettingForm.Designer.cs
generated
Normal file
468
v2rayN/v2rayN/Forms/RoutingSettingForm.Designer.cs
generated
Normal file
@@ -0,0 +1,468 @@
|
|||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
partial class RoutingSettingForm
|
||||||
|
{
|
||||||
|
/// <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()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RoutingSettingForm));
|
||||||
|
this.btnClose = new System.Windows.Forms.Button();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.labRoutingTips = new System.Windows.Forms.Label();
|
||||||
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.cmbdomainMatcher = new System.Windows.Forms.ComboBox();
|
||||||
|
this.label6 = new System.Windows.Forms.Label();
|
||||||
|
this.chkenableRoutingAdvanced = new System.Windows.Forms.CheckBox();
|
||||||
|
this.linkLabelRoutingDoc = new System.Windows.Forms.LinkLabel();
|
||||||
|
this.cmbdomainStrategy = new System.Windows.Forms.ComboBox();
|
||||||
|
this.cmsLv = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
|
this.menuAdd = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuRemove = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuSelectAll = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuSetDefaultRouting = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.MenuItemAdvanced = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuServer = new System.Windows.Forms.MenuStrip();
|
||||||
|
this.MenuItemBasic = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.menuImportBasicRules = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.tabNormal = new System.Windows.Forms.TabControl();
|
||||||
|
this.tabPageProxy = new System.Windows.Forms.TabPage();
|
||||||
|
this.panel5 = new System.Windows.Forms.Panel();
|
||||||
|
this.groupBox5 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtProxyIp = new System.Windows.Forms.TextBox();
|
||||||
|
this.groupBox6 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtProxyDomain = new System.Windows.Forms.TextBox();
|
||||||
|
this.tabPageDirect = new System.Windows.Forms.TabPage();
|
||||||
|
this.panel4 = new System.Windows.Forms.Panel();
|
||||||
|
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtDirectIp = new System.Windows.Forms.TextBox();
|
||||||
|
this.groupBox4 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtDirectDomain = new System.Windows.Forms.TextBox();
|
||||||
|
this.tabPageBlock = new System.Windows.Forms.TabPage();
|
||||||
|
this.panel3 = new System.Windows.Forms.Panel();
|
||||||
|
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtBlockIp = new System.Windows.Forms.TextBox();
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtBlockDomain = new System.Windows.Forms.TextBox();
|
||||||
|
this.tabPageRuleList = new System.Windows.Forms.TabPage();
|
||||||
|
this.lvRoutings = new v2rayN.Base.ListViewFlickerFree();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
this.cmsLv.SuspendLayout();
|
||||||
|
this.menuServer.SuspendLayout();
|
||||||
|
this.tabNormal.SuspendLayout();
|
||||||
|
this.tabPageProxy.SuspendLayout();
|
||||||
|
this.panel5.SuspendLayout();
|
||||||
|
this.groupBox5.SuspendLayout();
|
||||||
|
this.groupBox6.SuspendLayout();
|
||||||
|
this.tabPageDirect.SuspendLayout();
|
||||||
|
this.panel4.SuspendLayout();
|
||||||
|
this.groupBox3.SuspendLayout();
|
||||||
|
this.groupBox4.SuspendLayout();
|
||||||
|
this.tabPageBlock.SuspendLayout();
|
||||||
|
this.panel3.SuspendLayout();
|
||||||
|
this.groupBox2.SuspendLayout();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.tabPageRuleList.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);
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
|
this.panel2.Controls.Add(this.labRoutingTips);
|
||||||
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
|
this.panel2.Controls.Add(this.btnOK);
|
||||||
|
this.panel2.Name = "panel2";
|
||||||
|
//
|
||||||
|
// labRoutingTips
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labRoutingTips, "labRoutingTips");
|
||||||
|
this.labRoutingTips.ForeColor = System.Drawing.Color.Brown;
|
||||||
|
this.labRoutingTips.Name = "labRoutingTips";
|
||||||
|
//
|
||||||
|
// 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.Controls.Add(this.cmbdomainMatcher);
|
||||||
|
this.panel1.Controls.Add(this.label6);
|
||||||
|
this.panel1.Controls.Add(this.chkenableRoutingAdvanced);
|
||||||
|
this.panel1.Controls.Add(this.linkLabelRoutingDoc);
|
||||||
|
this.panel1.Controls.Add(this.cmbdomainStrategy);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
//
|
||||||
|
// cmbdomainMatcher
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.cmbdomainMatcher, "cmbdomainMatcher");
|
||||||
|
this.cmbdomainMatcher.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbdomainMatcher.FormattingEnabled = true;
|
||||||
|
this.cmbdomainMatcher.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("cmbdomainMatcher.Items"),
|
||||||
|
resources.GetString("cmbdomainMatcher.Items1")});
|
||||||
|
this.cmbdomainMatcher.Name = "cmbdomainMatcher";
|
||||||
|
//
|
||||||
|
// label6
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label6, "label6");
|
||||||
|
this.label6.Name = "label6";
|
||||||
|
//
|
||||||
|
// chkenableRoutingAdvanced
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.chkenableRoutingAdvanced, "chkenableRoutingAdvanced");
|
||||||
|
this.chkenableRoutingAdvanced.Name = "chkenableRoutingAdvanced";
|
||||||
|
this.chkenableRoutingAdvanced.UseVisualStyleBackColor = true;
|
||||||
|
this.chkenableRoutingAdvanced.CheckedChanged += new System.EventHandler(this.chkenableRoutingAdvanced_CheckedChanged_1);
|
||||||
|
//
|
||||||
|
// linkLabelRoutingDoc
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.linkLabelRoutingDoc, "linkLabelRoutingDoc");
|
||||||
|
this.linkLabelRoutingDoc.Name = "linkLabelRoutingDoc";
|
||||||
|
this.linkLabelRoutingDoc.TabStop = true;
|
||||||
|
this.linkLabelRoutingDoc.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelRoutingDoc_LinkClicked);
|
||||||
|
//
|
||||||
|
// cmbdomainStrategy
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.cmbdomainStrategy, "cmbdomainStrategy");
|
||||||
|
this.cmbdomainStrategy.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbdomainStrategy.FormattingEnabled = true;
|
||||||
|
this.cmbdomainStrategy.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("cmbdomainStrategy.Items"),
|
||||||
|
resources.GetString("cmbdomainStrategy.Items1"),
|
||||||
|
resources.GetString("cmbdomainStrategy.Items2")});
|
||||||
|
this.cmbdomainStrategy.Name = "cmbdomainStrategy";
|
||||||
|
//
|
||||||
|
// cmsLv
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.cmsLv, "cmsLv");
|
||||||
|
this.cmsLv.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
|
this.cmsLv.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.menuAdd,
|
||||||
|
this.menuRemove,
|
||||||
|
this.menuSelectAll,
|
||||||
|
this.menuSetDefaultRouting});
|
||||||
|
this.cmsLv.Name = "cmsLv";
|
||||||
|
this.cmsLv.OwnerItem = this.MenuItemAdvanced;
|
||||||
|
//
|
||||||
|
// menuAdd
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuAdd, "menuAdd");
|
||||||
|
this.menuAdd.Name = "menuAdd";
|
||||||
|
this.menuAdd.Click += new System.EventHandler(this.menuAdd_Click);
|
||||||
|
//
|
||||||
|
// menuRemove
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuRemove, "menuRemove");
|
||||||
|
this.menuRemove.Name = "menuRemove";
|
||||||
|
this.menuRemove.Click += new System.EventHandler(this.menuRemove_Click);
|
||||||
|
//
|
||||||
|
// menuSelectAll
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuSelectAll, "menuSelectAll");
|
||||||
|
this.menuSelectAll.Name = "menuSelectAll";
|
||||||
|
this.menuSelectAll.Click += new System.EventHandler(this.menuSelectAll_Click);
|
||||||
|
//
|
||||||
|
// menuSetDefaultRouting
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuSetDefaultRouting, "menuSetDefaultRouting");
|
||||||
|
this.menuSetDefaultRouting.Name = "menuSetDefaultRouting";
|
||||||
|
this.menuSetDefaultRouting.Click += new System.EventHandler(this.menuSetDefaultRouting_Click);
|
||||||
|
//
|
||||||
|
// MenuItemAdvanced
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.MenuItemAdvanced, "MenuItemAdvanced");
|
||||||
|
this.MenuItemAdvanced.DropDown = this.cmsLv;
|
||||||
|
this.MenuItemAdvanced.Name = "MenuItemAdvanced";
|
||||||
|
//
|
||||||
|
// menuServer
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuServer, "menuServer");
|
||||||
|
this.menuServer.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.MenuItemBasic,
|
||||||
|
this.MenuItemAdvanced});
|
||||||
|
this.menuServer.Name = "menuServer";
|
||||||
|
//
|
||||||
|
// MenuItemBasic
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.MenuItemBasic, "MenuItemBasic");
|
||||||
|
this.MenuItemBasic.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.menuImportBasicRules});
|
||||||
|
this.MenuItemBasic.Name = "MenuItemBasic";
|
||||||
|
//
|
||||||
|
// menuImportBasicRules
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.menuImportBasicRules, "menuImportBasicRules");
|
||||||
|
this.menuImportBasicRules.Name = "menuImportBasicRules";
|
||||||
|
this.menuImportBasicRules.Click += new System.EventHandler(this.menuImportBasicRules_Click);
|
||||||
|
//
|
||||||
|
// tabNormal
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tabNormal, "tabNormal");
|
||||||
|
this.tabNormal.Controls.Add(this.tabPageProxy);
|
||||||
|
this.tabNormal.Controls.Add(this.tabPageDirect);
|
||||||
|
this.tabNormal.Controls.Add(this.tabPageBlock);
|
||||||
|
this.tabNormal.Controls.Add(this.tabPageRuleList);
|
||||||
|
this.tabNormal.Name = "tabNormal";
|
||||||
|
this.tabNormal.SelectedIndex = 0;
|
||||||
|
this.tabNormal.Selecting += new System.Windows.Forms.TabControlCancelEventHandler(this.tabNormal_Selecting);
|
||||||
|
//
|
||||||
|
// tabPageProxy
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tabPageProxy, "tabPageProxy");
|
||||||
|
this.tabPageProxy.Controls.Add(this.panel5);
|
||||||
|
this.tabPageProxy.Name = "tabPageProxy";
|
||||||
|
this.tabPageProxy.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// panel5
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel5, "panel5");
|
||||||
|
this.panel5.Controls.Add(this.groupBox5);
|
||||||
|
this.panel5.Controls.Add(this.groupBox6);
|
||||||
|
this.panel5.Name = "panel5";
|
||||||
|
//
|
||||||
|
// groupBox5
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.groupBox5, "groupBox5");
|
||||||
|
this.groupBox5.Controls.Add(this.txtProxyIp);
|
||||||
|
this.groupBox5.Name = "groupBox5";
|
||||||
|
this.groupBox5.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtProxyIp
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtProxyIp, "txtProxyIp");
|
||||||
|
this.txtProxyIp.Name = "txtProxyIp";
|
||||||
|
//
|
||||||
|
// groupBox6
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.groupBox6, "groupBox6");
|
||||||
|
this.groupBox6.Controls.Add(this.txtProxyDomain);
|
||||||
|
this.groupBox6.Name = "groupBox6";
|
||||||
|
this.groupBox6.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtProxyDomain
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtProxyDomain, "txtProxyDomain");
|
||||||
|
this.txtProxyDomain.Name = "txtProxyDomain";
|
||||||
|
//
|
||||||
|
// tabPageDirect
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tabPageDirect, "tabPageDirect");
|
||||||
|
this.tabPageDirect.Controls.Add(this.panel4);
|
||||||
|
this.tabPageDirect.Name = "tabPageDirect";
|
||||||
|
this.tabPageDirect.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// panel4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel4, "panel4");
|
||||||
|
this.panel4.Controls.Add(this.groupBox3);
|
||||||
|
this.panel4.Controls.Add(this.groupBox4);
|
||||||
|
this.panel4.Name = "panel4";
|
||||||
|
//
|
||||||
|
// groupBox3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.groupBox3, "groupBox3");
|
||||||
|
this.groupBox3.Controls.Add(this.txtDirectIp);
|
||||||
|
this.groupBox3.Name = "groupBox3";
|
||||||
|
this.groupBox3.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtDirectIp
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtDirectIp, "txtDirectIp");
|
||||||
|
this.txtDirectIp.Name = "txtDirectIp";
|
||||||
|
//
|
||||||
|
// groupBox4
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.groupBox4, "groupBox4");
|
||||||
|
this.groupBox4.Controls.Add(this.txtDirectDomain);
|
||||||
|
this.groupBox4.Name = "groupBox4";
|
||||||
|
this.groupBox4.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtDirectDomain
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtDirectDomain, "txtDirectDomain");
|
||||||
|
this.txtDirectDomain.Name = "txtDirectDomain";
|
||||||
|
//
|
||||||
|
// tabPageBlock
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tabPageBlock, "tabPageBlock");
|
||||||
|
this.tabPageBlock.Controls.Add(this.panel3);
|
||||||
|
this.tabPageBlock.Name = "tabPageBlock";
|
||||||
|
this.tabPageBlock.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// panel3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panel3, "panel3");
|
||||||
|
this.panel3.Controls.Add(this.groupBox2);
|
||||||
|
this.panel3.Controls.Add(this.groupBox1);
|
||||||
|
this.panel3.Name = "panel3";
|
||||||
|
//
|
||||||
|
// groupBox2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.groupBox2, "groupBox2");
|
||||||
|
this.groupBox2.Controls.Add(this.txtBlockIp);
|
||||||
|
this.groupBox2.Name = "groupBox2";
|
||||||
|
this.groupBox2.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtBlockIp
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtBlockIp, "txtBlockIp");
|
||||||
|
this.txtBlockIp.Name = "txtBlockIp";
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
|
this.groupBox1.Controls.Add(this.txtBlockDomain);
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtBlockDomain
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtBlockDomain, "txtBlockDomain");
|
||||||
|
this.txtBlockDomain.Name = "txtBlockDomain";
|
||||||
|
//
|
||||||
|
// tabPageRuleList
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tabPageRuleList, "tabPageRuleList");
|
||||||
|
this.tabPageRuleList.Controls.Add(this.lvRoutings);
|
||||||
|
this.tabPageRuleList.Name = "tabPageRuleList";
|
||||||
|
this.tabPageRuleList.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// lvRoutings
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.lvRoutings, "lvRoutings");
|
||||||
|
this.lvRoutings.ContextMenuStrip = this.cmsLv;
|
||||||
|
this.lvRoutings.FullRowSelect = true;
|
||||||
|
this.lvRoutings.GridLines = true;
|
||||||
|
this.lvRoutings.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
||||||
|
this.lvRoutings.HideSelection = false;
|
||||||
|
this.lvRoutings.Items.AddRange(new System.Windows.Forms.ListViewItem[] {
|
||||||
|
((System.Windows.Forms.ListViewItem)(resources.GetObject("lvRoutings.Items")))});
|
||||||
|
this.lvRoutings.MultiSelect = false;
|
||||||
|
this.lvRoutings.Name = "lvRoutings";
|
||||||
|
this.lvRoutings.UseCompatibleStateImageBehavior = false;
|
||||||
|
this.lvRoutings.View = System.Windows.Forms.View.Details;
|
||||||
|
this.lvRoutings.DoubleClick += new System.EventHandler(this.lvRoutings_DoubleClick);
|
||||||
|
//
|
||||||
|
// RoutingSettingForm
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.CancelButton = this.btnClose;
|
||||||
|
this.Controls.Add(this.tabNormal);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Controls.Add(this.menuServer);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
|
this.Name = "RoutingSettingForm";
|
||||||
|
this.Load += new System.EventHandler(this.RoutingSettingForm_Load);
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
|
this.panel1.ResumeLayout(false);
|
||||||
|
this.panel1.PerformLayout();
|
||||||
|
this.cmsLv.ResumeLayout(false);
|
||||||
|
this.menuServer.ResumeLayout(false);
|
||||||
|
this.menuServer.PerformLayout();
|
||||||
|
this.tabNormal.ResumeLayout(false);
|
||||||
|
this.tabPageProxy.ResumeLayout(false);
|
||||||
|
this.panel5.ResumeLayout(false);
|
||||||
|
this.groupBox5.ResumeLayout(false);
|
||||||
|
this.groupBox5.PerformLayout();
|
||||||
|
this.groupBox6.ResumeLayout(false);
|
||||||
|
this.groupBox6.PerformLayout();
|
||||||
|
this.tabPageDirect.ResumeLayout(false);
|
||||||
|
this.panel4.ResumeLayout(false);
|
||||||
|
this.groupBox3.ResumeLayout(false);
|
||||||
|
this.groupBox3.PerformLayout();
|
||||||
|
this.groupBox4.ResumeLayout(false);
|
||||||
|
this.groupBox4.PerformLayout();
|
||||||
|
this.tabPageBlock.ResumeLayout(false);
|
||||||
|
this.panel3.ResumeLayout(false);
|
||||||
|
this.groupBox2.ResumeLayout(false);
|
||||||
|
this.groupBox2.PerformLayout();
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.groupBox1.PerformLayout();
|
||||||
|
this.tabPageRuleList.ResumeLayout(false);
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
private System.Windows.Forms.Button btnClose;
|
||||||
|
private System.Windows.Forms.Button btnOK;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private System.Windows.Forms.LinkLabel linkLabelRoutingDoc;
|
||||||
|
private System.Windows.Forms.ComboBox cmbdomainStrategy;
|
||||||
|
private System.Windows.Forms.ContextMenuStrip cmsLv;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuRemove;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuSelectAll;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuAdd;
|
||||||
|
private System.Windows.Forms.MenuStrip menuServer;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem MenuItemAdvanced;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuSetDefaultRouting;
|
||||||
|
private System.Windows.Forms.TabControl tabNormal;
|
||||||
|
private System.Windows.Forms.TabPage tabPageProxy;
|
||||||
|
private System.Windows.Forms.TabPage tabPageDirect;
|
||||||
|
private System.Windows.Forms.TabPage tabPageBlock;
|
||||||
|
private System.Windows.Forms.Panel panel5;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox5;
|
||||||
|
private System.Windows.Forms.TextBox txtProxyIp;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox6;
|
||||||
|
private System.Windows.Forms.TextBox txtProxyDomain;
|
||||||
|
private System.Windows.Forms.Panel panel4;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox3;
|
||||||
|
private System.Windows.Forms.TextBox txtDirectIp;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox4;
|
||||||
|
private System.Windows.Forms.TextBox txtDirectDomain;
|
||||||
|
private System.Windows.Forms.Panel panel3;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox2;
|
||||||
|
private System.Windows.Forms.TextBox txtBlockIp;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
|
private System.Windows.Forms.TextBox txtBlockDomain;
|
||||||
|
private System.Windows.Forms.TabPage tabPageRuleList;
|
||||||
|
private Base.ListViewFlickerFree lvRoutings;
|
||||||
|
private System.Windows.Forms.Label labRoutingTips;
|
||||||
|
private System.Windows.Forms.CheckBox chkenableRoutingAdvanced;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem MenuItemBasic;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuImportBasicRules;
|
||||||
|
private System.Windows.Forms.ComboBox cmbdomainMatcher;
|
||||||
|
private System.Windows.Forms.Label label6;
|
||||||
|
}
|
||||||
|
}
|
||||||
310
v2rayN/v2rayN/Forms/RoutingSettingForm.cs
Normal file
310
v2rayN/v2rayN/Forms/RoutingSettingForm.cs
Normal file
@@ -0,0 +1,310 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using v2rayN.Base;
|
||||||
|
using v2rayN.Handler;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
public partial class RoutingSettingForm : BaseForm
|
||||||
|
{
|
||||||
|
private List<int> lvSelecteds = new List<int>();
|
||||||
|
private RoutingItem lockedItem;
|
||||||
|
public RoutingSettingForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RoutingSettingForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ConfigHandler.InitBuiltinRouting(ref config);
|
||||||
|
|
||||||
|
cmbdomainStrategy.Text = config.domainStrategy;
|
||||||
|
chkenableRoutingAdvanced.Checked = config.enableRoutingAdvanced;
|
||||||
|
cmbdomainMatcher.Text = config.domainMatcher;
|
||||||
|
|
||||||
|
if (config.routings == null)
|
||||||
|
{
|
||||||
|
config.routings = new List<RoutingItem>();
|
||||||
|
}
|
||||||
|
InitRoutingsView();
|
||||||
|
RefreshRoutingsView();
|
||||||
|
|
||||||
|
BindingLockedData();
|
||||||
|
InitUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void tabNormal_Selecting(object sender, TabControlCancelEventArgs e)
|
||||||
|
{
|
||||||
|
//if (tabNormal.SelectedTab == tabPageRuleList)
|
||||||
|
//{
|
||||||
|
// MenuItem1.Enabled = true;
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// MenuItem1.Enabled = false;
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
config.domainStrategy = cmbdomainStrategy.Text;
|
||||||
|
config.enableRoutingAdvanced = chkenableRoutingAdvanced.Checked;
|
||||||
|
config.domainMatcher = cmbdomainMatcher.Text;
|
||||||
|
|
||||||
|
EndBindingLockedData();
|
||||||
|
|
||||||
|
if (ConfigHandler.SaveRouting(ref config) == 0)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UI.ShowWarning(UIRes.I18N("OperationFailed"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.Cancel;
|
||||||
|
}
|
||||||
|
private void chkenableRoutingAdvanced_CheckedChanged_1(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
InitUI();
|
||||||
|
}
|
||||||
|
private void InitUI()
|
||||||
|
{
|
||||||
|
if (chkenableRoutingAdvanced.Checked)
|
||||||
|
{
|
||||||
|
this.tabPageProxy.Parent = null;
|
||||||
|
this.tabPageDirect.Parent = null;
|
||||||
|
this.tabPageBlock.Parent = null;
|
||||||
|
this.tabPageRuleList.Parent = tabNormal;
|
||||||
|
MenuItemBasic.Enabled = false;
|
||||||
|
MenuItemAdvanced.Enabled = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.tabPageProxy.Parent = tabNormal;
|
||||||
|
this.tabPageDirect.Parent = tabNormal;
|
||||||
|
this.tabPageBlock.Parent = tabNormal;
|
||||||
|
this.tabPageRuleList.Parent = null;
|
||||||
|
MenuItemBasic.Enabled = true;
|
||||||
|
MenuItemAdvanced.Enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#region locked
|
||||||
|
private void BindingLockedData()
|
||||||
|
{
|
||||||
|
lockedItem = ConfigHandler.GetLockedRoutingItem(ref config);
|
||||||
|
if (lockedItem != null)
|
||||||
|
{
|
||||||
|
txtProxyDomain.Text = Utils.List2String(lockedItem.rules[0].domain, true);
|
||||||
|
txtProxyIp.Text = Utils.List2String(lockedItem.rules[0].ip, true);
|
||||||
|
|
||||||
|
txtDirectDomain.Text = Utils.List2String(lockedItem.rules[1].domain, true);
|
||||||
|
txtDirectIp.Text = Utils.List2String(lockedItem.rules[1].ip, true);
|
||||||
|
|
||||||
|
txtBlockDomain.Text = Utils.List2String(lockedItem.rules[2].domain, true);
|
||||||
|
txtBlockIp.Text = Utils.List2String(lockedItem.rules[2].ip, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void EndBindingLockedData()
|
||||||
|
{
|
||||||
|
if (lockedItem != null)
|
||||||
|
{
|
||||||
|
lockedItem.rules[0].domain = Utils.String2List(txtProxyDomain.Text.TrimEx());
|
||||||
|
lockedItem.rules[0].ip = Utils.String2List(txtProxyIp.Text.TrimEx());
|
||||||
|
|
||||||
|
lockedItem.rules[1].domain = Utils.String2List(txtDirectDomain.Text.TrimEx());
|
||||||
|
lockedItem.rules[1].ip = Utils.String2List(txtDirectIp.Text.TrimEx());
|
||||||
|
|
||||||
|
lockedItem.rules[2].domain = Utils.String2List(txtBlockDomain.Text.TrimEx());
|
||||||
|
lockedItem.rules[2].ip = Utils.String2List(txtBlockIp.Text.TrimEx());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ListView
|
||||||
|
private void InitRoutingsView()
|
||||||
|
{
|
||||||
|
lvRoutings.BeginUpdate();
|
||||||
|
lvRoutings.Items.Clear();
|
||||||
|
|
||||||
|
lvRoutings.GridLines = true;
|
||||||
|
lvRoutings.FullRowSelect = true;
|
||||||
|
lvRoutings.View = View.Details;
|
||||||
|
lvRoutings.MultiSelect = true;
|
||||||
|
lvRoutings.HeaderStyle = ColumnHeaderStyle.Clickable;
|
||||||
|
|
||||||
|
lvRoutings.Columns.Add("", 30);
|
||||||
|
lvRoutings.Columns.Add(UIRes.I18N("LvAlias"), 200);
|
||||||
|
lvRoutings.Columns.Add(UIRes.I18N("LvCount"), 60);
|
||||||
|
lvRoutings.Columns.Add(UIRes.I18N("LvUrl"), 240);
|
||||||
|
lvRoutings.Columns.Add(UIRes.I18N("LvCustomIcon"), 240);
|
||||||
|
|
||||||
|
lvRoutings.EndUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshRoutingsView()
|
||||||
|
{
|
||||||
|
lvRoutings.BeginUpdate();
|
||||||
|
lvRoutings.Items.Clear();
|
||||||
|
|
||||||
|
for (int k = 0; k < config.routings.Count; k++)
|
||||||
|
{
|
||||||
|
var item = config.routings[k];
|
||||||
|
if (item.locked == true)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
string def = string.Empty;
|
||||||
|
if (config.routingIndex.Equals(k))
|
||||||
|
{
|
||||||
|
def = "√";
|
||||||
|
}
|
||||||
|
|
||||||
|
ListViewItem lvItem = new ListViewItem(def);
|
||||||
|
Utils.AddSubItem(lvItem, "remarks", item.remarks);
|
||||||
|
Utils.AddSubItem(lvItem, "count", item.rules.Count.ToString());
|
||||||
|
Utils.AddSubItem(lvItem, "url", item.url);
|
||||||
|
Utils.AddSubItem(lvItem, "customIcon", item.customIcon);
|
||||||
|
|
||||||
|
if (lvItem != null) lvRoutings.Items.Add(lvItem);
|
||||||
|
}
|
||||||
|
lvRoutings.EndUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void linkLabelRoutingDoc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
|
{
|
||||||
|
System.Diagnostics.Process.Start("https://www.v2fly.org/config/routing.html");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void lvRoutings_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int index = GetLvSelectedIndex();
|
||||||
|
if (index < 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var fm = new RoutingRuleSettingForm();
|
||||||
|
fm.EditIndex = index;
|
||||||
|
if (fm.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
RefreshRoutingsView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int GetLvSelectedIndex()
|
||||||
|
{
|
||||||
|
int index = -1;
|
||||||
|
lvSelecteds.Clear();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (lvRoutings.SelectedIndices.Count <= 0)
|
||||||
|
{
|
||||||
|
UI.Show(UIRes.I18N("PleaseSelectRules"));
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
index = lvRoutings.SelectedIndices[0];
|
||||||
|
foreach (int i in lvRoutings.SelectedIndices)
|
||||||
|
{
|
||||||
|
lvSelecteds.Add(i);
|
||||||
|
}
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Edit function
|
||||||
|
|
||||||
|
|
||||||
|
private void menuSelectAll_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
foreach (ListViewItem item in lvRoutings.Items)
|
||||||
|
{
|
||||||
|
item.Selected = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void menuAdd_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var fm = new RoutingRuleSettingForm();
|
||||||
|
fm.EditIndex = -1;
|
||||||
|
if (fm.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
RefreshRoutingsView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void menuRemove_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int index = GetLvSelectedIndex();
|
||||||
|
if (index < 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (UI.ShowYesNo(UIRes.I18N("RemoveRules")) == DialogResult.No)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (int k = lvSelecteds.Count - 1; k >= 0; k--)
|
||||||
|
{
|
||||||
|
config.routings.RemoveAt(index);
|
||||||
|
}
|
||||||
|
RefreshRoutingsView();
|
||||||
|
}
|
||||||
|
private void menuSetDefaultRouting_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
int index = GetLvSelectedIndex();
|
||||||
|
if (index < 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
SetDefaultRouting(index);
|
||||||
|
}
|
||||||
|
private int SetDefaultRouting(int index)
|
||||||
|
{
|
||||||
|
if (index < 0)
|
||||||
|
{
|
||||||
|
UI.Show(UIRes.I18N("PleaseSelectServer"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (ConfigHandler.SetDefaultRouting(ref config, index) == 0)
|
||||||
|
{
|
||||||
|
RefreshRoutingsView();
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void menuImportBasicRules_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
//Extra to bypass the mainland
|
||||||
|
txtProxyDomain.Text = "geosite:google";
|
||||||
|
txtDirectDomain.Text = "geosite:cn";
|
||||||
|
txtDirectIp.Text = "geoip:private,geoip:cn";
|
||||||
|
|
||||||
|
txtBlockDomain.Text = "geosite:category-ads-all";
|
||||||
|
|
||||||
|
UI.Show(UIRes.I18N("OperationSuccess"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
1130
v2rayN/v2rayN/Forms/RoutingSettingForm.resx
Normal file
1130
v2rayN/v2rayN/Forms/RoutingSettingForm.resx
Normal file
File diff suppressed because it is too large
Load Diff
312
v2rayN/v2rayN/Forms/RoutingSettingForm.zh-Hans.resx
Normal file
312
v2rayN/v2rayN/Forms/RoutingSettingForm.zh-Hans.resx
Normal file
@@ -0,0 +1,312 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>691, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>取消(&C)</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRoutingTips.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>518, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRoutingTips.Text" xml:space="preserve">
|
||||||
|
<value>*设置的路由规则,用逗号(,)分隔;正则中的逗号用<COMMA>替代</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>598, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 545</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>817, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>77, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label6.Text" xml:space="preserve">
|
||||||
|
<value>域名匹配算法</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkenableRoutingAdvanced.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>120, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkenableRoutingAdvanced.Text" xml:space="preserve">
|
||||||
|
<value>启用路由高级功能</value>
|
||||||
|
</data>
|
||||||
|
<data name="linkLabelRoutingDoc.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>77, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="linkLabelRoutingDoc.Text" xml:space="preserve">
|
||||||
|
<value>域名解析策略</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>817, 51</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuAdd.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>148, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuAdd.Text" xml:space="preserve">
|
||||||
|
<value>添加规则集</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuRemove.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>148, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuRemove.Text" xml:space="preserve">
|
||||||
|
<value>移除所选规则</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuSelectAll.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>148, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuSelectAll.Text" xml:space="preserve">
|
||||||
|
<value>全选</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuSetDefaultRouting.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>148, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuSetDefaultRouting.Text" xml:space="preserve">
|
||||||
|
<value>设为活动路由</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItemAdvanced.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>68, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItemAdvanced.Text" xml:space="preserve">
|
||||||
|
<value>高级功能</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmsLv.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>149, 92</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportBasicRules.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>172, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuImportBasicRules.Text" xml:space="preserve">
|
||||||
|
<value>一键导入基础规则</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItemBasic.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>68, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="MenuItemBasic.Text" xml:space="preserve">
|
||||||
|
<value>基础功能</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>817, 25</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtProxyIp.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>405, 417</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox5.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>411, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtProxyDomain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>386, 417</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox6.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>392, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel5.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>803, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPageProxy.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>809, 443</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPageProxy.Text" xml:space="preserve">
|
||||||
|
<value> 1.代理的Domain或IP </value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDirectIp.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>405, 417</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>411, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtDirectDomain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>386, 417</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>392, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>803, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPageDirect.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>809, 443</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPageDirect.Text" xml:space="preserve">
|
||||||
|
<value> 2.直连的Domain或IP </value>
|
||||||
|
</data>
|
||||||
|
<data name="txtBlockIp.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>405, 417</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>411, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtBlockDomain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>386, 417</value>
|
||||||
|
</data>
|
||||||
|
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>392, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>803, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPageBlock.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>809, 443</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPageBlock.Text" xml:space="preserve">
|
||||||
|
<value> 3.阻止的Domain或IP </value>
|
||||||
|
</data>
|
||||||
|
<data name="lvRoutings.Items" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>
|
||||||
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkMAwAAAFFTeXN0
|
||||||
|
ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2Vu
|
||||||
|
PWIwM2Y1ZjdmMTFkNTBhM2EFAQAAACFTeXN0ZW0uV2luZG93cy5Gb3Jtcy5MaXN0Vmlld0l0ZW0HAAAA
|
||||||
|
BFRleHQKSW1hZ2VJbmRleAlCYWNrQ29sb3IHQ2hlY2tlZARGb250CUZvcmVDb2xvchdVc2VJdGVtU3R5
|
||||||
|
bGVGb3JTdWJJdGVtcwEABAAEBAAIFFN5c3RlbS5EcmF3aW5nLkNvbG9yAwAAAAETU3lzdGVtLkRyYXdp
|
||||||
|
bmcuRm9udAMAAAAUU3lzdGVtLkRyYXdpbmcuQ29sb3IDAAAAAQIAAAAGBAAAAAD/////Bfv///8UU3lz
|
||||||
|
dGVtLkRyYXdpbmcuQ29sb3IEAAAABG5hbWUFdmFsdWUKa25vd25Db2xvcgVzdGF0ZQEAAAAJBwcDAAAA
|
||||||
|
CgAAAAAAAAAAGAABAAAJBgAAAAH5////+////woAAAAAAAAAABoAAQABBQYAAAATU3lzdGVtLkRyYXdp
|
||||||
|
bmcuRm9udAQAAAAETmFtZQRTaXplBVN0eWxlBFVuaXQBAAQECxhTeXN0ZW0uRHJhd2luZy5Gb250U3R5
|
||||||
|
bGUDAAAAG1N5c3RlbS5EcmF3aW5nLkdyYXBoaWNzVW5pdAMAAAADAAAABggAAAAG5a6L5L2TAAAQQQX3
|
||||||
|
////GFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQEAAAAHdmFsdWVfXwAIAwAAAAAAAAAF9v///xtTeXN0
|
||||||
|
ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAMAAAADAAAACw==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="lvRoutings.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>803, 437</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPageRuleList.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>809, 443</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabPageRuleList.Text" xml:space="preserve">
|
||||||
|
<value> 预定义规则集列表</value>
|
||||||
|
</data>
|
||||||
|
<data name="tabNormal.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>817, 469</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>817, 605</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>路由设置</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
106
v2rayN/v2rayN/Forms/RoutingSubSettingForm.Designer.cs
generated
Normal file
106
v2rayN/v2rayN/Forms/RoutingSubSettingForm.Designer.cs
generated
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
partial class RoutingSubSettingForm
|
||||||
|
{
|
||||||
|
/// <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(RoutingSubSettingForm));
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.btnClose = new System.Windows.Forms.Button();
|
||||||
|
this.btnOK = new System.Windows.Forms.Button();
|
||||||
|
this.panCon = new System.Windows.Forms.Panel();
|
||||||
|
this.txtUrl = new System.Windows.Forms.TextBox();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.panCon.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
|
this.panel2.Controls.Add(this.btnOK);
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
|
this.panel2.Name = "panel2";
|
||||||
|
//
|
||||||
|
// btnClose
|
||||||
|
//
|
||||||
|
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
resources.ApplyResources(this.btnClose, "btnClose");
|
||||||
|
this.btnClose.Name = "btnClose";
|
||||||
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
|
//
|
||||||
|
// btnOK
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.btnOK, "btnOK");
|
||||||
|
this.btnOK.Name = "btnOK";
|
||||||
|
this.btnOK.UseVisualStyleBackColor = true;
|
||||||
|
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
|
||||||
|
//
|
||||||
|
// panCon
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.panCon, "panCon");
|
||||||
|
this.panCon.Controls.Add(this.txtUrl);
|
||||||
|
this.panCon.Controls.Add(this.label3);
|
||||||
|
this.panCon.Name = "panCon";
|
||||||
|
//
|
||||||
|
// txtUrl
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtUrl, "txtUrl");
|
||||||
|
this.txtUrl.Name = "txtUrl";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label3, "label3");
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
//
|
||||||
|
// RoutingSubSettingForm
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.CancelButton = this.btnClose;
|
||||||
|
this.Controls.Add(this.panCon);
|
||||||
|
this.Controls.Add(this.panel2);
|
||||||
|
this.Name = "RoutingSubSettingForm";
|
||||||
|
this.Load += new System.EventHandler(this.RoutingSubSettingForm_Load);
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
|
this.panCon.ResumeLayout(false);
|
||||||
|
this.panCon.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private System.Windows.Forms.Button btnClose;
|
||||||
|
private System.Windows.Forms.Button btnOK;
|
||||||
|
private System.Windows.Forms.Panel panCon;
|
||||||
|
private System.Windows.Forms.TextBox txtUrl;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
}
|
||||||
|
}
|
||||||
61
v2rayN/v2rayN/Forms/RoutingSubSettingForm.cs
Normal file
61
v2rayN/v2rayN/Forms/RoutingSubSettingForm.cs
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using v2rayN.Handler;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
public partial class RoutingSubSettingForm : BaseForm
|
||||||
|
{
|
||||||
|
public string Url;
|
||||||
|
public RoutingSubSettingForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RoutingSubSettingForm_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (config.ruleSubItem == null)
|
||||||
|
{
|
||||||
|
config.ruleSubItem = new List<SubItem>();
|
||||||
|
}
|
||||||
|
if (config.ruleSubItem.Count <= 0)
|
||||||
|
{
|
||||||
|
config.ruleSubItem.Add(new SubItem
|
||||||
|
{
|
||||||
|
remarks = "def",
|
||||||
|
url = Global.CustomRoutingListUrl + "custom_routing_rules"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
txtUrl.Text = config.ruleSubItem[0].url;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var url = txtUrl.Text.Trim();
|
||||||
|
|
||||||
|
if (Utils.IsNullOrEmpty(url))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Url = url;
|
||||||
|
config.ruleSubItem[0].url = url;
|
||||||
|
ConfigHandler.SaveRuleSubItem(ref config);
|
||||||
|
|
||||||
|
this.DialogResult = DialogResult.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnClose_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.DialogResult = DialogResult.Cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
300
v2rayN/v2rayN/Forms/RoutingSubSettingForm.resx
Normal file
300
v2rayN/v2rayN/Forms/RoutingSubSettingForm.resx
Normal file
@@ -0,0 +1,300 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="btnClose.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="btnClose.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>448, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="btnClose.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>&Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Name" xml:space="preserve">
|
||||||
|
<value>btnClose</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnClose.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>355, 17</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>&OK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Name" xml:space="preserve">
|
||||||
|
<value>btnOK</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.Parent" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnOK.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Bottom</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 166</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>545, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Name" xml:space="preserve">
|
||||||
|
<value>panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panel2.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="panCon.AutoScroll" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUrl.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>83, 19</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUrl.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUrl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>450, 113</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUrl.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>25</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUrl.Name" xml:space="preserve">
|
||||||
|
<value>txtUrl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUrl.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUrl.Parent" xml:space="preserve">
|
||||||
|
<value>panCon</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUrl.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 19</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>23, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>24</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Url</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Name" xml:space="preserve">
|
||||||
|
<value>label3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Parent" xml:space="preserve">
|
||||||
|
<value>panCon</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="panCon.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="panCon.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="panCon.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>545, 166</value>
|
||||||
|
</data>
|
||||||
|
<data name="panCon.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>11</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panCon.Name" xml:space="preserve">
|
||||||
|
<value>panCon</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panCon.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panCon.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panCon.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>545, 226</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>RoutingSubSetting</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>RoutingSubSettingForm</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
133
v2rayN/v2rayN/Forms/RoutingSubSettingForm.zh-Hans.resx
Normal file
133
v2rayN/v2rayN/Forms/RoutingSubSettingForm.zh-Hans.resx
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
<?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="btnOK.Text" xml:space="preserve">
|
||||||
|
<value>确定(&O)</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>地址 (url)</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
250
v2rayN/v2rayN/Forms/ServerTransportControl.Designer.cs
generated
Normal file
250
v2rayN/v2rayN/Forms/ServerTransportControl.Designer.cs
generated
Normal file
@@ -0,0 +1,250 @@
|
|||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
partial class ServerTransportControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 必需的设计器变量。
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 清理所有正在使用的资源。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 组件设计器生成的代码
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设计器支持所需的方法 - 不要修改
|
||||||
|
/// 使用代码编辑器修改此方法的内容。
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ServerTransportControl));
|
||||||
|
this.gbTransport = new System.Windows.Forms.GroupBox();
|
||||||
|
this.panTlsMore = new System.Windows.Forms.Panel();
|
||||||
|
this.clbAlpn = new System.Windows.Forms.CheckedListBox();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.txtSNI = new System.Windows.Forms.TextBox();
|
||||||
|
this.labSNI = new System.Windows.Forms.Label();
|
||||||
|
this.labAllowInsecure = new System.Windows.Forms.Label();
|
||||||
|
this.cmbAllowInsecure = new System.Windows.Forms.ComboBox();
|
||||||
|
this.tipNetwork = new System.Windows.Forms.Label();
|
||||||
|
this.txtPath = new System.Windows.Forms.TextBox();
|
||||||
|
this.cmbNetwork = new System.Windows.Forms.ComboBox();
|
||||||
|
this.labNetwork = new System.Windows.Forms.Label();
|
||||||
|
this.labPath = new System.Windows.Forms.Label();
|
||||||
|
this.tipPath = new System.Windows.Forms.Label();
|
||||||
|
this.tipRequestHost = new System.Windows.Forms.Label();
|
||||||
|
this.labStreamSecurity = new System.Windows.Forms.Label();
|
||||||
|
this.cmbStreamSecurity = new System.Windows.Forms.ComboBox();
|
||||||
|
this.tipHeaderType = new System.Windows.Forms.Label();
|
||||||
|
this.txtRequestHost = new System.Windows.Forms.TextBox();
|
||||||
|
this.labHeaderType = new System.Windows.Forms.Label();
|
||||||
|
this.labRequestHost = new System.Windows.Forms.Label();
|
||||||
|
this.cmbHeaderType = new System.Windows.Forms.ComboBox();
|
||||||
|
this.gbTransport.SuspendLayout();
|
||||||
|
this.panTlsMore.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// gbTransport
|
||||||
|
//
|
||||||
|
this.gbTransport.Controls.Add(this.panTlsMore);
|
||||||
|
this.gbTransport.Controls.Add(this.tipNetwork);
|
||||||
|
this.gbTransport.Controls.Add(this.txtPath);
|
||||||
|
this.gbTransport.Controls.Add(this.cmbNetwork);
|
||||||
|
this.gbTransport.Controls.Add(this.labNetwork);
|
||||||
|
this.gbTransport.Controls.Add(this.labPath);
|
||||||
|
this.gbTransport.Controls.Add(this.tipPath);
|
||||||
|
this.gbTransport.Controls.Add(this.tipRequestHost);
|
||||||
|
this.gbTransport.Controls.Add(this.labStreamSecurity);
|
||||||
|
this.gbTransport.Controls.Add(this.cmbStreamSecurity);
|
||||||
|
this.gbTransport.Controls.Add(this.tipHeaderType);
|
||||||
|
this.gbTransport.Controls.Add(this.txtRequestHost);
|
||||||
|
this.gbTransport.Controls.Add(this.labHeaderType);
|
||||||
|
this.gbTransport.Controls.Add(this.labRequestHost);
|
||||||
|
this.gbTransport.Controls.Add(this.cmbHeaderType);
|
||||||
|
resources.ApplyResources(this.gbTransport, "gbTransport");
|
||||||
|
this.gbTransport.Name = "gbTransport";
|
||||||
|
this.gbTransport.TabStop = false;
|
||||||
|
//
|
||||||
|
// panTlsMore
|
||||||
|
//
|
||||||
|
this.panTlsMore.Controls.Add(this.clbAlpn);
|
||||||
|
this.panTlsMore.Controls.Add(this.label1);
|
||||||
|
this.panTlsMore.Controls.Add(this.txtSNI);
|
||||||
|
this.panTlsMore.Controls.Add(this.labSNI);
|
||||||
|
this.panTlsMore.Controls.Add(this.labAllowInsecure);
|
||||||
|
this.panTlsMore.Controls.Add(this.cmbAllowInsecure);
|
||||||
|
resources.ApplyResources(this.panTlsMore, "panTlsMore");
|
||||||
|
this.panTlsMore.Name = "panTlsMore";
|
||||||
|
//
|
||||||
|
// clbAlpn
|
||||||
|
//
|
||||||
|
this.clbAlpn.CheckOnClick = true;
|
||||||
|
resources.ApplyResources(this.clbAlpn, "clbAlpn");
|
||||||
|
this.clbAlpn.FormattingEnabled = true;
|
||||||
|
this.clbAlpn.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("clbAlpn.Items"),
|
||||||
|
resources.GetString("clbAlpn.Items1")});
|
||||||
|
this.clbAlpn.MultiColumn = true;
|
||||||
|
this.clbAlpn.Name = "clbAlpn";
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label1, "label1");
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
//
|
||||||
|
// txtSNI
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtSNI, "txtSNI");
|
||||||
|
this.txtSNI.Name = "txtSNI";
|
||||||
|
//
|
||||||
|
// labSNI
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labSNI, "labSNI");
|
||||||
|
this.labSNI.Name = "labSNI";
|
||||||
|
//
|
||||||
|
// labAllowInsecure
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labAllowInsecure, "labAllowInsecure");
|
||||||
|
this.labAllowInsecure.Name = "labAllowInsecure";
|
||||||
|
//
|
||||||
|
// cmbAllowInsecure
|
||||||
|
//
|
||||||
|
this.cmbAllowInsecure.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbAllowInsecure.FormattingEnabled = true;
|
||||||
|
this.cmbAllowInsecure.Items.AddRange(new object[] {
|
||||||
|
resources.GetString("cmbAllowInsecure.Items"),
|
||||||
|
resources.GetString("cmbAllowInsecure.Items1"),
|
||||||
|
resources.GetString("cmbAllowInsecure.Items2")});
|
||||||
|
resources.ApplyResources(this.cmbAllowInsecure, "cmbAllowInsecure");
|
||||||
|
this.cmbAllowInsecure.Name = "cmbAllowInsecure";
|
||||||
|
//
|
||||||
|
// tipNetwork
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tipNetwork, "tipNetwork");
|
||||||
|
this.tipNetwork.Name = "tipNetwork";
|
||||||
|
//
|
||||||
|
// txtPath
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtPath, "txtPath");
|
||||||
|
this.txtPath.Name = "txtPath";
|
||||||
|
//
|
||||||
|
// cmbNetwork
|
||||||
|
//
|
||||||
|
this.cmbNetwork.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbNetwork.FormattingEnabled = true;
|
||||||
|
resources.ApplyResources(this.cmbNetwork, "cmbNetwork");
|
||||||
|
this.cmbNetwork.Name = "cmbNetwork";
|
||||||
|
this.cmbNetwork.SelectedIndexChanged += new System.EventHandler(this.cmbNetwork_SelectedIndexChanged);
|
||||||
|
//
|
||||||
|
// labNetwork
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labNetwork, "labNetwork");
|
||||||
|
this.labNetwork.Name = "labNetwork";
|
||||||
|
//
|
||||||
|
// labPath
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labPath, "labPath");
|
||||||
|
this.labPath.Name = "labPath";
|
||||||
|
//
|
||||||
|
// tipPath
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tipPath, "tipPath");
|
||||||
|
this.tipPath.Name = "tipPath";
|
||||||
|
//
|
||||||
|
// tipRequestHost
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tipRequestHost, "tipRequestHost");
|
||||||
|
this.tipRequestHost.Name = "tipRequestHost";
|
||||||
|
//
|
||||||
|
// labStreamSecurity
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labStreamSecurity, "labStreamSecurity");
|
||||||
|
this.labStreamSecurity.Name = "labStreamSecurity";
|
||||||
|
//
|
||||||
|
// cmbStreamSecurity
|
||||||
|
//
|
||||||
|
this.cmbStreamSecurity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbStreamSecurity.FormattingEnabled = true;
|
||||||
|
resources.ApplyResources(this.cmbStreamSecurity, "cmbStreamSecurity");
|
||||||
|
this.cmbStreamSecurity.Name = "cmbStreamSecurity";
|
||||||
|
this.cmbStreamSecurity.SelectedIndexChanged += new System.EventHandler(this.cmbStreamSecurity_SelectedIndexChanged);
|
||||||
|
//
|
||||||
|
// tipHeaderType
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tipHeaderType, "tipHeaderType");
|
||||||
|
this.tipHeaderType.Name = "tipHeaderType";
|
||||||
|
//
|
||||||
|
// txtRequestHost
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtRequestHost, "txtRequestHost");
|
||||||
|
this.txtRequestHost.Name = "txtRequestHost";
|
||||||
|
//
|
||||||
|
// labHeaderType
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labHeaderType, "labHeaderType");
|
||||||
|
this.labHeaderType.Name = "labHeaderType";
|
||||||
|
//
|
||||||
|
// labRequestHost
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.labRequestHost, "labRequestHost");
|
||||||
|
this.labRequestHost.Name = "labRequestHost";
|
||||||
|
//
|
||||||
|
// cmbHeaderType
|
||||||
|
//
|
||||||
|
this.cmbHeaderType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cmbHeaderType.FormattingEnabled = true;
|
||||||
|
resources.ApplyResources(this.cmbHeaderType, "cmbHeaderType");
|
||||||
|
this.cmbHeaderType.Name = "cmbHeaderType";
|
||||||
|
//
|
||||||
|
// ServerTransportControl
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.gbTransport);
|
||||||
|
this.Name = "ServerTransportControl";
|
||||||
|
this.Load += new System.EventHandler(this.ServerTransportControl_Load);
|
||||||
|
this.gbTransport.ResumeLayout(false);
|
||||||
|
this.gbTransport.PerformLayout();
|
||||||
|
this.panTlsMore.ResumeLayout(false);
|
||||||
|
this.panTlsMore.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.GroupBox gbTransport;
|
||||||
|
private System.Windows.Forms.Panel panTlsMore;
|
||||||
|
private System.Windows.Forms.TextBox txtSNI;
|
||||||
|
private System.Windows.Forms.Label labSNI;
|
||||||
|
private System.Windows.Forms.Label labAllowInsecure;
|
||||||
|
private System.Windows.Forms.ComboBox cmbAllowInsecure;
|
||||||
|
private System.Windows.Forms.Label tipNetwork;
|
||||||
|
private System.Windows.Forms.TextBox txtPath;
|
||||||
|
private System.Windows.Forms.ComboBox cmbNetwork;
|
||||||
|
private System.Windows.Forms.Label labNetwork;
|
||||||
|
private System.Windows.Forms.Label labPath;
|
||||||
|
private System.Windows.Forms.Label tipPath;
|
||||||
|
private System.Windows.Forms.Label tipRequestHost;
|
||||||
|
private System.Windows.Forms.Label labStreamSecurity;
|
||||||
|
private System.Windows.Forms.ComboBox cmbStreamSecurity;
|
||||||
|
private System.Windows.Forms.Label tipHeaderType;
|
||||||
|
private System.Windows.Forms.TextBox txtRequestHost;
|
||||||
|
private System.Windows.Forms.Label labHeaderType;
|
||||||
|
private System.Windows.Forms.Label labRequestHost;
|
||||||
|
private System.Windows.Forms.ComboBox cmbHeaderType;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.CheckedListBox clbAlpn;
|
||||||
|
}
|
||||||
|
}
|
||||||
204
v2rayN/v2rayN/Forms/ServerTransportControl.cs
Normal file
204
v2rayN/v2rayN/Forms/ServerTransportControl.cs
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Forms
|
||||||
|
{
|
||||||
|
public partial class ServerTransportControl : UserControl
|
||||||
|
{
|
||||||
|
public bool AllowXtls { get; set; }
|
||||||
|
private VmessItem vmessItem = null;
|
||||||
|
|
||||||
|
public ServerTransportControl()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
private void ServerTransportControl_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Init(VmessItem item)
|
||||||
|
{
|
||||||
|
vmessItem = item;
|
||||||
|
|
||||||
|
cmbNetwork.Items.AddRange(Global.networks.ToArray());
|
||||||
|
|
||||||
|
cmbStreamSecurity.Items.Clear();
|
||||||
|
cmbStreamSecurity.Items.Add(string.Empty);
|
||||||
|
cmbStreamSecurity.Items.Add(Global.StreamSecurity);
|
||||||
|
if (AllowXtls)
|
||||||
|
{
|
||||||
|
cmbStreamSecurity.Items.Add(Global.StreamSecurityX);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BindingServer(VmessItem item)
|
||||||
|
{
|
||||||
|
Init(item);
|
||||||
|
|
||||||
|
cmbNetwork.Text = vmessItem.network;
|
||||||
|
cmbHeaderType.Text = vmessItem.headerType;
|
||||||
|
txtRequestHost.Text = vmessItem.requestHost;
|
||||||
|
txtPath.Text = vmessItem.path;
|
||||||
|
cmbStreamSecurity.Text = vmessItem.streamSecurity;
|
||||||
|
cmbAllowInsecure.Text = vmessItem.allowInsecure;
|
||||||
|
txtSNI.Text = vmessItem.sni;
|
||||||
|
|
||||||
|
if (vmessItem.alpn != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < clbAlpn.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if (vmessItem.alpn.Contains(clbAlpn.Items[i].ToString()))
|
||||||
|
{
|
||||||
|
clbAlpn.SetItemChecked(i, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ClearServer(VmessItem item)
|
||||||
|
{
|
||||||
|
Init(item);
|
||||||
|
|
||||||
|
cmbNetwork.Text = Global.DefaultNetwork;
|
||||||
|
cmbHeaderType.Text = Global.None;
|
||||||
|
txtRequestHost.Text = "";
|
||||||
|
cmbStreamSecurity.Text = "";
|
||||||
|
cmbAllowInsecure.Text = "";
|
||||||
|
txtPath.Text = "";
|
||||||
|
txtSNI.Text = "";
|
||||||
|
for (int i = 0; i < clbAlpn.Items.Count; i++)
|
||||||
|
{
|
||||||
|
clbAlpn.SetItemChecked(i, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void EndBindingServer()
|
||||||
|
{
|
||||||
|
string network = cmbNetwork.Text;
|
||||||
|
string headerType = cmbHeaderType.Text;
|
||||||
|
string requestHost = txtRequestHost.Text;
|
||||||
|
string path = txtPath.Text;
|
||||||
|
string streamSecurity = cmbStreamSecurity.Text;
|
||||||
|
string allowInsecure = cmbAllowInsecure.Text;
|
||||||
|
string sni = txtSNI.Text;
|
||||||
|
|
||||||
|
vmessItem.network = network;
|
||||||
|
vmessItem.headerType = headerType;
|
||||||
|
vmessItem.requestHost = requestHost.Replace(" ", "");
|
||||||
|
vmessItem.path = path.Replace(" ", "");
|
||||||
|
vmessItem.streamSecurity = streamSecurity;
|
||||||
|
vmessItem.allowInsecure = allowInsecure;
|
||||||
|
vmessItem.sni = sni;
|
||||||
|
|
||||||
|
var alpn = new List<string>();
|
||||||
|
for (int i = 0; i < clbAlpn.Items.Count; i++)
|
||||||
|
{
|
||||||
|
if (clbAlpn.GetItemChecked(i))
|
||||||
|
{
|
||||||
|
alpn.Add(clbAlpn.Items[i].ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
vmessItem.alpn = alpn;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cmbNetwork_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SetHeaderType();
|
||||||
|
SetTips();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetHeaderType()
|
||||||
|
{
|
||||||
|
cmbHeaderType.Items.Clear();
|
||||||
|
|
||||||
|
string network = cmbNetwork.Text;
|
||||||
|
if (Utils.IsNullOrEmpty(network))
|
||||||
|
{
|
||||||
|
cmbHeaderType.Items.Add(Global.None);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (network.Equals(Global.DefaultNetwork))
|
||||||
|
{
|
||||||
|
cmbHeaderType.Items.Add(Global.None);
|
||||||
|
cmbHeaderType.Items.Add(Global.TcpHeaderHttp);
|
||||||
|
}
|
||||||
|
else if (network.Equals("kcp") || network.Equals("quic"))
|
||||||
|
{
|
||||||
|
cmbHeaderType.Items.Add(Global.None);
|
||||||
|
cmbHeaderType.Items.AddRange(Global.kcpHeaderTypes.ToArray());
|
||||||
|
}
|
||||||
|
else if (network.Equals("grpc"))
|
||||||
|
{
|
||||||
|
cmbHeaderType.Items.Add(Global.GrpcgunMode);
|
||||||
|
cmbHeaderType.Items.Add(Global.GrpcmultiMode);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cmbHeaderType.Items.Add(Global.None);
|
||||||
|
}
|
||||||
|
cmbHeaderType.SelectedIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetTips()
|
||||||
|
{
|
||||||
|
string network = cmbNetwork.Text;
|
||||||
|
if (Utils.IsNullOrEmpty(network))
|
||||||
|
{
|
||||||
|
network = Global.DefaultNetwork;
|
||||||
|
}
|
||||||
|
labHeaderType.Visible = true;
|
||||||
|
tipRequestHost.Text =
|
||||||
|
tipPath.Text =
|
||||||
|
tipHeaderType.Text = string.Empty;
|
||||||
|
|
||||||
|
if (network.Equals(Global.DefaultNetwork))
|
||||||
|
{
|
||||||
|
tipRequestHost.Text = UIRes.I18N("TransportRequestHostTip1");
|
||||||
|
tipHeaderType.Text = UIRes.I18N("TransportHeaderTypeTip1");
|
||||||
|
}
|
||||||
|
else if (network.Equals("kcp"))
|
||||||
|
{
|
||||||
|
tipHeaderType.Text = UIRes.I18N("TransportHeaderTypeTip2");
|
||||||
|
tipPath.Text = UIRes.I18N("TransportPathTip5");
|
||||||
|
}
|
||||||
|
else if (network.Equals("ws"))
|
||||||
|
{
|
||||||
|
tipRequestHost.Text = UIRes.I18N("TransportRequestHostTip2");
|
||||||
|
tipPath.Text = UIRes.I18N("TransportPathTip1");
|
||||||
|
}
|
||||||
|
else if (network.Equals("h2"))
|
||||||
|
{
|
||||||
|
tipRequestHost.Text = UIRes.I18N("TransportRequestHostTip3");
|
||||||
|
tipPath.Text = UIRes.I18N("TransportPathTip2");
|
||||||
|
}
|
||||||
|
else if (network.Equals("quic"))
|
||||||
|
{
|
||||||
|
tipRequestHost.Text = UIRes.I18N("TransportRequestHostTip4");
|
||||||
|
tipPath.Text = UIRes.I18N("TransportPathTip3");
|
||||||
|
tipHeaderType.Text = UIRes.I18N("TransportHeaderTypeTip3");
|
||||||
|
}
|
||||||
|
else if (network.Equals("grpc"))
|
||||||
|
{
|
||||||
|
tipPath.Text = UIRes.I18N("TransportPathTip4");
|
||||||
|
tipHeaderType.Text = UIRes.I18N("TransportHeaderTypeTip4");
|
||||||
|
labHeaderType.Visible = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cmbStreamSecurity_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string security = cmbStreamSecurity.Text;
|
||||||
|
if (Utils.IsNullOrEmpty(security))
|
||||||
|
{
|
||||||
|
panTlsMore.Hide();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
panTlsMore.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
738
v2rayN/v2rayN/Forms/ServerTransportControl.resx
Normal file
738
v2rayN/v2rayN/Forms/ServerTransportControl.resx
Normal file
@@ -0,0 +1,738 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="clbAlpn.ColumnWidth" type="System.Int32, mscorlib">
|
||||||
|
<value>70</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbAlpn.Items" xml:space="preserve">
|
||||||
|
<value>h2</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbAlpn.Items1" xml:space="preserve">
|
||||||
|
<value>http/1.1</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="clbAlpn.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>313, 7</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbAlpn.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>172, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbAlpn.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>44</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbAlpn.Name" xml:space="preserve">
|
||||||
|
<value>clbAlpn</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbAlpn.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbAlpn.Parent" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clbAlpn.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>241, 11</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>43</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>alpn</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
|
<value>label1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtSNI.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>100, 39</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtSNI.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>385, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtSNI.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtSNI.Name" xml:space="preserve">
|
||||||
|
<value>txtSNI</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtSNI.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtSNI.Parent" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtSNI.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="labSNI.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labSNI.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labSNI.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 43</value>
|
||||||
|
</data>
|
||||||
|
<data name="labSNI.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>23, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labSNI.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>32</value>
|
||||||
|
</data>
|
||||||
|
<data name="labSNI.Text" xml:space="preserve">
|
||||||
|
<value>SNI</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labSNI.Name" xml:space="preserve">
|
||||||
|
<value>labSNI</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labSNI.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labSNI.Parent" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labSNI.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 11</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>83, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>31</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.Text" xml:space="preserve">
|
||||||
|
<value>allowInsecure</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labAllowInsecure.Name" xml:space="preserve">
|
||||||
|
<value>labAllowInsecure</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labAllowInsecure.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labAllowInsecure.Parent" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labAllowInsecure.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Items" xml:space="preserve">
|
||||||
|
<value />
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Items1" xml:space="preserve">
|
||||||
|
<value>true</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Items2" xml:space="preserve">
|
||||||
|
<value>false</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>100, 7</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>80, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbAllowInsecure.Name" xml:space="preserve">
|
||||||
|
<value>cmbAllowInsecure</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbAllowInsecure.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbAllowInsecure.Parent" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbAllowInsecure.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="panTlsMore.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>200, 149</value>
|
||||||
|
</data>
|
||||||
|
<data name="panTlsMore.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>500, 71</value>
|
||||||
|
</data>
|
||||||
|
<data name="panTlsMore.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>33</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panTlsMore.Name" xml:space="preserve">
|
||||||
|
<value>panTlsMore</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panTlsMore.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panTlsMore.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>panTlsMore.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>350, 32</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>113, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>15</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.Text" xml:space="preserve">
|
||||||
|
<value>*Default value tcp</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipNetwork.Name" xml:space="preserve">
|
||||||
|
<value>tipNetwork</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipNetwork.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipNetwork.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipNetwork.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 124</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPath.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>396, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtPath.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPath.Name" xml:space="preserve">
|
||||||
|
<value>txtPath</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPath.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPath.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtPath.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>192, 28</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>143, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbNetwork.Name" xml:space="preserve">
|
||||||
|
<value>cmbNetwork</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbNetwork.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbNetwork.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbNetwork.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 32</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>167, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>13</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.Text" xml:space="preserve">
|
||||||
|
<value>Transport protocol(network)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labNetwork.Name" xml:space="preserve">
|
||||||
|
<value>labNetwork</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labNetwork.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labNetwork.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labNetwork.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 128</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>29, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>27</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.Text" xml:space="preserve">
|
||||||
|
<value>Path</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labPath.Name" xml:space="preserve">
|
||||||
|
<value>labPath</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labPath.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labPath.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labPath.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipPath.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipPath.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>529, 128</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>11, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipPath.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>24</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipPath.Text" xml:space="preserve">
|
||||||
|
<value>*</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipPath.Name" xml:space="preserve">
|
||||||
|
<value>tipPath</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipPath.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipPath.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipPath.ZOrder" xml:space="preserve">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipRequestHost.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipRequestHost.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>464, 96</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>11, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipRequestHost.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>23</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipRequestHost.Text" xml:space="preserve">
|
||||||
|
<value>*</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipRequestHost.Name" xml:space="preserve">
|
||||||
|
<value>tipRequestHost</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipRequestHost.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipRequestHost.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipRequestHost.ZOrder" xml:space="preserve">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 160</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>23, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>22</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.Text" xml:space="preserve">
|
||||||
|
<value>TLS</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labStreamSecurity.Name" xml:space="preserve">
|
||||||
|
<value>labStreamSecurity</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labStreamSecurity.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labStreamSecurity.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labStreamSecurity.ZOrder" xml:space="preserve">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbStreamSecurity.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 156</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbStreamSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>60, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbStreamSecurity.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbStreamSecurity.Name" xml:space="preserve">
|
||||||
|
<value>cmbStreamSecurity</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbStreamSecurity.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbStreamSecurity.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbStreamSecurity.ZOrder" xml:space="preserve">
|
||||||
|
<value>9</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipHeaderType.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipHeaderType.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipHeaderType.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>282, 64</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipHeaderType.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>11, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipHeaderType.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>20</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipHeaderType.Text" xml:space="preserve">
|
||||||
|
<value>*</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipHeaderType.Name" xml:space="preserve">
|
||||||
|
<value>tipHeaderType</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipHeaderType.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipHeaderType.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tipHeaderType.ZOrder" xml:space="preserve">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>158, 92</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Multiline" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>300, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRequestHost.Name" xml:space="preserve">
|
||||||
|
<value>txtRequestHost</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRequestHost.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRequestHost.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtRequestHost.ZOrder" xml:space="preserve">
|
||||||
|
<value>11</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 64</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>95, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>19</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.Text" xml:space="preserve">
|
||||||
|
<value>Camouflage type</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labHeaderType.Name" xml:space="preserve">
|
||||||
|
<value>labHeaderType</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labHeaderType.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labHeaderType.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labHeaderType.ZOrder" xml:space="preserve">
|
||||||
|
<value>12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>9, 96</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>143, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>17</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.Text" xml:space="preserve">
|
||||||
|
<value>Camouflage domain(host)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRequestHost.Name" xml:space="preserve">
|
||||||
|
<value>labRequestHost</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRequestHost.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRequestHost.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>labRequestHost.ZOrder" xml:space="preserve">
|
||||||
|
<value>13</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 60</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>143, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbHeaderType.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbHeaderType.Name" xml:space="preserve">
|
||||||
|
<value>cmbHeaderType</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbHeaderType.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbHeaderType.Parent" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cmbHeaderType.ZOrder" xml:space="preserve">
|
||||||
|
<value>14</value>
|
||||||
|
</data>
|
||||||
|
<data name="gbTransport.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="gbTransport.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="gbTransport.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>723, 223</value>
|
||||||
|
</data>
|
||||||
|
<data name="gbTransport.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>22</value>
|
||||||
|
</data>
|
||||||
|
<data name="gbTransport.Text" xml:space="preserve">
|
||||||
|
<value>Transport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>gbTransport.Name" xml:space="preserve">
|
||||||
|
<value>gbTransport</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>gbTransport.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>gbTransport.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>gbTransport.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>723, 223</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>ServerTransportControl</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
193
v2rayN/v2rayN/Forms/ServerTransportControl.zh-Hans.resx
Normal file
193
v2rayN/v2rayN/Forms/ServerTransportControl.zh-Hans.resx
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
<?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>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="tipNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>143, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="tipNetwork.Text" xml:space="preserve">
|
||||||
|
<value>*默认tcp,选错会无法连接</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 28</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>208, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>107, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labNetwork.Text" xml:space="preserve">
|
||||||
|
<value>传输协议(network)</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>65, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labPath.Text" xml:space="preserve">
|
||||||
|
<value>路径(path)</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>107, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labStreamSecurity.Text" xml:space="preserve">
|
||||||
|
<value>传输层安全(tls)</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 92</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>331, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>89, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labHeaderType.Text" xml:space="preserve">
|
||||||
|
<value>伪装类型(type)</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>89, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labRequestHost.Text" xml:space="preserve">
|
||||||
|
<value>伪装域名(host)</value>
|
||||||
|
</data>
|
||||||
|
<data name="gbTransport.Text" xml:space="preserve">
|
||||||
|
<value>底层传输方式(transport)</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>282, 11</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbAlpn.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>331, 7</value>
|
||||||
|
</data>
|
||||||
|
<data name="clbAlpn.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>160, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtSNI.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>391, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>167, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="labAllowInsecure.Text" xml:space="preserve">
|
||||||
|
<value>跳过证书验证(allowInsecure)</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbAllowInsecure.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>183, 7</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
70
v2rayN/v2rayN/Forms/SubSettingControl.Designer.cs
generated
70
v2rayN/v2rayN/Forms/SubSettingControl.Designer.cs
generated
@@ -29,27 +29,53 @@
|
|||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SubSettingControl));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SubSettingControl));
|
||||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
this.grbMain = new System.Windows.Forms.GroupBox();
|
||||||
|
this.txtUserAgent = new System.Windows.Forms.TextBox();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.btnShare = new System.Windows.Forms.Button();
|
||||||
this.chkEnabled = new System.Windows.Forms.CheckBox();
|
this.chkEnabled = new System.Windows.Forms.CheckBox();
|
||||||
this.btnRemove = new System.Windows.Forms.Button();
|
this.btnRemove = new System.Windows.Forms.Button();
|
||||||
this.txtUrl = new System.Windows.Forms.TextBox();
|
this.txtUrl = new System.Windows.Forms.TextBox();
|
||||||
this.txtRemarks = new System.Windows.Forms.TextBox();
|
this.txtRemarks = new System.Windows.Forms.TextBox();
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
this.label3 = new System.Windows.Forms.Label();
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
this.groupBox2.SuspendLayout();
|
this.picQRCode = new System.Windows.Forms.PictureBox();
|
||||||
|
this.grbMain.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.picQRCode)).BeginInit();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// groupBox2
|
// grbMain
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
resources.ApplyResources(this.grbMain, "grbMain");
|
||||||
this.groupBox2.Controls.Add(this.chkEnabled);
|
this.grbMain.Controls.Add(this.txtUserAgent);
|
||||||
this.groupBox2.Controls.Add(this.btnRemove);
|
this.grbMain.Controls.Add(this.label1);
|
||||||
this.groupBox2.Controls.Add(this.txtUrl);
|
this.grbMain.Controls.Add(this.btnShare);
|
||||||
this.groupBox2.Controls.Add(this.txtRemarks);
|
this.grbMain.Controls.Add(this.chkEnabled);
|
||||||
this.groupBox2.Controls.Add(this.label2);
|
this.grbMain.Controls.Add(this.btnRemove);
|
||||||
this.groupBox2.Controls.Add(this.label3);
|
this.grbMain.Controls.Add(this.txtUrl);
|
||||||
this.groupBox2.Name = "groupBox2";
|
this.grbMain.Controls.Add(this.txtRemarks);
|
||||||
this.groupBox2.TabStop = false;
|
this.grbMain.Controls.Add(this.label2);
|
||||||
|
this.grbMain.Controls.Add(this.label3);
|
||||||
|
this.grbMain.Name = "grbMain";
|
||||||
|
this.grbMain.TabStop = false;
|
||||||
|
//
|
||||||
|
// txtUserAgent
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.txtUserAgent, "txtUserAgent");
|
||||||
|
this.txtUserAgent.Name = "txtUserAgent";
|
||||||
|
this.txtUserAgent.Leave += new System.EventHandler(this.txtRemarks_Leave);
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label1, "label1");
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
//
|
||||||
|
// btnShare
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.btnShare, "btnShare");
|
||||||
|
this.btnShare.Name = "btnShare";
|
||||||
|
this.btnShare.UseVisualStyleBackColor = true;
|
||||||
|
this.btnShare.Click += new System.EventHandler(this.btnShare_Click);
|
||||||
//
|
//
|
||||||
// chkEnabled
|
// chkEnabled
|
||||||
//
|
//
|
||||||
@@ -87,27 +113,39 @@
|
|||||||
resources.ApplyResources(this.label3, "label3");
|
resources.ApplyResources(this.label3, "label3");
|
||||||
this.label3.Name = "label3";
|
this.label3.Name = "label3";
|
||||||
//
|
//
|
||||||
|
// picQRCode
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.picQRCode, "picQRCode");
|
||||||
|
this.picQRCode.Name = "picQRCode";
|
||||||
|
this.picQRCode.TabStop = false;
|
||||||
|
//
|
||||||
// SubSettingControl
|
// SubSettingControl
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.Controls.Add(this.groupBox2);
|
this.Controls.Add(this.picQRCode);
|
||||||
|
this.Controls.Add(this.grbMain);
|
||||||
this.Name = "SubSettingControl";
|
this.Name = "SubSettingControl";
|
||||||
this.Load += new System.EventHandler(this.SubSettingControl_Load);
|
this.Load += new System.EventHandler(this.SubSettingControl_Load);
|
||||||
this.groupBox2.ResumeLayout(false);
|
this.grbMain.ResumeLayout(false);
|
||||||
this.groupBox2.PerformLayout();
|
this.grbMain.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.picQRCode)).EndInit();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private System.Windows.Forms.GroupBox groupBox2;
|
private System.Windows.Forms.GroupBox grbMain;
|
||||||
private System.Windows.Forms.TextBox txtUrl;
|
private System.Windows.Forms.TextBox txtUrl;
|
||||||
private System.Windows.Forms.TextBox txtRemarks;
|
private System.Windows.Forms.TextBox txtRemarks;
|
||||||
private System.Windows.Forms.Label label2;
|
private System.Windows.Forms.Label label2;
|
||||||
private System.Windows.Forms.Label label3;
|
private System.Windows.Forms.Label label3;
|
||||||
private System.Windows.Forms.Button btnRemove;
|
private System.Windows.Forms.Button btnRemove;
|
||||||
private System.Windows.Forms.CheckBox chkEnabled;
|
private System.Windows.Forms.CheckBox chkEnabled;
|
||||||
|
private System.Windows.Forms.Button btnShare;
|
||||||
|
private System.Windows.Forms.PictureBox picQRCode;
|
||||||
|
private System.Windows.Forms.TextBox txtUserAgent;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using v2rayN.Base;
|
using v2rayN.Base;
|
||||||
|
using v2rayN.Handler;
|
||||||
using v2rayN.Mode;
|
using v2rayN.Mode;
|
||||||
|
|
||||||
namespace v2rayN.Forms
|
namespace v2rayN.Forms
|
||||||
@@ -11,7 +12,10 @@ namespace v2rayN.Forms
|
|||||||
public event ChangeEventHandler OnButtonClicked;
|
public event ChangeEventHandler OnButtonClicked;
|
||||||
|
|
||||||
|
|
||||||
public SubItem subItem { get; set; }
|
public SubItem subItem
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
public SubSettingControl()
|
public SubSettingControl()
|
||||||
{
|
{
|
||||||
@@ -20,6 +24,7 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
private void SubSettingControl_Load(object sender, EventArgs e)
|
private void SubSettingControl_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
this.Height = grbMain.Height;
|
||||||
BindingSub();
|
BindingSub();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,6 +35,7 @@ namespace v2rayN.Forms
|
|||||||
txtRemarks.Text = subItem.remarks.ToString();
|
txtRemarks.Text = subItem.remarks.ToString();
|
||||||
txtUrl.Text = subItem.url.ToString();
|
txtUrl.Text = subItem.url.ToString();
|
||||||
chkEnabled.Checked = subItem.enabled;
|
chkEnabled.Checked = subItem.enabled;
|
||||||
|
txtUserAgent.Text = subItem.userAgent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void EndBindingSub()
|
private void EndBindingSub()
|
||||||
@@ -39,6 +45,7 @@ namespace v2rayN.Forms
|
|||||||
subItem.remarks = txtRemarks.Text.TrimEx();
|
subItem.remarks = txtRemarks.Text.TrimEx();
|
||||||
subItem.url = txtUrl.Text.TrimEx();
|
subItem.url = txtUrl.Text.TrimEx();
|
||||||
subItem.enabled = chkEnabled.Checked;
|
subItem.enabled = chkEnabled.Checked;
|
||||||
|
subItem.userAgent = txtUserAgent.Text.TrimEx();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void txtRemarks_Leave(object sender, EventArgs e)
|
private void txtRemarks_Leave(object sender, EventArgs e)
|
||||||
@@ -54,9 +61,24 @@ namespace v2rayN.Forms
|
|||||||
subItem.url = string.Empty;
|
subItem.url = string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OnButtonClicked != null)
|
OnButtonClicked?.Invoke(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnShare_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (this.Height <= grbMain.Height)
|
||||||
{
|
{
|
||||||
OnButtonClicked(sender, e);
|
if (Utils.IsNullOrEmpty(subItem.url))
|
||||||
|
{
|
||||||
|
picQRCode.Image = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
picQRCode.Image = QRCodeHelper.GetQRCode(subItem.url);
|
||||||
|
this.Height = grbMain.Height + 200;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.Height = grbMain.Height;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,36 +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>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>User Agent(optional)</value>
|
||||||
|
</data>
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<data name="label2.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtUrl.Parent" xml:space="preserve">
|
<data name=">>txtUrl.Parent" xml:space="preserve">
|
||||||
<value>groupBox2</value>
|
<value>grbMain</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="picQRCode.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>619, 162</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUserAgent.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
<data name="chkEnabled.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkEnabled.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>60, 16</value>
|
<value>60, 16</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtUrl.Name" xml:space="preserve">
|
<data name=">>txtUrl.Name" xml:space="preserve">
|
||||||
<value>txtUrl</value>
|
<value>txtUrl</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>picQRCode.Name" xml:space="preserve">
|
||||||
|
<value>picQRCode</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnShare.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
<data name="btnRemove.Text" xml:space="preserve">
|
<data name="btnRemove.Text" xml:space="preserve">
|
||||||
<value>&Remove</value>
|
<value>Remove</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnRemove.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="btnRemove.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>484, 21</value>
|
<value>525, 21</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="btnRemove.TabIndex" type="System.Int32, mscorlib">
|
<data name="btnRemove.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>24</value>
|
<value>24</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtUrl.Size" type="System.Drawing.Size, System.Drawing">
|
<data name=">>txtUserAgent.Type" xml:space="preserve">
|
||||||
<value>432, 46</value>
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUserAgent.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 111</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>SubSettingControl</value>
|
<value>SubSettingControl</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
|
<value>label1</value>
|
||||||
|
</data>
|
||||||
|
<data name="grbMain.Text" xml:space="preserve">
|
||||||
|
<value>Subscription details</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnShare.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>26</value>
|
||||||
|
</data>
|
||||||
<data name=">>txtRemarks.Type" xml:space="preserve">
|
<data name=">>txtRemarks.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -154,13 +184,19 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtRemarks.Parent" xml:space="preserve">
|
<data name=">>txtRemarks.Parent" xml:space="preserve">
|
||||||
<value>groupBox2</value>
|
<value>grbMain</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnShare.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>434, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>83, 12</value>
|
<value>83, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>groupBox2.Name" xml:space="preserve">
|
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>groupBox2</value>
|
<value>232, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="grbMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Top</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
<value>6, 12</value>
|
<value>6, 12</value>
|
||||||
@@ -171,44 +207,68 @@
|
|||||||
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtRemarks.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>127, 21</value>
|
<value>127, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
<data name="btnShare.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>True</value>
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnShare.Text" xml:space="preserve">
|
||||||
|
<value>Share</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
|
<value>grbMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>chkEnabled.ZOrder" xml:space="preserve">
|
<data name=">>chkEnabled.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 55</value>
|
<value>12, 53</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtUrl.Location" type="System.Drawing.Point, System.Drawing">
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
<value>127, 55</value>
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="picQRCode.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>27</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>10</value>
|
<value>10</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>Bottom</value>
|
<value>125, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="picQRCode.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>25</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUrl.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>127, 53</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUserAgent.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label2.Type" xml:space="preserve">
|
<data name=">>label2.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtUrl.ZOrder" xml:space="preserve">
|
<data name=">>txtUrl.ZOrder" xml:space="preserve">
|
||||||
<value>2</value>
|
<value>5</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>chkEnabled.Parent" xml:space="preserve">
|
<data name="picQRCode.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
|
||||||
<value>groupBox2</value>
|
<value>Zoom</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label2.ZOrder" xml:space="preserve">
|
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>4</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>47, 12</value>
|
<value>47, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
<data name="txtUrl.ScrollBars" type="System.Windows.Forms.ScrollBars, System.Windows.Forms">
|
||||||
<value>Subscription details</value>
|
<value>Vertical</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
|
<data name=">>btnRemove.Name" xml:space="preserve">
|
||||||
<value>0, 9</value>
|
<value>btnRemove</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUrl.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkEnabled.Text" xml:space="preserve">
|
<data name="chkEnabled.Text" xml:space="preserve">
|
||||||
<value>Enable</value>
|
<value>Enable</value>
|
||||||
@@ -217,28 +277,49 @@
|
|||||||
<value>chkEnabled</value>
|
<value>chkEnabled</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
<data name=">>txtRemarks.ZOrder" xml:space="preserve">
|
||||||
<value>3</value>
|
<value>6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnRemove.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<data name="btnRemove.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.Text" xml:space="preserve">
|
<data name=">>txtRemarks.Name" xml:space="preserve">
|
||||||
<value>Address (url)</value>
|
<value>txtRemarks</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="picQRCode.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 148</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnShare.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>75, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnRemove.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnShare.Parent" xml:space="preserve">
|
||||||
|
<value>grbMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkEnabled.TabIndex" type="System.Int32, mscorlib">
|
<data name="chkEnabled.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>25</value>
|
<value>25</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>txtUserAgent.Parent" xml:space="preserve">
|
||||||
|
<value>grbMain</value>
|
||||||
|
</data>
|
||||||
|
<data name="grbMain.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
<data name="txtUrl.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtUrl.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>23</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label2.Parent" xml:space="preserve">
|
<data name=">>label2.Parent" xml:space="preserve">
|
||||||
<value>groupBox2</value>
|
<value>grbMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>btnRemove.Parent" xml:space="preserve">
|
<data name="txtUserAgent.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>groupBox2</value>
|
<value>473, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkEnabled.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="chkEnabled.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>406, 23</value>
|
<value>368, 23</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
@@ -246,8 +327,20 @@
|
|||||||
<data name="chkEnabled.AutoSize" type="System.Boolean, mscorlib">
|
<data name="chkEnabled.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>btnRemove.Name" xml:space="preserve">
|
<data name="grbMain.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>btnRemove</value>
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnRemove.Parent" xml:space="preserve">
|
||||||
|
<value>grbMain</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>picQRCode.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
@@ -255,20 +348,35 @@
|
|||||||
<data name=">>label2.Name" xml:space="preserve">
|
<data name=">>label2.Name" xml:space="preserve">
|
||||||
<value>label2</value>
|
<value>label2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>groupBox2.Type" xml:space="preserve">
|
<data name=">>grbMain.Parent" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>$this</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name=">>label3.Parent" xml:space="preserve">
|
||||||
<value>584, 110</value>
|
<value>grbMain</value>
|
||||||
|
</data>
|
||||||
|
<data name="grbMain.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>619, 148</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnShare.Name" xml:space="preserve">
|
||||||
|
<value>btnShare</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnShare.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||||
|
<value>7</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkEnabled.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
<data name="chkEnabled.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
<value>NoControl</value>
|
<value>NoControl</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>584, 119</value>
|
<value>12, 115</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.TabIndex" type="System.Int32, mscorlib">
|
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>11</value>
|
<value>619, 310</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>txtUserAgent.Name" xml:space="preserve">
|
||||||
|
<value>txtUserAgent</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label2.Text" xml:space="preserve">
|
<data name="label2.Text" xml:space="preserve">
|
||||||
<value>Remarks</value>
|
<value>Remarks</value>
|
||||||
@@ -276,28 +384,28 @@
|
|||||||
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="picQRCode.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtUrl.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>473, 46</value>
|
||||||
|
</data>
|
||||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 25</value>
|
<value>12, 25</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnRemove.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="btnRemove.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>75, 23</value>
|
<value>75, 23</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label3.Parent" xml:space="preserve">
|
<data name=">>chkEnabled.Parent" xml:space="preserve">
|
||||||
<value>groupBox2</value>
|
<value>grbMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtRemarks.Size" type="System.Drawing.Size, System.Drawing">
|
<data name=">>grbMain.ZOrder" xml:space="preserve">
|
||||||
<value>265, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>10</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>txtUrl.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnRemove.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>groupBox2.Parent" xml:space="preserve">
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Address (url)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>picQRCode.Parent" xml:space="preserve">
|
||||||
<value>$this</value>
|
<value>$this</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>btnRemove.Type" xml:space="preserve">
|
<data name=">>btnRemove.Type" xml:space="preserve">
|
||||||
@@ -306,14 +414,17 @@
|
|||||||
<data name=">>$this.Type" xml:space="preserve">
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>groupBox2.ZOrder" xml:space="preserve">
|
<data name=">>picQRCode.Type" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>txtRemarks.Name" xml:space="preserve">
|
<data name=">>grbMain.Name" xml:space="preserve">
|
||||||
<value>txtRemarks</value>
|
<value>grbMain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
<data name=">>grbMain.Type" xml:space="preserve">
|
||||||
<value>5</value>
|
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>chkEnabled.Type" xml:space="preserve">
|
<data name=">>chkEnabled.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
@@ -324,7 +435,4 @@
|
|||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>zh-Hans</value>
|
|
||||||
</metadata>
|
|
||||||
</root>
|
</root>
|
||||||
@@ -118,6 +118,15 @@
|
|||||||
<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" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>101, 12</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>User Agent(可选)</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnShare.Text" xml:space="preserve">
|
||||||
|
<value>分享</value>
|
||||||
|
</data>
|
||||||
<data name="chkEnabled.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkEnabled.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>48, 16</value>
|
<value>48, 16</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -139,7 +148,7 @@
|
|||||||
<data name="label3.Text" xml:space="preserve">
|
<data name="label3.Text" xml:space="preserve">
|
||||||
<value>地址 (url)</value>
|
<value>地址 (url)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
<data name="grbMain.Text" xml:space="preserve">
|
||||||
<value>订阅详情</value>
|
<value>订阅详情</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -35,7 +35,7 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
for (int k = config.subItem.Count - 1; k >= 0; k--)
|
for (int k = config.subItem.Count - 1; k >= 0; k--)
|
||||||
{
|
{
|
||||||
var item = config.subItem[k];
|
SubItem item = config.subItem[k];
|
||||||
if (Utils.IsNullOrEmpty(item.remarks)
|
if (Utils.IsNullOrEmpty(item.remarks)
|
||||||
&& Utils.IsNullOrEmpty(item.url))
|
&& Utils.IsNullOrEmpty(item.url))
|
||||||
{
|
{
|
||||||
@@ -47,9 +47,8 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int k = 0; k < config.subItem.Count; k++)
|
foreach (SubItem item in config.subItem)
|
||||||
{
|
{
|
||||||
var item = config.subItem[k];
|
|
||||||
SubSettingControl control = new SubSettingControl();
|
SubSettingControl control = new SubSettingControl();
|
||||||
control.OnButtonClicked += Control_OnButtonClicked;
|
control.OnButtonClicked += Control_OnButtonClicked;
|
||||||
control.subItem = item;
|
control.subItem = item;
|
||||||
@@ -80,7 +79,7 @@ namespace v2rayN.Forms
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UI.Show(UIRes.I18N("OperationFailed"));
|
UI.ShowWarning(UIRes.I18N("OperationFailed"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,10 +98,12 @@ namespace v2rayN.Forms
|
|||||||
|
|
||||||
private void AddSub()
|
private void AddSub()
|
||||||
{
|
{
|
||||||
var subItem = new SubItem();
|
SubItem subItem = new SubItem
|
||||||
subItem.id = string.Empty;
|
{
|
||||||
subItem.remarks = "remarks";
|
id = string.Empty,
|
||||||
subItem.url = "url";
|
remarks = "remarks",
|
||||||
|
url = "url"
|
||||||
|
};
|
||||||
config.subItem.Add(subItem);
|
config.subItem.Add(subItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -157,7 +157,7 @@
|
|||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panCon.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panCon.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>581, 569</value>
|
<value>614, 351</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panCon.TabIndex" type="System.Int32, mscorlib">
|
<data name="panCon.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>10</value>
|
<value>10</value>
|
||||||
@@ -232,10 +232,10 @@
|
|||||||
<value>Bottom</value>
|
<value>Bottom</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 569</value>
|
<value>0, 351</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>581, 60</value>
|
<value>614, 60</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>7</value>
|
<value>7</value>
|
||||||
@@ -259,7 +259,7 @@
|
|||||||
<value>6, 12</value>
|
<value>6, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>581, 629</value>
|
<value>614, 411</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>Subscription settings</value>
|
<value>Subscription settings</value>
|
||||||
|
|||||||
@@ -117,12 +117,15 @@
|
|||||||
<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="btnClose.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>取消(&C)</value>
|
<value>订阅设置</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnAdd.Text" xml:space="preserve">
|
<data name="btnAdd.Text" xml:space="preserve">
|
||||||
<value>添加(&A)</value>
|
<value>添加(&A)</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="btnClose.Text" xml:space="preserve">
|
||||||
|
<value>取消(&C)</value>
|
||||||
|
</data>
|
||||||
<data name="btnOK.Text" xml:space="preserve">
|
<data name="btnOK.Text" xml:space="preserve">
|
||||||
<value>确定(&O)</value>
|
<value>确定(&O)</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -143,7 +146,4 @@
|
|||||||
ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAMAAAADAAAACw==
|
ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAMAAAADAAAACw==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>订阅设置</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
@@ -1,19 +1,25 @@
|
|||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace v2rayN
|
namespace v2rayN
|
||||||
{
|
{
|
||||||
class Global
|
class Global
|
||||||
{
|
{
|
||||||
#region 常量
|
#region 常量
|
||||||
|
|
||||||
|
//public const string DownloadFileName = "v2ray-windows.zip";
|
||||||
|
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";
|
||||||
|
public const string v2flyCoreUrl = "https://github.com/v2fly/v2ray-core/releases";
|
||||||
|
public const string xrayCoreUrl = "https://github.com/XTLS/Xray-core/releases";
|
||||||
|
public const string NUrl = @"https://github.com/2dust/v2rayN/releases";
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// SpeedTestUrl
|
/// SpeedTestUrl
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string SpeedTestUrl = @"http://speedtest-sgp1.digitalocean.com/10mb.test";
|
public const string SpeedTestUrl = @"http://cachefly.cachefly.net/10mb.test";
|
||||||
public const string SpeedPingTestUrl = @"https://www.google.com/generate_204";
|
public const string SpeedPingTestUrl = @"https://www.google.com/generate_204";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -21,12 +27,11 @@ namespace v2rayN
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string CustomRoutingListUrl = @"https://raw.githubusercontent.com/2dust/v2rayCustomRoutingList/master/";
|
public const string CustomRoutingListUrl = @"https://raw.githubusercontent.com/2dust/v2rayCustomRoutingList/master/";
|
||||||
|
|
||||||
public const string GFWLIST_URL = "https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt";
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// PromotionUrl
|
/// PromotionUrl
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string PromotionUrl = @"aHR0cHM6Ly8xLjIzNDQ1Ni54eXovYWJjLmh0bWw=";
|
public const string PromotionUrl = @"aHR0cHM6Ly85LjIzNDQ1Ni54eXovYWJjLmh0bWw=";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 本软件配置文件名
|
/// 本软件配置文件名
|
||||||
@@ -54,10 +59,7 @@ namespace v2rayN
|
|||||||
/// v2ray配置Httpresponse文件名
|
/// v2ray配置Httpresponse文件名
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string v2raySampleHttpresponseFileName = "v2rayN.Sample.SampleHttpresponse.txt";
|
public const string v2raySampleHttpresponseFileName = "v2rayN.Sample.SampleHttpresponse.txt";
|
||||||
/// <summary>
|
|
||||||
/// 空白的pac文件
|
|
||||||
/// </summary>
|
|
||||||
public const string BlankPacFileName = "v2rayN.Sample.BlankPac.txt";
|
|
||||||
|
|
||||||
public const string CustomRoutingFileName = "v2rayN.Sample.custom_routing_";
|
public const string CustomRoutingFileName = "v2rayN.Sample.custom_routing_";
|
||||||
|
|
||||||
@@ -101,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";
|
||||||
@@ -114,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://";
|
||||||
@@ -129,11 +144,22 @@ namespace v2rayN
|
|||||||
/// https
|
/// https
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string httpsProtocol = "https://";
|
public const string httpsProtocol = "https://";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// pac
|
/// vless
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string pacFILE = "pac.txt";
|
public const string vlessProtocol = "vless://";
|
||||||
|
/// <summary>
|
||||||
|
/// vless
|
||||||
|
/// </summary>
|
||||||
|
public const string vlessProtocolLite = "vless";
|
||||||
|
/// <summary>
|
||||||
|
/// trojan
|
||||||
|
/// </summary>
|
||||||
|
public const string trojanProtocol = "trojan://";
|
||||||
|
/// <summary>
|
||||||
|
/// trojan
|
||||||
|
/// </summary>
|
||||||
|
public const string trojanProtocolLite = "trojan";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// email
|
/// email
|
||||||
@@ -150,6 +176,10 @@ namespace v2rayN
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string MyRegKeyLanguage = "CurrentLanguage";
|
public const string MyRegKeyLanguage = "CurrentLanguage";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public const string MyRegKeySecurityProtocolTls13 = "SecurityProtocolTls13";
|
||||||
|
/// <summary>
|
||||||
/// Icon
|
/// Icon
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string CustomIconName = "v2rayN.ico";
|
public const string CustomIconName = "v2rayN.ico";
|
||||||
@@ -162,7 +192,18 @@ namespace v2rayN
|
|||||||
}
|
}
|
||||||
public const string StatisticLogOverall = "StatisticLogOverall.json";
|
public const string StatisticLogOverall = "StatisticLogOverall.json";
|
||||||
|
|
||||||
public const string IEProxyExceptions = "<local>;localhost;127.*;10.*;172.16.*;172.17.*;172.18.*;172.19.*;172.20.*;172.21.*;172.22.*;172.23.*;172.24.*;172.25.*;172.26.*;172.27.*;172.28.*;172.29.*;172.30.*;172.31.*;172.32.*";
|
public const string IEProxyExceptions = "localhost;127.*;10.*;172.16.*;172.17.*;172.18.*;172.19.*;172.20.*;172.21.*;172.22.*;172.23.*;172.24.*;172.25.*;172.26.*;172.27.*;172.28.*;172.29.*;172.30.*;172.31.*;192.168.*";
|
||||||
|
|
||||||
|
public const string RoutingRuleComma = "<COMMA>";
|
||||||
|
|
||||||
|
public static readonly List<string> vmessSecuritys = new List<string> { "aes-128-gcm", "chacha20-poly1305", "auto", "none", "zero" };
|
||||||
|
public static readonly List<string> ssSecuritys = new List<string> { "aes-256-gcm", "aes-128-gcm", "chacha20-poly1305", "chacha20-ietf-poly1305", "none", "plain" };
|
||||||
|
public static readonly List<string> xtlsFlows = new List<string> { "", "xtls-rprx-origin", "xtls-rprx-origin-udp443", "xtls-rprx-direct", "xtls-rprx-direct-udp443" };
|
||||||
|
public static readonly List<string> networks = new List<string> { "tcp", "kcp", "ws", "h2", "quic", "grpc" };
|
||||||
|
public static readonly List<string> kcpHeaderTypes = new List<string> { "srtp", "utp", "wechat-video", "dtls", "wireguard" };
|
||||||
|
|
||||||
|
public const string GrpcgunMode = "gun";
|
||||||
|
public const string GrpcmultiMode = "multi";
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -200,13 +241,6 @@ namespace v2rayN
|
|||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// PAC端口
|
|
||||||
/// </summary>
|
|
||||||
public static int pacPort
|
|
||||||
{
|
|
||||||
get; set;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
@@ -220,6 +254,10 @@ namespace v2rayN
|
|||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
public static System.Threading.Mutex mutexObj
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,13 +1,7 @@
|
|||||||
using Newtonsoft.Json;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Text;
|
|
||||||
using v2rayN.Base;
|
using v2rayN.Base;
|
||||||
using v2rayN.Mode;
|
|
||||||
using v2rayN.Properties;
|
|
||||||
|
|
||||||
namespace v2rayN.Handler
|
namespace v2rayN.Handler
|
||||||
{
|
{
|
||||||
@@ -16,19 +10,10 @@ namespace v2rayN.Handler
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
class DownloadHandle
|
class DownloadHandle
|
||||||
{
|
{
|
||||||
public event EventHandler<ResultEventArgs> AbsoluteCompleted;
|
|
||||||
|
|
||||||
public event EventHandler<ResultEventArgs> UpdateCompleted;
|
public event EventHandler<ResultEventArgs> UpdateCompleted;
|
||||||
|
|
||||||
public event ErrorEventHandler Error;
|
public event ErrorEventHandler Error;
|
||||||
|
|
||||||
public string DownloadFileName
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return "v2ray-windows.zip";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class ResultEventArgs : EventArgs
|
public class ResultEventArgs : EventArgs
|
||||||
{
|
{
|
||||||
@@ -47,118 +32,18 @@ namespace v2rayN.Handler
|
|||||||
private DateTime totalDatetime = new DateTime();
|
private DateTime totalDatetime = new DateTime();
|
||||||
private int DownloadTimeout = -1;
|
private int DownloadTimeout = -1;
|
||||||
|
|
||||||
|
public WebClientEx DownloadFileAsync(string url, WebProxy webProxy, int downloadTimeout)
|
||||||
|
|
||||||
#region v2rayN
|
|
||||||
|
|
||||||
private string nLatestUrl = "https://github.com/2dust/v2rayN/releases/latest";
|
|
||||||
private const string nUrl = "https://github.com/2dust/v2rayN/releases/download/{0}/v2rayN.zip";
|
|
||||||
|
|
||||||
public void AbsoluteV2rayN(Config config)
|
|
||||||
{
|
|
||||||
Utils.SetSecurityProtocol();
|
|
||||||
WebRequest request = WebRequest.Create(nLatestUrl);
|
|
||||||
request.BeginGetResponse(new AsyncCallback(OnResponseV2rayN), request);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnResponseV2rayN(IAsyncResult ar)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
HttpWebRequest request = (HttpWebRequest)ar.AsyncState;
|
|
||||||
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(ar);
|
|
||||||
string redirectUrl = response.ResponseUri.AbsoluteUri;
|
|
||||||
string version = redirectUrl.Substring(redirectUrl.LastIndexOf("/", StringComparison.Ordinal) + 1);
|
|
||||||
|
|
||||||
var curVersion = FileVersionInfo.GetVersionInfo(Utils.GetExePath()).FileVersion.ToString();
|
|
||||||
if (curVersion == version)
|
|
||||||
{
|
|
||||||
if (AbsoluteCompleted != null)
|
|
||||||
{
|
|
||||||
AbsoluteCompleted(this, new ResultEventArgs(false, "Already the latest version"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
string url = string.Format(nUrl, version);
|
|
||||||
if (AbsoluteCompleted != null)
|
|
||||||
{
|
|
||||||
AbsoluteCompleted(this, new ResultEventArgs(true, url));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog(ex.Message, ex);
|
|
||||||
|
|
||||||
if (Error != null)
|
|
||||||
Error(this, new ErrorEventArgs(ex));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Core
|
|
||||||
|
|
||||||
private string coreLatestUrl = "https://github.com/v2ray/v2ray-core/releases/latest";
|
|
||||||
private const string coreUrl = "https://github.com/v2ray/v2ray-core/releases/download/{0}/v2ray-windows-{1}.zip";
|
|
||||||
|
|
||||||
public void AbsoluteV2rayCore(Config config)
|
|
||||||
{
|
|
||||||
Utils.SetSecurityProtocol();
|
|
||||||
WebRequest request = WebRequest.Create(coreLatestUrl);
|
|
||||||
request.BeginGetResponse(new AsyncCallback(OnResponseV2rayCore), request);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnResponseV2rayCore(IAsyncResult ar)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
HttpWebRequest request = (HttpWebRequest)ar.AsyncState;
|
|
||||||
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(ar);
|
|
||||||
string redirectUrl = response.ResponseUri.AbsoluteUri;
|
|
||||||
string version = redirectUrl.Substring(redirectUrl.LastIndexOf("/", StringComparison.Ordinal) + 1);
|
|
||||||
|
|
||||||
string osBit = string.Empty;
|
|
||||||
if (Environment.Is64BitProcess)
|
|
||||||
{
|
|
||||||
osBit = "64";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
osBit = "32";
|
|
||||||
}
|
|
||||||
string url = string.Format(coreUrl, version, osBit);
|
|
||||||
if (AbsoluteCompleted != null)
|
|
||||||
{
|
|
||||||
AbsoluteCompleted(this, new ResultEventArgs(true, url));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog(ex.Message, ex);
|
|
||||||
|
|
||||||
if (Error != null)
|
|
||||||
Error(this, new ErrorEventArgs(ex));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Download
|
|
||||||
|
|
||||||
public void DownloadFileAsync(Config config, string url, WebProxy webProxy, int downloadTimeout)
|
|
||||||
{
|
{
|
||||||
|
WebClientEx ws = new WebClientEx();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Utils.SetSecurityProtocol();
|
Utils.SetSecurityProtocol();
|
||||||
if (UpdateCompleted != null)
|
UpdateCompleted?.Invoke(this, new ResultEventArgs(false, UIRes.I18N("Downloading")));
|
||||||
{
|
|
||||||
UpdateCompleted(this, new ResultEventArgs(false, "Downloading..."));
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
||||||
{
|
{
|
||||||
@@ -167,15 +52,15 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
ws.DownloadFileCompleted += ws_DownloadFileCompleted;
|
ws.DownloadFileCompleted += ws_DownloadFileCompleted;
|
||||||
ws.DownloadProgressChanged += ws_DownloadProgressChanged;
|
ws.DownloadProgressChanged += ws_DownloadProgressChanged;
|
||||||
ws.DownloadFileAsync(new Uri(url), Utils.GetPath(DownloadFileName));
|
ws.DownloadFileAsync(new Uri(url), Utils.GetPath(Utils.GetDownloadFileName(url)));
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Utils.SaveLog(ex.Message, ex);
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
|
||||||
if (Error != null)
|
Error?.Invoke(this, new ErrorEventArgs(ex));
|
||||||
Error(this, new ErrorEventArgs(ex));
|
|
||||||
}
|
}
|
||||||
|
return ws;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ws_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
|
void ws_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
|
||||||
@@ -205,7 +90,6 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ws_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
|
void ws_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -216,18 +100,18 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
((WebClientEx)sender).Dispose();
|
((WebClientEx)sender).Dispose();
|
||||||
TimeSpan ts = (DateTime.Now - totalDatetime);
|
TimeSpan ts = (DateTime.Now - totalDatetime);
|
||||||
string speed = string.Format("<{0} M/s", (totalBytesToReceive / ts.TotalMilliseconds / 1000).ToString("#0.##"));
|
string speed = string.Format("{0} M/s", (totalBytesToReceive / ts.TotalMilliseconds / 1000).ToString("#0.0"));
|
||||||
UpdateCompleted(this, new ResultEventArgs(true, speed));
|
UpdateCompleted(this, new ResultEventArgs(true, speed.PadLeft(8, ' ')));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e.Error == null
|
if (e.Error == null
|
||||||
|| Utils.IsNullOrEmpty(e.Error.ToString()))
|
|| Utils.IsNullOrEmpty(e.Error.ToString()))
|
||||||
{
|
{
|
||||||
|
((WebClientEx)sender).Dispose();
|
||||||
TimeSpan ts = (DateTime.Now - totalDatetime);
|
TimeSpan ts = (DateTime.Now - totalDatetime);
|
||||||
string speed = string.Format("{0} M/s", (totalBytesToReceive / ts.TotalMilliseconds / 1000).ToString("#0.##"));
|
string speed = string.Format("{0} M/s", (totalBytesToReceive / ts.TotalMilliseconds / 1000).ToString("#0.0"));
|
||||||
UpdateCompleted(this, new ResultEventArgs(true, speed));
|
UpdateCompleted(this, new ResultEventArgs(true, speed.PadLeft(8, ' ')));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -239,8 +123,7 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
Utils.SaveLog(ex.Message, ex);
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
|
||||||
if (Error != null)
|
Error?.Invoke(this, new ErrorEventArgs(ex));
|
||||||
Error(this, new ErrorEventArgs(ex));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -248,7 +131,7 @@ namespace v2rayN.Handler
|
|||||||
/// DownloadString
|
/// DownloadString
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="url"></param>
|
/// <param name="url"></param>
|
||||||
public void WebDownloadString(string url)
|
public void WebDownloadString(string url, WebProxy webProxy, string userAgent)
|
||||||
{
|
{
|
||||||
string source = string.Empty;
|
string source = string.Empty;
|
||||||
try
|
try
|
||||||
@@ -256,6 +139,17 @@ namespace v2rayN.Handler
|
|||||||
Utils.SetSecurityProtocol();
|
Utils.SetSecurityProtocol();
|
||||||
|
|
||||||
WebClientEx ws = new WebClientEx();
|
WebClientEx ws = new WebClientEx();
|
||||||
|
if (webProxy != null)
|
||||||
|
{
|
||||||
|
ws.Proxy = webProxy;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Utils.IsNullOrEmpty(userAgent))
|
||||||
|
{
|
||||||
|
userAgent = $"{Utils.GetVersion(false)}";
|
||||||
|
}
|
||||||
|
ws.Headers.Add("user-agent", userAgent);
|
||||||
|
|
||||||
ws.DownloadStringCompleted += Ws_DownloadStringCompleted;
|
ws.DownloadStringCompleted += Ws_DownloadStringCompleted;
|
||||||
ws.DownloadStringAsync(new Uri(url));
|
ws.DownloadStringAsync(new Uri(url));
|
||||||
}
|
}
|
||||||
@@ -273,10 +167,7 @@ namespace v2rayN.Handler
|
|||||||
|| Utils.IsNullOrEmpty(e.Error.ToString()))
|
|| Utils.IsNullOrEmpty(e.Error.ToString()))
|
||||||
{
|
{
|
||||||
string source = e.Result;
|
string source = e.Result;
|
||||||
if (UpdateCompleted != null)
|
UpdateCompleted?.Invoke(this, new ResultEventArgs(true, source));
|
||||||
{
|
|
||||||
UpdateCompleted(this, new ResultEventArgs(true, source));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -287,52 +178,56 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
Utils.SaveLog(ex.Message, ex);
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
|
||||||
if (Error != null)
|
Error?.Invoke(this, new ErrorEventArgs(ex));
|
||||||
Error(this, new ErrorEventArgs(ex));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
public string WebDownloadStringSync(string url)
|
||||||
|
|
||||||
#region PAC
|
|
||||||
|
|
||||||
public string GenPacFile(string result)
|
|
||||||
{
|
{
|
||||||
|
string source = string.Empty;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
File.WriteAllText(Utils.GetTempPath("gfwlist.txt"), result, Encoding.UTF8);
|
Utils.SetSecurityProtocol();
|
||||||
List<string> lines = ParsePacResult(result);
|
|
||||||
string abpContent = Utils.UnGzip(Resources.abp_js);
|
WebClientEx ws = new WebClientEx();
|
||||||
abpContent = abpContent.Replace("__RULES__", JsonConvert.SerializeObject(lines, Formatting.Indented));
|
|
||||||
File.WriteAllText(Utils.GetPath(Global.pacFILE), abpContent, Encoding.UTF8);
|
return ws.DownloadString(new Uri(url));
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Utils.SaveLog(ex.Message, ex);
|
Utils.SaveLog(ex.Message, ex);
|
||||||
return ex.Message;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
return string.Empty;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<string> ParsePacResult(string response)
|
public WebClientEx DownloadDataAsync(string url, WebProxy webProxy, int downloadTimeout)
|
||||||
{
|
{
|
||||||
IEnumerable<char> IgnoredLineBegins = new[] { '!', '[' };
|
WebClientEx ws = new WebClientEx();
|
||||||
|
try
|
||||||
byte[] bytes = Convert.FromBase64String(response);
|
|
||||||
string content = Encoding.UTF8.GetString(bytes);
|
|
||||||
List<string> valid_lines = new List<string>();
|
|
||||||
using (var sr = new StringReader(content))
|
|
||||||
{
|
{
|
||||||
foreach (var line in sr.NonWhiteSpaceLines())
|
Utils.SetSecurityProtocol();
|
||||||
{
|
UpdateCompleted?.Invoke(this, new ResultEventArgs(false, UIRes.I18N("Downloading")));
|
||||||
if (line.BeginWithAny(IgnoredLineBegins))
|
|
||||||
continue;
|
|
||||||
valid_lines.Add(line);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return valid_lines;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
progressPercentage = -1;
|
||||||
|
totalBytesToReceive = 0;
|
||||||
|
|
||||||
|
DownloadTimeout = downloadTimeout;
|
||||||
|
if (webProxy != null)
|
||||||
|
{
|
||||||
|
ws.Proxy = webProxy;
|
||||||
|
}
|
||||||
|
|
||||||
|
ws.DownloadProgressChanged += ws_DownloadProgressChanged;
|
||||||
|
ws.DownloadDataCompleted += ws_DownloadFileCompleted;
|
||||||
|
ws.DownloadDataAsync(new Uri(url));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
|
||||||
|
Error?.Invoke(this, new ErrorEventArgs(ex));
|
||||||
|
}
|
||||||
|
return ws;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
using Grpc.Core;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Net;
|
using System.IO;
|
||||||
using System.Net.Sockets;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using v2rayN.Base;
|
using v2rayN.Base;
|
||||||
using v2rayN.Mode;
|
using v2rayN.Mode;
|
||||||
@@ -15,6 +12,7 @@ namespace v2rayN.Handler
|
|||||||
class MainFormHandler
|
class MainFormHandler
|
||||||
{
|
{
|
||||||
private static MainFormHandler instance;
|
private static MainFormHandler instance;
|
||||||
|
Action<bool, string> _updateUI;
|
||||||
|
|
||||||
//private DownloadHandle downloadHandle2;
|
//private DownloadHandle downloadHandle2;
|
||||||
//private Config _config;
|
//private Config _config;
|
||||||
@@ -38,24 +36,38 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var color = ColorTranslator.FromHtml("#3399CC");
|
Color color = ColorTranslator.FromHtml("#3399CC");
|
||||||
var index = config.listenerType;
|
int index = (int)config.sysProxyType;
|
||||||
if (index > 0)
|
if (index > 0)
|
||||||
{
|
{
|
||||||
color = (new Color[] { Color.Red, Color.Purple, Color.DarkGreen, Color.Orange })[index - 1];
|
color = (new Color[] { Color.Red, Color.Purple, Color.DarkGreen, Color.Orange, Color.DarkSlateBlue, Color.RoyalBlue })[index - 1];
|
||||||
//color = ColorTranslator.FromHtml(new string[] { "#CC0066", "#CC6600", "#99CC99", "#666699" }[index - 1]);
|
//color = ColorTranslator.FromHtml(new string[] { "#CC0066", "#CC6600", "#99CC99", "#666699" }[index - 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var width = 128;
|
int width = 128;
|
||||||
var height = 128;
|
int height = 128;
|
||||||
|
|
||||||
var bitmap = new Bitmap(width, height);
|
Bitmap bitmap = new Bitmap(width, height);
|
||||||
var graphics = Graphics.FromImage(bitmap);
|
Graphics graphics = Graphics.FromImage(bitmap);
|
||||||
var drawBrush = new SolidBrush(color);
|
SolidBrush drawBrush = new SolidBrush(color);
|
||||||
|
|
||||||
graphics.FillEllipse(drawBrush, new Rectangle(0, 0, width, height));
|
var customIcon = false;
|
||||||
var zoom = 16;
|
if (config.enableRoutingAdvanced)
|
||||||
graphics.DrawImage(new Bitmap(Properties.Resources.notify, width - zoom, width - zoom), zoom / 2, zoom / 2);
|
{
|
||||||
|
var item = config.routings[config.routingIndex];
|
||||||
|
if (!Utils.IsNullOrEmpty(item.customIcon) && File.Exists(item.customIcon))
|
||||||
|
{
|
||||||
|
graphics.FillRectangle(drawBrush, new Rectangle(0, 0, width, height));
|
||||||
|
graphics.DrawImage(new Bitmap(item.customIcon), 0, 0);
|
||||||
|
customIcon = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!customIcon)
|
||||||
|
{
|
||||||
|
graphics.FillEllipse(drawBrush, new Rectangle(0, 0, width, height));
|
||||||
|
int zoom = 16;
|
||||||
|
graphics.DrawImage(new Bitmap(Properties.Resources.notify, width - zoom, width - zoom), zoom / 2, zoom / 2);
|
||||||
|
}
|
||||||
|
|
||||||
Icon createdIcon = Icon.FromHandle(bitmap.GetHicon());
|
Icon createdIcon = Icon.FromHandle(bitmap.GetHicon());
|
||||||
|
|
||||||
@@ -79,16 +91,19 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
SaveFileDialog fileDialog = new SaveFileDialog();
|
SaveFileDialog fileDialog = new SaveFileDialog
|
||||||
fileDialog.Filter = "Config|*.json";
|
{
|
||||||
fileDialog.FilterIndex = 2;
|
Filter = "Config|*.json",
|
||||||
fileDialog.RestoreDirectory = true;
|
FilterIndex = 2,
|
||||||
|
RestoreDirectory = true
|
||||||
|
};
|
||||||
if (fileDialog.ShowDialog() != DialogResult.OK)
|
if (fileDialog.ShowDialog() != DialogResult.OK)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@@ -98,16 +113,15 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Config configCopy = Utils.DeepCopy<Config>(config);
|
Config configCopy = Utils.DeepCopy(config);
|
||||||
configCopy.index = index;
|
configCopy.index = index;
|
||||||
string msg;
|
if (V2rayConfigHandler.Export2ClientConfig(configCopy, fileName, out string msg) != 0)
|
||||||
if (V2rayConfigHandler.Export2ClientConfig(configCopy, fileName, out msg) != 0)
|
|
||||||
{
|
{
|
||||||
UI.Show(msg);
|
UI.Show(msg);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UI.Show(string.Format(UIRes.I18N("SaveClientConfigurationIn"), fileName));
|
UI.ShowWarning(string.Format(UIRes.I18N("SaveClientConfigurationIn"), fileName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,16 +132,19 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
SaveFileDialog fileDialog = new SaveFileDialog();
|
SaveFileDialog fileDialog = new SaveFileDialog
|
||||||
fileDialog.Filter = "Config|*.json";
|
{
|
||||||
fileDialog.FilterIndex = 2;
|
Filter = "Config|*.json",
|
||||||
fileDialog.RestoreDirectory = true;
|
FilterIndex = 2,
|
||||||
|
RestoreDirectory = true
|
||||||
|
};
|
||||||
if (fileDialog.ShowDialog() != DialogResult.OK)
|
if (fileDialog.ShowDialog() != DialogResult.OK)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@@ -137,19 +154,112 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Config configCopy = Utils.DeepCopy<Config>(config);
|
Config configCopy = Utils.DeepCopy(config);
|
||||||
configCopy.index = index;
|
configCopy.index = index;
|
||||||
string msg;
|
if (V2rayConfigHandler.Export2ServerConfig(configCopy, fileName, out string msg) != 0)
|
||||||
if (V2rayConfigHandler.Export2ServerConfig(configCopy, fileName, out msg) != 0)
|
|
||||||
{
|
{
|
||||||
UI.Show(msg);
|
UI.Show(msg);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UI.Show(string.Format(UIRes.I18N("SaveServerConfigurationIn"), fileName));
|
UI.ShowWarning(string.Format(UIRes.I18N("SaveServerConfigurationIn"), fileName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int AddBatchServers(Config config, string clipboardData, string subid = "")
|
||||||
|
{
|
||||||
|
int counter;
|
||||||
|
int _Add()
|
||||||
|
{
|
||||||
|
return ConfigHandler.AddBatchServers(ref config, clipboardData, subid);
|
||||||
|
}
|
||||||
|
counter = _Add();
|
||||||
|
if (counter < 1)
|
||||||
|
{
|
||||||
|
clipboardData = Utils.Base64Decode(clipboardData);
|
||||||
|
counter = _Add();
|
||||||
|
}
|
||||||
|
|
||||||
|
return counter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BackupGuiNConfig(Config config, bool auto = false)
|
||||||
|
{
|
||||||
|
string fileName = $"guiNConfig_{DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff")}.json";
|
||||||
|
if (auto)
|
||||||
|
{
|
||||||
|
fileName = Utils.GetTempPath(fileName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SaveFileDialog fileDialog = new SaveFileDialog
|
||||||
|
{
|
||||||
|
FileName = fileName,
|
||||||
|
Filter = "guiNConfig|*.json",
|
||||||
|
FilterIndex = 2,
|
||||||
|
RestoreDirectory = true
|
||||||
|
};
|
||||||
|
if (fileDialog.ShowDialog() != DialogResult.OK)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fileName = fileDialog.FileName;
|
||||||
|
}
|
||||||
|
if (Utils.IsNullOrEmpty(fileName))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var ret = Utils.ToJsonFile(config, fileName);
|
||||||
|
if (!auto)
|
||||||
|
{
|
||||||
|
if (ret == 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
UI.Show(UIRes.I18N("OperationSuccess"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UI.ShowWarning(UIRes.I18N("OperationFailed"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateTask(Config config, Action<bool, string> update)
|
||||||
|
{
|
||||||
|
_updateUI = update;
|
||||||
|
Task.Run(() => UpdateTaskRun(config));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateTaskRun(Config config)
|
||||||
|
{
|
||||||
|
var updateHandle = new UpdateHandle();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
Utils.SaveLog("UpdateTaskRun");
|
||||||
|
Thread.Sleep(60000);
|
||||||
|
if (config.autoUpdateInterval <= 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateHandle.UpdateGeoFile("geosite", config, (bool success, string msg) =>
|
||||||
|
{
|
||||||
|
_updateUI(false, msg);
|
||||||
|
if (success)
|
||||||
|
Utils.SaveLog("geosite" + msg);
|
||||||
|
});
|
||||||
|
|
||||||
|
Thread.Sleep(60000);
|
||||||
|
|
||||||
|
updateHandle.UpdateGeoFile("geoip", config, (bool success, string msg) =>
|
||||||
|
{
|
||||||
|
_updateUI(false, msg);
|
||||||
|
if (success)
|
||||||
|
Utils.SaveLog("geoip" + msg);
|
||||||
|
});
|
||||||
|
|
||||||
|
Thread.Sleep(1000 * 3600 * config.autoUpdateInterval);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,4 @@
|
|||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Drawing.Imaging;
|
|
||||||
using System.IO;
|
|
||||||
using ZXing;
|
using ZXing;
|
||||||
using ZXing.QrCode;
|
using ZXing.QrCode;
|
||||||
|
|
||||||
@@ -16,18 +14,22 @@ namespace v2rayN.Handler
|
|||||||
Image img = null;
|
Image img = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
QrCodeEncodingOptions options = new QrCodeEncodingOptions();
|
QrCodeEncodingOptions options = new QrCodeEncodingOptions
|
||||||
options.CharacterSet = "UTF-8";
|
{
|
||||||
options.DisableECI = true; // Extended Channel Interpretation (ECI) 主要用于特殊的字符集。并不是所有的扫描器都支持这种编码。
|
CharacterSet = "UTF-8",
|
||||||
options.ErrorCorrection = ZXing.QrCode.Internal.ErrorCorrectionLevel.M; // 纠错级别
|
DisableECI = true, // Extended Channel Interpretation (ECI) 主要用于特殊的字符集。并不是所有的扫描器都支持这种编码。
|
||||||
options.Width = 500;
|
ErrorCorrection = ZXing.QrCode.Internal.ErrorCorrectionLevel.M, // 纠错级别
|
||||||
options.Height = 500;
|
Width = 500,
|
||||||
options.Margin = 1;
|
Height = 500,
|
||||||
|
Margin = 1
|
||||||
|
};
|
||||||
// options.Hints,更多属性,也可以在这里添加。
|
// options.Hints,更多属性,也可以在这里添加。
|
||||||
|
|
||||||
BarcodeWriter writer = new BarcodeWriter();
|
BarcodeWriter writer = new BarcodeWriter
|
||||||
writer.Format = BarcodeFormat.QR_CODE;
|
{
|
||||||
writer.Options = options;
|
Format = BarcodeFormat.QR_CODE,
|
||||||
|
Options = options
|
||||||
|
};
|
||||||
Bitmap bmp = writer.Write(strContent);
|
Bitmap bmp = writer.Write(strContent);
|
||||||
img = (Image)bmp;
|
img = (Image)bmp;
|
||||||
return img;
|
return img;
|
||||||
|
|||||||
824
v2rayN/v2rayN/Handler/ShareHandler.cs
Normal file
824
v2rayN/v2rayN/Handler/ShareHandler.cs
Normal file
@@ -0,0 +1,824 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.Specialized;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Web;
|
||||||
|
using v2rayN.Base;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Handler
|
||||||
|
{
|
||||||
|
class ShareHandler
|
||||||
|
{
|
||||||
|
|
||||||
|
#region GetShareUrl
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GetShareUrl
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="config"></param>
|
||||||
|
/// <param name="index"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string GetShareUrl(Config config, int index)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string url = string.Empty;
|
||||||
|
|
||||||
|
VmessItem item = config.vmess[index];
|
||||||
|
switch (item.configType)
|
||||||
|
{
|
||||||
|
case (int)EConfigType.Vmess:
|
||||||
|
url = ShareVmess(item);
|
||||||
|
break;
|
||||||
|
case (int)EConfigType.Shadowsocks:
|
||||||
|
url = ShareShadowsocks(item);
|
||||||
|
break;
|
||||||
|
case (int)EConfigType.Socks:
|
||||||
|
url = ShareSocks(item);
|
||||||
|
break;
|
||||||
|
case (int)EConfigType.Trojan:
|
||||||
|
url = ShareTrojan(item);
|
||||||
|
break;
|
||||||
|
case (int)EConfigType.VLESS:
|
||||||
|
url = ShareVLESS(item);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string ShareVmess(VmessItem item)
|
||||||
|
{
|
||||||
|
string url = string.Empty;
|
||||||
|
|
||||||
|
VmessQRCode vmessQRCode = new VmessQRCode
|
||||||
|
{
|
||||||
|
v = item.configVersion.ToString(),
|
||||||
|
ps = item.remarks.TrimEx(), //备注也许很长 ;
|
||||||
|
add = item.address,
|
||||||
|
port = item.port.ToString(),
|
||||||
|
id = item.id,
|
||||||
|
aid = item.alterId.ToString(),
|
||||||
|
scy = item.security,
|
||||||
|
net = item.network,
|
||||||
|
type = item.headerType,
|
||||||
|
host = item.requestHost,
|
||||||
|
path = item.path,
|
||||||
|
tls = item.streamSecurity,
|
||||||
|
sni = item.sni,
|
||||||
|
alpn = Utils.List2String(item.alpn)
|
||||||
|
};
|
||||||
|
|
||||||
|
url = Utils.ToJson(vmessQRCode);
|
||||||
|
url = Utils.Base64Encode(url);
|
||||||
|
url = string.Format("{0}{1}", Global.vmessProtocol, url);
|
||||||
|
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string ShareShadowsocks(VmessItem item)
|
||||||
|
{
|
||||||
|
string url = string.Empty;
|
||||||
|
|
||||||
|
string remark = string.Empty;
|
||||||
|
if (!Utils.IsNullOrEmpty(item.remarks))
|
||||||
|
{
|
||||||
|
remark = "#" + Utils.UrlEncode(item.remarks);
|
||||||
|
}
|
||||||
|
//url = string.Format("{0}:{1}@{2}:{3}",
|
||||||
|
// item.security,
|
||||||
|
// item.id,
|
||||||
|
// item.address,
|
||||||
|
// item.port);
|
||||||
|
//url = Utils.Base64Encode(url);
|
||||||
|
//new Sip002
|
||||||
|
var pw = Utils.Base64Encode($"{item.security}:{item.id}");
|
||||||
|
url = $"{pw}@{GetIpv6(item.address)}:{ item.port}";
|
||||||
|
url = string.Format("{0}{1}{2}", Global.ssProtocol, url, remark);
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string ShareSocks(VmessItem item)
|
||||||
|
{
|
||||||
|
string url = string.Empty;
|
||||||
|
string remark = string.Empty;
|
||||||
|
if (!Utils.IsNullOrEmpty(item.remarks))
|
||||||
|
{
|
||||||
|
remark = "#" + Utils.UrlEncode(item.remarks);
|
||||||
|
}
|
||||||
|
//url = string.Format("{0}:{1}@{2}:{3}",
|
||||||
|
// item.security,
|
||||||
|
// item.id,
|
||||||
|
// item.address,
|
||||||
|
// item.port);
|
||||||
|
//url = Utils.Base64Encode(url);
|
||||||
|
//new
|
||||||
|
var pw = Utils.Base64Encode($"{item.security}:{item.id}");
|
||||||
|
url = $"{pw}@{GetIpv6(item.address)}:{ item.port}";
|
||||||
|
url = string.Format("{0}{1}{2}", Global.socksProtocol, url, remark);
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string ShareTrojan(VmessItem item)
|
||||||
|
{
|
||||||
|
string url = string.Empty;
|
||||||
|
string remark = string.Empty;
|
||||||
|
if (!Utils.IsNullOrEmpty(item.remarks))
|
||||||
|
{
|
||||||
|
remark = "#" + Utils.UrlEncode(item.remarks);
|
||||||
|
}
|
||||||
|
var dicQuery = new Dictionary<string, string>();
|
||||||
|
GetStdTransport(item, null, ref dicQuery);
|
||||||
|
string query = "?" + string.Join("&", dicQuery.Select(x => x.Key + "=" + x.Value).ToArray());
|
||||||
|
|
||||||
|
url = string.Format("{0}@{1}:{2}",
|
||||||
|
item.id,
|
||||||
|
GetIpv6(item.address),
|
||||||
|
item.port);
|
||||||
|
url = string.Format("{0}{1}{2}{3}", Global.trojanProtocol, url, query, remark);
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string ShareVLESS(VmessItem item)
|
||||||
|
{
|
||||||
|
string url = string.Empty;
|
||||||
|
string remark = string.Empty;
|
||||||
|
if (!Utils.IsNullOrEmpty(item.remarks))
|
||||||
|
{
|
||||||
|
remark = "#" + Utils.UrlEncode(item.remarks);
|
||||||
|
}
|
||||||
|
var dicQuery = new Dictionary<string, string>();
|
||||||
|
if (!Utils.IsNullOrEmpty(item.security))
|
||||||
|
{
|
||||||
|
dicQuery.Add("encryption", item.security);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dicQuery.Add("encryption", "none");
|
||||||
|
}
|
||||||
|
GetStdTransport(item, "none", ref dicQuery);
|
||||||
|
string query = "?" + string.Join("&", dicQuery.Select(x => x.Key + "=" + x.Value).ToArray());
|
||||||
|
|
||||||
|
url = string.Format("{0}@{1}:{2}",
|
||||||
|
item.id,
|
||||||
|
GetIpv6(item.address),
|
||||||
|
item.port);
|
||||||
|
url = string.Format("{0}{1}{2}{3}", Global.vlessProtocol, url, query, remark);
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
private static string GetIpv6(string address)
|
||||||
|
{
|
||||||
|
return Utils.IsIpv6(address) ? $"[{address}]" : address;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int GetStdTransport(VmessItem item, string securityDef, ref Dictionary<string, string> dicQuery)
|
||||||
|
{
|
||||||
|
if (!Utils.IsNullOrEmpty(item.flow))
|
||||||
|
{
|
||||||
|
dicQuery.Add("flow", item.flow);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Utils.IsNullOrEmpty(item.streamSecurity))
|
||||||
|
{
|
||||||
|
dicQuery.Add("security", item.streamSecurity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (securityDef != null)
|
||||||
|
{
|
||||||
|
dicQuery.Add("security", securityDef);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(item.sni))
|
||||||
|
{
|
||||||
|
dicQuery.Add("sni", item.sni);
|
||||||
|
}
|
||||||
|
if (item.alpn != null && item.alpn.Count > 0)
|
||||||
|
{
|
||||||
|
dicQuery.Add("alpn", Utils.UrlEncode(Utils.List2String(item.alpn)));
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(item.network))
|
||||||
|
{
|
||||||
|
dicQuery.Add("type", item.network);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dicQuery.Add("type", "tcp");
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (item.network)
|
||||||
|
{
|
||||||
|
case "tcp":
|
||||||
|
if (!Utils.IsNullOrEmpty(item.headerType))
|
||||||
|
{
|
||||||
|
dicQuery.Add("headerType", item.headerType);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dicQuery.Add("headerType", "none");
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(item.requestHost))
|
||||||
|
{
|
||||||
|
dicQuery.Add("host", Utils.UrlEncode(item.requestHost));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "kcp":
|
||||||
|
if (!Utils.IsNullOrEmpty(item.headerType))
|
||||||
|
{
|
||||||
|
dicQuery.Add("headerType", item.headerType);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dicQuery.Add("headerType", "none");
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(item.path))
|
||||||
|
{
|
||||||
|
dicQuery.Add("seed", Utils.UrlEncode(item.path));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "ws":
|
||||||
|
if (!Utils.IsNullOrEmpty(item.requestHost))
|
||||||
|
{
|
||||||
|
dicQuery.Add("host", Utils.UrlEncode(item.requestHost));
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(item.path))
|
||||||
|
{
|
||||||
|
dicQuery.Add("path", Utils.UrlEncode(item.path));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "http":
|
||||||
|
case "h2":
|
||||||
|
dicQuery["type"] = "http";
|
||||||
|
if (!Utils.IsNullOrEmpty(item.requestHost))
|
||||||
|
{
|
||||||
|
dicQuery.Add("host", Utils.UrlEncode(item.requestHost));
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(item.path))
|
||||||
|
{
|
||||||
|
dicQuery.Add("path", Utils.UrlEncode(item.path));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "quic":
|
||||||
|
if (!Utils.IsNullOrEmpty(item.headerType))
|
||||||
|
{
|
||||||
|
dicQuery.Add("headerType", item.headerType);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dicQuery.Add("headerType", "none");
|
||||||
|
}
|
||||||
|
dicQuery.Add("quicSecurity", Utils.UrlEncode(item.requestHost));
|
||||||
|
dicQuery.Add("key", Utils.UrlEncode(item.path));
|
||||||
|
break;
|
||||||
|
case "grpc":
|
||||||
|
if (!Utils.IsNullOrEmpty(item.path))
|
||||||
|
{
|
||||||
|
dicQuery.Add("serviceName", Utils.UrlEncode(item.path));
|
||||||
|
if (item.headerType == Global.GrpcgunMode || item.headerType == Global.GrpcmultiMode)
|
||||||
|
{
|
||||||
|
dicQuery.Add("mode", Utils.UrlEncode(item.headerType));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ImportShareUrl
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 从剪贴板导入URL
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fileName"></param>
|
||||||
|
/// <param name="msg"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static VmessItem ImportFromClipboardConfig(string clipboardData, out string msg)
|
||||||
|
{
|
||||||
|
msg = string.Empty;
|
||||||
|
VmessItem vmessItem = new VmessItem();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//载入配置文件
|
||||||
|
string result = clipboardData.TrimEx();// Utils.GetClipboardData();
|
||||||
|
if (Utils.IsNullOrEmpty(result))
|
||||||
|
{
|
||||||
|
msg = UIRes.I18N("FailedReadConfiguration");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result.StartsWith(Global.vmessProtocol))
|
||||||
|
{
|
||||||
|
int indexSplit = result.IndexOf("?");
|
||||||
|
if (indexSplit > 0)
|
||||||
|
{
|
||||||
|
vmessItem = ResolveStdVmess(result) ?? ResolveVmess4Kitsunebi(result);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
vmessItem = ResolveVmess(result, out msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigHandler.UpgradeServerVersion(ref vmessItem);
|
||||||
|
}
|
||||||
|
else if (result.StartsWith(Global.ssProtocol))
|
||||||
|
{
|
||||||
|
msg = UIRes.I18N("ConfigurationFormatIncorrect");
|
||||||
|
|
||||||
|
vmessItem = ResolveSSLegacy(result);
|
||||||
|
if (vmessItem == null)
|
||||||
|
{
|
||||||
|
vmessItem = ResolveSip002(result);
|
||||||
|
}
|
||||||
|
if (vmessItem == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (vmessItem.address.Length == 0 || vmessItem.port == 0 || vmessItem.security.Length == 0 || vmessItem.id.Length == 0)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
vmessItem.configType = (int)EConfigType.Shadowsocks;
|
||||||
|
}
|
||||||
|
else if (result.StartsWith(Global.socksProtocol))
|
||||||
|
{
|
||||||
|
msg = UIRes.I18N("ConfigurationFormatIncorrect");
|
||||||
|
|
||||||
|
vmessItem = ResolveSocksNew(result);
|
||||||
|
if (vmessItem == null)
|
||||||
|
{
|
||||||
|
vmessItem = ResolveSocks(result);
|
||||||
|
}
|
||||||
|
if (vmessItem == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (vmessItem.address.Length == 0 || vmessItem.port == 0)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
vmessItem.configType = (int)EConfigType.Socks;
|
||||||
|
}
|
||||||
|
else if (result.StartsWith(Global.trojanProtocol))
|
||||||
|
{
|
||||||
|
msg = UIRes.I18N("ConfigurationFormatIncorrect");
|
||||||
|
|
||||||
|
vmessItem = ResolveTrojan(result);
|
||||||
|
}
|
||||||
|
else if (result.StartsWith(Global.vlessProtocol))
|
||||||
|
{
|
||||||
|
vmessItem = ResolveStdVLESS(result);
|
||||||
|
|
||||||
|
ConfigHandler.UpgradeServerVersion(ref vmessItem);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
msg = UIRes.I18N("NonvmessOrssProtocol");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
msg = UIRes.I18N("Incorrectconfiguration");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return vmessItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static VmessItem ResolveVmess(string result, out string msg)
|
||||||
|
{
|
||||||
|
msg = string.Empty;
|
||||||
|
VmessItem vmessItem = new VmessItem();
|
||||||
|
|
||||||
|
vmessItem.configType = (int)EConfigType.Vmess;
|
||||||
|
result = result.Substring(Global.vmessProtocol.Length);
|
||||||
|
result = Utils.Base64Decode(result);
|
||||||
|
|
||||||
|
//转成Json
|
||||||
|
VmessQRCode vmessQRCode = Utils.FromJson<VmessQRCode>(result);
|
||||||
|
if (vmessQRCode == null)
|
||||||
|
{
|
||||||
|
msg = UIRes.I18N("FailedConversionConfiguration");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
vmessItem.network = Global.DefaultNetwork;
|
||||||
|
vmessItem.headerType = Global.None;
|
||||||
|
|
||||||
|
vmessItem.configVersion = Utils.ToInt(vmessQRCode.v);
|
||||||
|
vmessItem.remarks = Utils.ToString(vmessQRCode.ps);
|
||||||
|
vmessItem.address = Utils.ToString(vmessQRCode.add);
|
||||||
|
vmessItem.port = Utils.ToInt(vmessQRCode.port);
|
||||||
|
vmessItem.id = Utils.ToString(vmessQRCode.id);
|
||||||
|
vmessItem.alterId = Utils.ToInt(vmessQRCode.aid);
|
||||||
|
vmessItem.security = Utils.ToString(vmessQRCode.scy);
|
||||||
|
|
||||||
|
if (!Utils.IsNullOrEmpty(vmessQRCode.scy))
|
||||||
|
{
|
||||||
|
vmessItem.security = vmessQRCode.scy;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
vmessItem.security = Global.DefaultSecurity;
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(vmessQRCode.net))
|
||||||
|
{
|
||||||
|
vmessItem.network = vmessQRCode.net;
|
||||||
|
}
|
||||||
|
if (!Utils.IsNullOrEmpty(vmessQRCode.type))
|
||||||
|
{
|
||||||
|
vmessItem.headerType = vmessQRCode.type;
|
||||||
|
}
|
||||||
|
|
||||||
|
vmessItem.requestHost = Utils.ToString(vmessQRCode.host);
|
||||||
|
vmessItem.path = Utils.ToString(vmessQRCode.path);
|
||||||
|
vmessItem.streamSecurity = Utils.ToString(vmessQRCode.tls);
|
||||||
|
vmessItem.sni = Utils.ToString(vmessQRCode.sni);
|
||||||
|
vmessItem.alpn = Utils.String2List(vmessQRCode.alpn);
|
||||||
|
|
||||||
|
return vmessItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static VmessItem ResolveVmess4Kitsunebi(string result)
|
||||||
|
{
|
||||||
|
VmessItem vmessItem = new VmessItem
|
||||||
|
{
|
||||||
|
configType = (int)EConfigType.Vmess
|
||||||
|
};
|
||||||
|
result = result.Substring(Global.vmessProtocol.Length);
|
||||||
|
int indexSplit = result.IndexOf("?");
|
||||||
|
if (indexSplit > 0)
|
||||||
|
{
|
||||||
|
result = result.Substring(0, indexSplit);
|
||||||
|
}
|
||||||
|
result = Utils.Base64Decode(result);
|
||||||
|
|
||||||
|
string[] arr1 = result.Split('@');
|
||||||
|
if (arr1.Length != 2)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
string[] arr21 = arr1[0].Split(':');
|
||||||
|
string[] arr22 = arr1[1].Split(':');
|
||||||
|
if (arr21.Length != 2 || arr21.Length != 2)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
vmessItem.address = arr22[0];
|
||||||
|
vmessItem.port = Utils.ToInt(arr22[1]);
|
||||||
|
vmessItem.security = arr21[0];
|
||||||
|
vmessItem.id = arr21[1];
|
||||||
|
|
||||||
|
vmessItem.network = Global.DefaultNetwork;
|
||||||
|
vmessItem.headerType = Global.None;
|
||||||
|
vmessItem.remarks = "Alien";
|
||||||
|
|
||||||
|
return vmessItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
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 = Utils.UrlDecode(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 (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 = Utils.UrlDecode(h1);
|
||||||
|
i.path = p1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "http":
|
||||||
|
case "h2":
|
||||||
|
i.network = "h2";
|
||||||
|
string p2 = q["path"] ?? "/";
|
||||||
|
string h2 = q["host"] ?? "";
|
||||||
|
i.requestHost = Utils.UrlDecode(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 = Utils.UrlDecode(s);
|
||||||
|
i.path = k;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static VmessItem ResolveSip002(string result)
|
||||||
|
{
|
||||||
|
Uri parsedUrl;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
parsedUrl = new Uri(result);
|
||||||
|
}
|
||||||
|
catch (UriFormatException)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
VmessItem server = new VmessItem
|
||||||
|
{
|
||||||
|
remarks = Utils.UrlDecode(parsedUrl.GetComponents(UriComponents.Fragment, UriFormat.Unescaped)),
|
||||||
|
address = parsedUrl.IdnHost,
|
||||||
|
port = parsedUrl.Port,
|
||||||
|
};
|
||||||
|
|
||||||
|
// parse base64 UserInfo
|
||||||
|
string rawUserInfo = parsedUrl.GetComponents(UriComponents.UserInfo, UriFormat.Unescaped);
|
||||||
|
string userInfo = Utils.Base64Decode(rawUserInfo);
|
||||||
|
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 (!Utils.IsNullOrEmpty(tag))
|
||||||
|
{
|
||||||
|
server.remarks = Utils.UrlDecode(tag);
|
||||||
|
}
|
||||||
|
Match details;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
details = DetailsParser.Match(Utils.Base64Decode(base64));
|
||||||
|
}
|
||||||
|
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})$");
|
||||||
|
|
||||||
|
private static VmessItem ResolveSocks(string result)
|
||||||
|
{
|
||||||
|
VmessItem vmessItem = new VmessItem();
|
||||||
|
vmessItem.configType = (int)EConfigType.Socks;
|
||||||
|
result = result.Substring(Global.socksProtocol.Length);
|
||||||
|
//remark
|
||||||
|
int indexRemark = result.IndexOf("#");
|
||||||
|
if (indexRemark > 0)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
vmessItem.remarks = Utils.UrlDecode(result.Substring(indexRemark + 1, result.Length - indexRemark - 1));
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
result = result.Substring(0, indexRemark);
|
||||||
|
}
|
||||||
|
//part decode
|
||||||
|
int indexS = result.IndexOf("@");
|
||||||
|
if (indexS > 0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = Utils.Base64Decode(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
string[] arr1 = result.Split('@');
|
||||||
|
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];
|
||||||
|
|
||||||
|
return vmessItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static VmessItem ResolveSocksNew(string result)
|
||||||
|
{
|
||||||
|
Uri parsedUrl;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
parsedUrl = new Uri(result);
|
||||||
|
}
|
||||||
|
catch (UriFormatException)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
VmessItem server = new VmessItem
|
||||||
|
{
|
||||||
|
remarks = Utils.UrlDecode(parsedUrl.GetComponents(UriComponents.Fragment, UriFormat.Unescaped)),
|
||||||
|
address = parsedUrl.IdnHost,
|
||||||
|
port = parsedUrl.Port,
|
||||||
|
};
|
||||||
|
|
||||||
|
// parse base64 UserInfo
|
||||||
|
string rawUserInfo = parsedUrl.GetComponents(UriComponents.UserInfo, UriFormat.Unescaped);
|
||||||
|
string userInfo = Utils.Base64Decode(rawUserInfo);
|
||||||
|
string[] userInfoParts = userInfo.Split(new char[] { ':' }, 2);
|
||||||
|
if (userInfoParts.Length == 2)
|
||||||
|
{
|
||||||
|
server.security = userInfoParts[0];
|
||||||
|
server.id = userInfoParts[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
return server;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static VmessItem ResolveTrojan(string result)
|
||||||
|
{
|
||||||
|
VmessItem item = new VmessItem
|
||||||
|
{
|
||||||
|
configType = (int)EConfigType.Trojan
|
||||||
|
};
|
||||||
|
|
||||||
|
Uri url = new Uri(result);
|
||||||
|
|
||||||
|
item.address = url.IdnHost;
|
||||||
|
item.port = url.Port;
|
||||||
|
item.remarks = Utils.UrlDecode(url.GetComponents(UriComponents.Fragment, UriFormat.Unescaped));
|
||||||
|
item.id = url.UserInfo;
|
||||||
|
|
||||||
|
var query = HttpUtility.ParseQueryString(url.Query);
|
||||||
|
ResolveStdTransport(query, ref item);
|
||||||
|
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
private static VmessItem ResolveStdVLESS(string result)
|
||||||
|
{
|
||||||
|
VmessItem item = new VmessItem
|
||||||
|
{
|
||||||
|
configType = (int)EConfigType.VLESS,
|
||||||
|
security = "none"
|
||||||
|
};
|
||||||
|
|
||||||
|
Uri url = new Uri(result);
|
||||||
|
|
||||||
|
item.address = url.IdnHost;
|
||||||
|
item.port = url.Port;
|
||||||
|
item.remarks = Utils.UrlDecode(url.GetComponents(UriComponents.Fragment, UriFormat.Unescaped));
|
||||||
|
item.id = url.UserInfo;
|
||||||
|
|
||||||
|
var query = HttpUtility.ParseQueryString(url.Query);
|
||||||
|
item.security = query["encryption"] ?? "none";
|
||||||
|
item.streamSecurity = query["security"] ?? "";
|
||||||
|
ResolveStdTransport(query, ref item);
|
||||||
|
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int ResolveStdTransport(NameValueCollection query, ref VmessItem item)
|
||||||
|
{
|
||||||
|
item.flow = query["flow"] ?? "";
|
||||||
|
item.streamSecurity = query["security"] ?? "";
|
||||||
|
item.sni = query["sni"] ?? "";
|
||||||
|
item.alpn = Utils.String2List(Utils.UrlDecode(query["alpn"] ?? ""));
|
||||||
|
item.network = query["type"] ?? "tcp";
|
||||||
|
switch (item.network)
|
||||||
|
{
|
||||||
|
case "tcp":
|
||||||
|
item.headerType = query["headerType"] ?? "none";
|
||||||
|
item.requestHost = Utils.UrlDecode(query["host"] ?? "");
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "kcp":
|
||||||
|
item.headerType = query["headerType"] ?? "none";
|
||||||
|
item.path = Utils.UrlDecode(query["seed"] ?? "");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "ws":
|
||||||
|
item.requestHost = Utils.UrlDecode(query["host"] ?? "");
|
||||||
|
item.path = Utils.UrlDecode(query["path"] ?? "/");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "http":
|
||||||
|
case "h2":
|
||||||
|
item.network = "h2";
|
||||||
|
item.requestHost = Utils.UrlDecode(query["host"] ?? "");
|
||||||
|
item.path = Utils.UrlDecode(query["path"] ?? "/");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "quic":
|
||||||
|
item.headerType = query["headerType"] ?? "none";
|
||||||
|
item.requestHost = query["quicSecurity"] ?? "none";
|
||||||
|
item.path = Utils.UrlDecode(query["key"] ?? "");
|
||||||
|
break;
|
||||||
|
case "grpc":
|
||||||
|
item.path = Utils.UrlDecode(query["serviceName"] ?? "");
|
||||||
|
item.headerType = Utils.UrlDecode(query["mode"] ?? Global.GrpcgunMode);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,85 +4,74 @@ using System.Diagnostics;
|
|||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using v2rayN.Mode;
|
using v2rayN.Mode;
|
||||||
|
|
||||||
namespace v2rayN.Handler
|
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<ServerTestItem> _selecteds;
|
||||||
private Thread _workThread;
|
|
||||||
Action<int, string> _updateFunc;
|
Action<int, string> _updateFunc;
|
||||||
|
|
||||||
private int testCounter = 0;
|
public SpeedtestHandler(ref Config config)
|
||||||
private int ItemIndex
|
|
||||||
{
|
{
|
||||||
get
|
_config = config;
|
||||||
{
|
|
||||||
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;
|
||||||
|
|
||||||
|
_selecteds = new List<ServerTestItem>();
|
||||||
|
foreach (var it in selecteds)
|
||||||
|
{
|
||||||
|
_selecteds.Add(new ServerTestItem()
|
||||||
|
{
|
||||||
|
selected = it,
|
||||||
|
indexId = config.vmess[it].indexId,
|
||||||
|
address = config.vmess[it].address,
|
||||||
|
port = config.vmess[it].port,
|
||||||
|
configType = config.vmess[it].configType
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (actionType == "ping")
|
if (actionType == "ping")
|
||||||
{
|
{
|
||||||
_workThread = new Thread(new ThreadStart(RunPing));
|
Task.Run(() => RunPing());
|
||||||
_workThread.IsBackground = true;
|
|
||||||
_workThread.Start();
|
|
||||||
}
|
}
|
||||||
if (actionType == "tcping")
|
if (actionType == "tcping")
|
||||||
{
|
{
|
||||||
_workThread = new Thread(new ThreadStart(RunTcping));
|
Task.Run(() => RunTcping());
|
||||||
_workThread.IsBackground = true;
|
|
||||||
_workThread.Start();
|
|
||||||
}
|
}
|
||||||
else if (actionType == "realping")
|
else if (actionType == "realping")
|
||||||
{
|
{
|
||||||
_workThread = new Thread(new ThreadStart(RunRealPing));
|
Task.Run(() => RunRealPing());
|
||||||
_workThread.IsBackground = true;
|
|
||||||
_workThread.Start();
|
|
||||||
}
|
}
|
||||||
else if (actionType == "speedtest")
|
else if (actionType == "speedtest")
|
||||||
{
|
{
|
||||||
RunSpeedTest();
|
Task.Run(() => RunSpeedTest());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Close()
|
private void RunPingSub(Action<ServerTestItem> updateFun)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
}
|
foreach (var it in _selecteds)
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog(ex.Message, ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RunPing()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
for (int k = 0; k < _selecteds.Count; k++)
|
|
||||||
{
|
{
|
||||||
int index = _selecteds[k];
|
if (it.configType == (int)EConfigType.Custom)
|
||||||
if (_config.vmess[index].configType == (int)EConfigType.Custom)
|
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
long time = Utils.Ping(_config.vmess[index].address);
|
updateFun(it);
|
||||||
_updateFunc(index, string.Format("{0}ms", time));
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -90,8 +79,7 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Thread.Sleep(100);
|
Thread.Sleep(10);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -99,170 +87,200 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void RunPing()
|
||||||
|
{
|
||||||
|
RunPingSub((ServerTestItem it) =>
|
||||||
|
{
|
||||||
|
long time = Utils.Ping(it.address);
|
||||||
|
var index = _config.FindIndexId(it.indexId);
|
||||||
|
if (index < 0) return;
|
||||||
|
_updateFunc(index, FormatOut(time, "ms"));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void RunTcping()
|
private void RunTcping()
|
||||||
{
|
{
|
||||||
try
|
RunPingSub((ServerTestItem it) =>
|
||||||
{
|
{
|
||||||
for (int k = 0; k < _selecteds.Count; k++)
|
int time = GetTcpingTime(it.address, it.port);
|
||||||
{
|
var index = _config.FindIndexId(it.indexId);
|
||||||
int index = _selecteds[k];
|
if (index < 0) return;
|
||||||
if (_config.vmess[index].configType == (int)EConfigType.Custom)
|
_updateFunc(index, FormatOut(time, "ms"));
|
||||||
{
|
});
|
||||||
continue;
|
|
||||||
}
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var time = GetTcpingTime(_config.vmess[index].address, _config.vmess[index].port);
|
|
||||||
_updateFunc(index, string.Format("{0}ms", time));
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog(ex.Message, ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Thread.Sleep(100);
|
|
||||||
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog(ex.Message, ex);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RunRealPing()
|
private void RunRealPing()
|
||||||
{
|
{
|
||||||
|
int pid = -1;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string msg = string.Empty;
|
string msg = string.Empty;
|
||||||
|
|
||||||
Global.reloadV2ray = true;
|
pid = _v2rayHandler.LoadV2rayConfigString(_config, _selecteds);
|
||||||
_v2rayHandler.LoadV2ray(_config, _selecteds);
|
if (pid < 0)
|
||||||
|
|
||||||
Thread.Sleep(5000);
|
|
||||||
|
|
||||||
var httpPort = _config.GetLocalPort("speedtest");
|
|
||||||
for (int k = 0; k < _selecteds.Count; k++)
|
|
||||||
{
|
{
|
||||||
int index = _selecteds[k];
|
_updateFunc(_selecteds[0].selected, UIRes.I18N("OperationFailed"));
|
||||||
if (_config.vmess[index].configType == (int)EConfigType.Custom)
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Thread.Sleep(5000);
|
||||||
|
List<Task> tasks = new List<Task>();
|
||||||
|
foreach (var it in _selecteds)
|
||||||
|
{
|
||||||
|
if (it.configType == (int)EConfigType.Custom)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (it.port <= 0)
|
||||||
try
|
|
||||||
{
|
{
|
||||||
var webProxy = new WebProxy(Global.Loopback, httpPort + index);
|
continue;
|
||||||
int responseTime = -1;
|
|
||||||
var status = GetRealPingTime(Global.SpeedPingTestUrl, webProxy, out responseTime);
|
|
||||||
if (!Utils.IsNullOrEmpty(status))
|
|
||||||
{
|
|
||||||
_updateFunc(index, string.Format("{0}", status));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_updateFunc(index, string.Format("{0}ms", responseTime));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
tasks.Add(Task.Run(() =>
|
||||||
{
|
{
|
||||||
Utils.SaveLog(ex.Message, ex);
|
try
|
||||||
}
|
{
|
||||||
Thread.Sleep(100);
|
WebProxy webProxy = new WebProxy(Global.Loopback, it.port);
|
||||||
|
int responseTime = -1;
|
||||||
|
string status = GetRealPingTime(_config.constItem.speedPingTestUrl, webProxy, out responseTime);
|
||||||
|
string output = Utils.IsNullOrEmpty(status) ? FormatOut(responseTime, "ms") : status;
|
||||||
|
var index = _config.FindIndexId(it.indexId);
|
||||||
|
if (index < 0) return;
|
||||||
|
_updateFunc(index, output);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
//Thread.Sleep(100);
|
||||||
}
|
}
|
||||||
|
Task.WaitAll(tasks.ToArray());
|
||||||
Global.reloadV2ray = true;
|
|
||||||
_v2rayHandler.LoadV2ray(_config);
|
|
||||||
Thread.Sleep(100);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Utils.SaveLog(ex.Message, ex);
|
Utils.SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (pid > 0) _v2rayHandler.V2rayStopPid(pid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int RunAvailabilityCheck() // alias: isLive
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int httpPort = _config.GetLocalPort(Global.InboundHttp);
|
||||||
|
|
||||||
|
Task<int> t = Task.Run(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
WebProxy webProxy = new WebProxy(Global.Loopback, httpPort);
|
||||||
|
int responseTime = -1;
|
||||||
|
string status = GetRealPingTime(Global.SpeedPingTestUrl, webProxy, out responseTime);
|
||||||
|
bool noError = Utils.IsNullOrEmpty(status);
|
||||||
|
return noError ? responseTime : -1;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return t.Result;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RunSpeedTest()
|
private void RunSpeedTest()
|
||||||
{
|
{
|
||||||
|
string testIndexId = string.Empty;
|
||||||
|
int pid = -1;
|
||||||
|
|
||||||
if (_config.vmess.Count <= 0)
|
if (_config.vmess.Count <= 0)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Global.reloadV2ray = true;
|
pid = _v2rayHandler.LoadV2rayConfigString(_config, _selecteds);
|
||||||
_v2rayHandler.LoadV2ray(_config, _selecteds);
|
if (pid < 0)
|
||||||
|
|
||||||
Thread.Sleep(5000);
|
|
||||||
|
|
||||||
string url = Global.SpeedTestUrl;
|
|
||||||
testCounter = 0;
|
|
||||||
if (downloadHandle2 == null)
|
|
||||||
{
|
|
||||||
downloadHandle2 = new DownloadHandle();
|
|
||||||
downloadHandle2.UpdateCompleted += (sender2, args) =>
|
|
||||||
{
|
|
||||||
if (args.Success)
|
|
||||||
{
|
|
||||||
_updateFunc(ItemIndex, args.Msg);
|
|
||||||
if (ServerSpeedTestSub(testCounter, url) != 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_updateFunc(ItemIndex, args.Msg);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
downloadHandle2.Error += (sender2, args) =>
|
|
||||||
{
|
|
||||||
_updateFunc(ItemIndex, args.GetException().Message);
|
|
||||||
if (ServerSpeedTestSub(testCounter, url) != 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ServerSpeedTestSub(testCounter, url) != 0)
|
|
||||||
{
|
{
|
||||||
|
_updateFunc(_selecteds[0].selected, UIRes.I18N("OperationFailed"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private int ServerSpeedTestSub(int index, string url)
|
string url = _config.constItem.speedTestUrl;
|
||||||
{
|
DownloadHandle downloadHandle2 = new DownloadHandle();
|
||||||
if (index >= _selecteds.Count)
|
downloadHandle2.UpdateCompleted += (sender2, args) =>
|
||||||
{
|
{
|
||||||
Global.reloadV2ray = true;
|
var index = _config.FindIndexId(testIndexId);
|
||||||
_v2rayHandler.LoadV2ray(_config);
|
if (index < 0) return;
|
||||||
return -1;
|
_updateFunc(index, args.Msg);
|
||||||
|
};
|
||||||
|
downloadHandle2.Error += (sender2, args) =>
|
||||||
|
{
|
||||||
|
var index = _config.FindIndexId(testIndexId);
|
||||||
|
if (index < 0) return;
|
||||||
|
_updateFunc(index, args.GetException().Message);
|
||||||
|
};
|
||||||
|
|
||||||
|
var timeout = 10;
|
||||||
|
foreach (var it in _selecteds)
|
||||||
|
{
|
||||||
|
if (it.configType == (int)EConfigType.Custom)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (it.port <= 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
testIndexId = it.indexId;
|
||||||
|
if (_config.FindIndexId(it.indexId) < 0) continue;
|
||||||
|
|
||||||
|
WebProxy webProxy = new WebProxy(Global.Loopback, it.port);
|
||||||
|
var ws = downloadHandle2.DownloadDataAsync(url, webProxy, timeout - 2);
|
||||||
|
|
||||||
|
Thread.Sleep(1000 * timeout);
|
||||||
|
|
||||||
|
ws.CancelAsync();
|
||||||
|
ws.Dispose();
|
||||||
|
|
||||||
|
Thread.Sleep(1000 * 2);
|
||||||
}
|
}
|
||||||
|
if (pid > 0) _v2rayHandler.V2rayStopPid(pid);
|
||||||
var httpPort = _config.GetLocalPort("speedtest");
|
|
||||||
index = _selecteds[index];
|
|
||||||
|
|
||||||
testCounter++;
|
|
||||||
var webProxy = new WebProxy(Global.Loopback, httpPort + index);
|
|
||||||
downloadHandle2.DownloadFileAsync(_config, url, webProxy, 30);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private int GetTcpingTime(string url, int port)
|
private int GetTcpingTime(string url, int port)
|
||||||
{
|
{
|
||||||
var responseTime = -1;
|
int responseTime = -1;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
IPHostEntry ipHostInfo = System.Net.Dns.GetHostEntry(url);
|
if (!IPAddress.TryParse(url, out IPAddress ipAddress))
|
||||||
IPAddress ipAddress = ipHostInfo.AddressList[0];
|
{
|
||||||
|
IPHostEntry ipHostInfo = System.Net.Dns.GetHostEntry(url);
|
||||||
|
ipAddress = ipHostInfo.AddressList[0];
|
||||||
|
}
|
||||||
|
|
||||||
var timer = new Stopwatch();
|
Stopwatch timer = new Stopwatch();
|
||||||
timer.Start();
|
timer.Start();
|
||||||
|
|
||||||
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
IPEndPoint endPoint = new IPEndPoint(ipAddress, port);
|
||||||
clientSocket.Connect(new IPEndPoint(ipAddress, port));
|
Socket clientSocket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
|
||||||
|
|
||||||
|
IAsyncResult result = clientSocket.BeginConnect(endPoint, null, null);
|
||||||
|
if (!result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(5)))
|
||||||
|
throw new TimeoutException("connect timeout (5s): " + url);
|
||||||
|
clientSocket.EndConnect(result);
|
||||||
|
|
||||||
timer.Stop();
|
timer.Stop();
|
||||||
responseTime = timer.Elapsed.Milliseconds;
|
responseTime = timer.Elapsed.Milliseconds;
|
||||||
clientSocket.Close();
|
clientSocket.Close();
|
||||||
@@ -278,14 +296,13 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
string msg = string.Empty;
|
string msg = string.Empty;
|
||||||
responseTime = -1;
|
responseTime = -1;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
|
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
|
||||||
myHttpWebRequest.Timeout = 5000;
|
myHttpWebRequest.Timeout = 5000;
|
||||||
myHttpWebRequest.Proxy = webProxy;//new WebProxy(Global.Loopback, Global.httpPort);
|
myHttpWebRequest.Proxy = webProxy;//new WebProxy(Global.Loopback, Global.httpPort);
|
||||||
|
|
||||||
var timer = new Stopwatch();
|
Stopwatch timer = new Stopwatch();
|
||||||
timer.Start();
|
timer.Start();
|
||||||
|
|
||||||
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
|
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
|
||||||
@@ -305,7 +322,14 @@ namespace v2rayN.Handler
|
|||||||
msg = ex.Message;
|
msg = ex.Message;
|
||||||
}
|
}
|
||||||
return msg;
|
return msg;
|
||||||
|
}
|
||||||
|
private string FormatOut(object time, string unit)
|
||||||
|
{
|
||||||
|
if (time.ToString().Equals("-1"))
|
||||||
|
{
|
||||||
|
return "Timeout";
|
||||||
|
}
|
||||||
|
return string.Format("{0}{1}", time, unit).PadLeft(8, ' ');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
using Grpc.Core;
|
using Grpc.Core;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using v2rayN.Mode;
|
using v2rayN.Mode;
|
||||||
using v2rayN.Properties;
|
|
||||||
using v2rayN.Protos.Statistics;
|
using v2rayN.Protos.Statistics;
|
||||||
using v2rayN.Tool;
|
|
||||||
|
|
||||||
namespace v2rayN.Handler
|
namespace v2rayN.Handler
|
||||||
{
|
{
|
||||||
@@ -18,7 +16,6 @@ namespace v2rayN.Handler
|
|||||||
private ServerStatistics serverStatistics_;
|
private ServerStatistics serverStatistics_;
|
||||||
private Channel channel_;
|
private Channel channel_;
|
||||||
private StatsService.StatsServiceClient client_;
|
private StatsService.StatsServiceClient client_;
|
||||||
private Thread workThread_;
|
|
||||||
private bool exitFlag_;
|
private bool exitFlag_;
|
||||||
|
|
||||||
Action<ulong, ulong, List<ServerStatItem>> updateFunc_;
|
Action<ulong, ulong, List<ServerStatItem>> updateFunc_;
|
||||||
@@ -33,6 +30,7 @@ namespace v2rayN.Handler
|
|||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<ServerStatItem> Statistic
|
public List<ServerStatItem> Statistic
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -70,9 +68,7 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
GrpcInit();
|
GrpcInit();
|
||||||
|
|
||||||
workThread_ = new Thread(new ThreadStart(Run));
|
Task.Run(() => Run());
|
||||||
workThread_.IsBackground = true;
|
|
||||||
workThread_.Start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void GrpcInit()
|
private void GrpcInit()
|
||||||
@@ -115,18 +111,16 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Utils.SaveLog(ex.Message, ex);
|
//Utils.SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res != null)
|
if (res != null)
|
||||||
{
|
{
|
||||||
var itemId = config_.getItemId();
|
string itemId = config_.getItemId();
|
||||||
var serverStatItem = GetServerStatItem(itemId);
|
ServerStatItem serverStatItem = GetServerStatItem(itemId);
|
||||||
ulong up = 0,
|
|
||||||
down = 0;
|
|
||||||
|
|
||||||
//TODO: parse output
|
//TODO: parse output
|
||||||
ParseOutput(res.Stat, out up, out down);
|
ParseOutput(res.Stat, out ulong up, out ulong down);
|
||||||
|
|
||||||
serverStatItem.todayUp += up;
|
serverStatItem.todayUp += up;
|
||||||
serverStatItem.todayDown += down;
|
serverStatItem.todayDown += down;
|
||||||
@@ -144,7 +138,7 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Utils.SaveLog(ex.Message, ex);
|
//Utils.SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -169,8 +163,8 @@ namespace v2rayN.Handler
|
|||||||
serverStatistics_.server = new List<ServerStatItem>();
|
serverStatistics_.server = new List<ServerStatItem>();
|
||||||
}
|
}
|
||||||
|
|
||||||
var ticks = DateTime.Now.Date.Ticks;
|
long ticks = DateTime.Now.Date.Ticks;
|
||||||
foreach (var item in serverStatistics_.server)
|
foreach (ServerStatItem item in serverStatistics_.server)
|
||||||
{
|
{
|
||||||
if (item.dateNow != ticks)
|
if (item.dateNow != ticks)
|
||||||
{
|
{
|
||||||
@@ -198,10 +192,29 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ClearAllServerStatistics()
|
||||||
|
{
|
||||||
|
if (serverStatistics_ != null)
|
||||||
|
{
|
||||||
|
foreach (var item in serverStatistics_.server)
|
||||||
|
{
|
||||||
|
item.todayUp = 0;
|
||||||
|
item.todayDown = 0;
|
||||||
|
item.totalUp = 0;
|
||||||
|
item.totalDown = 0;
|
||||||
|
// update ui display to zero
|
||||||
|
updateFunc_(0, 0, new List<ServerStatItem> { item });
|
||||||
|
}
|
||||||
|
|
||||||
|
// update statistic json file
|
||||||
|
SaveToFile();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private ServerStatItem GetServerStatItem(string itemId)
|
private ServerStatItem GetServerStatItem(string itemId)
|
||||||
{
|
{
|
||||||
var ticks = DateTime.Now.Date.Ticks;
|
long ticks = DateTime.Now.Date.Ticks;
|
||||||
var cur = Statistic.FindIndex(item => item.itemId == itemId);
|
int cur = Statistic.FindIndex(item => item.itemId == itemId);
|
||||||
if (cur < 0)
|
if (cur < 0)
|
||||||
{
|
{
|
||||||
Statistic.Add(new ServerStatItem
|
Statistic.Add(new ServerStatItem
|
||||||
@@ -231,12 +244,12 @@ namespace v2rayN.Handler
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
foreach (var stat in source)
|
foreach (Stat stat in source)
|
||||||
{
|
{
|
||||||
var name = stat.Name;
|
string name = stat.Name;
|
||||||
var value = stat.Value;
|
long value = stat.Value;
|
||||||
var nStr = name.Split(">>>".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
|
string[] nStr = name.Split(">>>".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
|
||||||
var type = "";
|
string type = "";
|
||||||
|
|
||||||
name = name.Trim();
|
name = name.Trim();
|
||||||
|
|
||||||
@@ -258,7 +271,7 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Utils.SaveLog(ex.Message, ex);
|
//Utils.SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -270,7 +283,7 @@ namespace v2rayN.Handler
|
|||||||
// TCP stack please do me a favor
|
// TCP stack please do me a favor
|
||||||
TcpListener l = new TcpListener(IPAddress.Loopback, 0);
|
TcpListener l = new TcpListener(IPAddress.Loopback, 0);
|
||||||
l.Start();
|
l.Start();
|
||||||
var port = ((IPEndPoint)l.LocalEndpoint).Port;
|
int port = ((IPEndPoint)l.LocalEndpoint).Port;
|
||||||
l.Stop();
|
l.Stop();
|
||||||
return port;
|
return port;
|
||||||
}
|
}
|
||||||
|
|||||||
477
v2rayN/v2rayN/Handler/UpdateHandle.cs
Normal file
477
v2rayN/v2rayN/Handler/UpdateHandle.cs
Normal file
@@ -0,0 +1,477 @@
|
|||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using v2rayN.Mode;
|
||||||
|
|
||||||
|
namespace v2rayN.Handler
|
||||||
|
{
|
||||||
|
class UpdateHandle
|
||||||
|
{
|
||||||
|
Action<bool, string> _updateFunc;
|
||||||
|
private Config _config;
|
||||||
|
|
||||||
|
public event EventHandler<ResultEventArgs> AbsoluteCompleted;
|
||||||
|
|
||||||
|
public class ResultEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
public bool Success;
|
||||||
|
public string Msg;
|
||||||
|
|
||||||
|
public ResultEventArgs(bool success, string msg)
|
||||||
|
{
|
||||||
|
this.Success = success;
|
||||||
|
this.Msg = msg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private readonly string nLatestUrl = Global.NUrl + "/latest";
|
||||||
|
private const string nUrl = Global.NUrl + "/download/{0}/v2rayN.zip";
|
||||||
|
private readonly string v2flyCoreLatestUrl = Global.v2flyCoreUrl + "/latest";
|
||||||
|
private const string v2flyCoreUrl = Global.v2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip";
|
||||||
|
private readonly string xrayCoreLatestUrl = Global.xrayCoreUrl + "/latest";
|
||||||
|
private const string xrayCoreUrl = Global.xrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip";
|
||||||
|
private const string geoUrl = "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/{0}.dat";
|
||||||
|
|
||||||
|
public void CheckUpdateGuiN(Config config, Action<bool, string> update)
|
||||||
|
{
|
||||||
|
_config = config;
|
||||||
|
_updateFunc = update;
|
||||||
|
var url = string.Empty;
|
||||||
|
|
||||||
|
DownloadHandle downloadHandle = null;
|
||||||
|
if (downloadHandle == null)
|
||||||
|
{
|
||||||
|
downloadHandle = new DownloadHandle();
|
||||||
|
|
||||||
|
downloadHandle.UpdateCompleted += (sender2, args) =>
|
||||||
|
{
|
||||||
|
if (args.Success)
|
||||||
|
{
|
||||||
|
_updateFunc(false, UIRes.I18N("MsgDownloadV2rayCoreSuccessfully"));
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string fileName = Utils.GetPath(Utils.GetDownloadFileName(url));
|
||||||
|
fileName = Utils.UrlEncode(fileName);
|
||||||
|
Process process = new Process
|
||||||
|
{
|
||||||
|
StartInfo = new ProcessStartInfo
|
||||||
|
{
|
||||||
|
FileName = "v2rayUpgrade.exe",
|
||||||
|
Arguments = "\"" + fileName + "\"",
|
||||||
|
WorkingDirectory = Utils.StartupPath()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
process.Start();
|
||||||
|
if (process.Id > 0)
|
||||||
|
{
|
||||||
|
_updateFunc(true, "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_updateFunc(false, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.Msg);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
downloadHandle.Error += (sender2, args) =>
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.GetException().Message);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
AbsoluteCompleted += (sender2, args) =>
|
||||||
|
{
|
||||||
|
if (args.Success)
|
||||||
|
{
|
||||||
|
_updateFunc(false, string.Format(UIRes.I18N("MsgParsingSuccessfully"), "v2rayN"));
|
||||||
|
|
||||||
|
url = args.Msg;
|
||||||
|
askToDownload(downloadHandle, url, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.Msg);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
_updateFunc(false, string.Format(UIRes.I18N("MsgStartUpdating"), "v2rayN"));
|
||||||
|
CheckUpdateAsync("v2rayN");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void CheckUpdateCore(string type, Config config, Action<bool, string> update)
|
||||||
|
{
|
||||||
|
_config = config;
|
||||||
|
_updateFunc = update;
|
||||||
|
var url = string.Empty;
|
||||||
|
|
||||||
|
DownloadHandle downloadHandle = null;
|
||||||
|
if (downloadHandle == null)
|
||||||
|
{
|
||||||
|
downloadHandle = new DownloadHandle();
|
||||||
|
downloadHandle.UpdateCompleted += (sender2, args) =>
|
||||||
|
{
|
||||||
|
if (args.Success)
|
||||||
|
{
|
||||||
|
_updateFunc(false, UIRes.I18N("MsgDownloadV2rayCoreSuccessfully"));
|
||||||
|
_updateFunc(false, UIRes.I18N("MsgUnpacking"));
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_updateFunc(true, url);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_updateFunc(false, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.Msg);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
downloadHandle.Error += (sender2, args) =>
|
||||||
|
{
|
||||||
|
_updateFunc(true, args.GetException().Message);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
AbsoluteCompleted += (sender2, args) =>
|
||||||
|
{
|
||||||
|
if (args.Success)
|
||||||
|
{
|
||||||
|
_updateFunc(false, string.Format(UIRes.I18N("MsgParsingSuccessfully"), "Core"));
|
||||||
|
url = args.Msg;
|
||||||
|
askToDownload(downloadHandle, url, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.Msg);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
_updateFunc(false, string.Format(UIRes.I18N("MsgStartUpdating"), "Core"));
|
||||||
|
CheckUpdateAsync(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void UpdateSubscriptionProcess(Config config, bool blProxy, Action<bool, string> update)
|
||||||
|
{
|
||||||
|
_config = config;
|
||||||
|
_updateFunc = update;
|
||||||
|
|
||||||
|
_updateFunc(false, UIRes.I18N("MsgUpdateSubscriptionStart"));
|
||||||
|
|
||||||
|
if (config.subItem == null || config.subItem.Count <= 0)
|
||||||
|
{
|
||||||
|
_updateFunc(false, UIRes.I18N("MsgNoValidSubscription"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int k = 1; k <= config.subItem.Count; k++)
|
||||||
|
{
|
||||||
|
string id = config.subItem[k - 1].id.Trim();
|
||||||
|
string url = config.subItem[k - 1].url.Trim();
|
||||||
|
string userAgent = config.subItem[k - 1].userAgent.Trim();
|
||||||
|
string hashCode = $"{k}->";
|
||||||
|
if (config.subItem[k - 1].enabled == false)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (Utils.IsNullOrEmpty(id) || Utils.IsNullOrEmpty(url))
|
||||||
|
{
|
||||||
|
_updateFunc(false, $"{hashCode}{UIRes.I18N("MsgNoValidSubscription")}");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
DownloadHandle downloadHandle3 = new DownloadHandle();
|
||||||
|
downloadHandle3.UpdateCompleted += (sender2, args) =>
|
||||||
|
{
|
||||||
|
if (args.Success)
|
||||||
|
{
|
||||||
|
_updateFunc(false, $"{hashCode}{UIRes.I18N("MsgGetSubscriptionSuccessfully")}");
|
||||||
|
string result = Utils.Base64Decode(args.Msg);
|
||||||
|
if (Utils.IsNullOrEmpty(result))
|
||||||
|
{
|
||||||
|
_updateFunc(false, $"{hashCode}{UIRes.I18N("MsgSubscriptionDecodingFailed")}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigHandler.RemoveServerViaSubid(ref config, id);
|
||||||
|
_updateFunc(false, $"{hashCode}{UIRes.I18N("MsgClearSubscription")}");
|
||||||
|
// RefreshServers();
|
||||||
|
int ret = MainFormHandler.Instance.AddBatchServers(config, result, id);
|
||||||
|
if (ret > 0)
|
||||||
|
{
|
||||||
|
// RefreshServers();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, $"{hashCode}{UIRes.I18N("MsgFailedImportSubscription")}");
|
||||||
|
}
|
||||||
|
_updateFunc(true, $"{hashCode}{UIRes.I18N("MsgUpdateSubscriptionEnd")}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.Msg);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
downloadHandle3.Error += (sender2, args) =>
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.GetException().Message);
|
||||||
|
};
|
||||||
|
|
||||||
|
WebProxy webProxy = blProxy ? new WebProxy(Global.Loopback, _config.GetLocalPort(Global.InboundHttp)) : null;
|
||||||
|
downloadHandle3.WebDownloadString(url, webProxy, userAgent);
|
||||||
|
|
||||||
|
_updateFunc(false, $"{hashCode}{UIRes.I18N("MsgStartGettingSubscriptions")}");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void UpdateGeoFile(string geoName, Config config, Action<bool, string> update)
|
||||||
|
{
|
||||||
|
_config = config;
|
||||||
|
_updateFunc = update;
|
||||||
|
var url = string.Format(geoUrl, geoName);
|
||||||
|
|
||||||
|
DownloadHandle downloadHandle = null;
|
||||||
|
if (downloadHandle == null)
|
||||||
|
{
|
||||||
|
downloadHandle = new DownloadHandle();
|
||||||
|
|
||||||
|
downloadHandle.UpdateCompleted += (sender2, args) =>
|
||||||
|
{
|
||||||
|
if (args.Success)
|
||||||
|
{
|
||||||
|
_updateFunc(false, string.Format(UIRes.I18N("MsgDownloadGeoFileSuccessfully"), geoName));
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string fileName = Utils.GetPath(Utils.GetDownloadFileName(url));
|
||||||
|
if (File.Exists(fileName))
|
||||||
|
{
|
||||||
|
string targetPath = Utils.GetPath($"{geoName}.dat");
|
||||||
|
if (File.Exists(targetPath))
|
||||||
|
{
|
||||||
|
File.Delete(targetPath);
|
||||||
|
}
|
||||||
|
File.Move(fileName, targetPath);
|
||||||
|
_updateFunc(true, "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_updateFunc(false, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.Msg);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
downloadHandle.Error += (sender2, args) =>
|
||||||
|
{
|
||||||
|
_updateFunc(false, args.GetException().Message);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
askToDownload(downloadHandle, url, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region private
|
||||||
|
|
||||||
|
private async void CheckUpdateAsync(string type)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Utils.SetSecurityProtocol();
|
||||||
|
WebRequestHandler webRequestHandler = new WebRequestHandler
|
||||||
|
{
|
||||||
|
AllowAutoRedirect = false
|
||||||
|
};
|
||||||
|
if (httpProxyTest() > 0)
|
||||||
|
{
|
||||||
|
int httpPort = _config.GetLocalPort(Global.InboundHttp);
|
||||||
|
WebProxy webProxy = new WebProxy(Global.Loopback, httpPort);
|
||||||
|
webRequestHandler.Proxy = webProxy;
|
||||||
|
}
|
||||||
|
HttpClient httpClient = new HttpClient(webRequestHandler);
|
||||||
|
|
||||||
|
string url;
|
||||||
|
if (type == "v2fly")
|
||||||
|
{
|
||||||
|
url = v2flyCoreLatestUrl;
|
||||||
|
}
|
||||||
|
else if (type == "xray")
|
||||||
|
{
|
||||||
|
url = xrayCoreLatestUrl;
|
||||||
|
}
|
||||||
|
else if (type == "v2rayN")
|
||||||
|
{
|
||||||
|
url = nLatestUrl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Type");
|
||||||
|
}
|
||||||
|
HttpResponseMessage response = await httpClient.GetAsync(url);
|
||||||
|
if (response.StatusCode.ToString() == "Redirect")
|
||||||
|
{
|
||||||
|
responseHandler(type, response.Headers.Location.ToString());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Utils.SaveLog("StatusCode error: " + url);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
_updateFunc(false, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取V2RayCore版本
|
||||||
|
/// </summary>
|
||||||
|
private string getCoreVersion(string type)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var core = string.Empty;
|
||||||
|
var match = string.Empty;
|
||||||
|
if (type == "v2fly")
|
||||||
|
{
|
||||||
|
core = "v2ray.exe";
|
||||||
|
match = "V2Ray";
|
||||||
|
}
|
||||||
|
else if (type == "xray")
|
||||||
|
{
|
||||||
|
core = "xray.exe";
|
||||||
|
match = "Xray";
|
||||||
|
}
|
||||||
|
string filePath = Utils.GetPath(core);
|
||||||
|
if (!File.Exists(filePath))
|
||||||
|
{
|
||||||
|
string msg = string.Format(UIRes.I18N("NotFoundCore"), @"");
|
||||||
|
//ShowMsg(true, msg);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
Process p = new Process();
|
||||||
|
p.StartInfo.FileName = filePath;
|
||||||
|
p.StartInfo.Arguments = "-version";
|
||||||
|
p.StartInfo.WorkingDirectory = Utils.StartupPath();
|
||||||
|
p.StartInfo.UseShellExecute = false;
|
||||||
|
p.StartInfo.RedirectStandardOutput = true;
|
||||||
|
p.StartInfo.CreateNoWindow = true;
|
||||||
|
p.StartInfo.StandardOutputEncoding = Encoding.UTF8;
|
||||||
|
p.Start();
|
||||||
|
p.WaitForExit(5000);
|
||||||
|
string echo = p.StandardOutput.ReadToEnd();
|
||||||
|
string version = Regex.Match(echo, $"{match} ([0-9.]+) \\(").Groups[1].Value;
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
_updateFunc(false, ex.Message);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void responseHandler(string type, string redirectUrl)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string version = redirectUrl.Substring(redirectUrl.LastIndexOf("/", StringComparison.Ordinal) + 1);
|
||||||
|
|
||||||
|
string curVersion;
|
||||||
|
string message;
|
||||||
|
string url;
|
||||||
|
if (type == "v2fly")
|
||||||
|
{
|
||||||
|
curVersion = "v" + getCoreVersion(type);
|
||||||
|
message = string.Format(UIRes.I18N("IsLatestCore"), curVersion);
|
||||||
|
string osBit = Environment.Is64BitProcess ? "64" : "32";
|
||||||
|
url = string.Format(v2flyCoreUrl, version, osBit);
|
||||||
|
}
|
||||||
|
else if (type == "xray")
|
||||||
|
{
|
||||||
|
curVersion = "v" + getCoreVersion(type);
|
||||||
|
message = string.Format(UIRes.I18N("IsLatestCore"), curVersion);
|
||||||
|
string osBit = Environment.Is64BitProcess ? "64" : "32";
|
||||||
|
url = string.Format(xrayCoreUrl, version, osBit);
|
||||||
|
}
|
||||||
|
else if (type == "v2rayN")
|
||||||
|
{
|
||||||
|
curVersion = FileVersionInfo.GetVersionInfo(Utils.GetExePath()).FileVersion.ToString();
|
||||||
|
message = string.Format(UIRes.I18N("IsLatestN"), curVersion);
|
||||||
|
url = string.Format(nUrl, version);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Type");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (curVersion == version)
|
||||||
|
{
|
||||||
|
AbsoluteCompleted?.Invoke(this, new ResultEventArgs(false, message));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
AbsoluteCompleted?.Invoke(this, new ResultEventArgs(true, url));
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
_updateFunc(false, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void askToDownload(DownloadHandle downloadHandle, string url, bool blAsk)
|
||||||
|
{
|
||||||
|
bool blDownload = false;
|
||||||
|
if (blAsk)
|
||||||
|
{
|
||||||
|
if (UI.ShowYesNo(string.Format(UIRes.I18N("DownloadYesNo"), url)) == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
blDownload = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
blDownload = true;
|
||||||
|
}
|
||||||
|
if (blDownload)
|
||||||
|
{
|
||||||
|
if (httpProxyTest() > 0)
|
||||||
|
{
|
||||||
|
int httpPort = _config.GetLocalPort(Global.InboundHttp);
|
||||||
|
WebProxy webProxy = new WebProxy(Global.Loopback, httpPort);
|
||||||
|
downloadHandle.DownloadFileAsync(url, webProxy, 600);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
downloadHandle.DownloadFileAsync(url, null, 600);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int httpProxyTest()
|
||||||
|
{
|
||||||
|
SpeedtestHandler statistics = new SpeedtestHandler(ref _config);
|
||||||
|
return statistics.RunAvailabilityCheck();
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -22,14 +22,13 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
private static string v2rayConfigRes = Global.v2rayConfigFileName;
|
private static string v2rayConfigRes = Global.v2rayConfigFileName;
|
||||||
private List<string> lstV2ray;
|
private List<string> lstV2ray;
|
||||||
|
private string coreUrl;
|
||||||
public event ProcessDelegate ProcessEvent;
|
public event ProcessDelegate ProcessEvent;
|
||||||
private int processId = 0;
|
//private int processId = 0;
|
||||||
|
private Process _process;
|
||||||
|
|
||||||
public V2rayHandler()
|
public V2rayHandler()
|
||||||
{
|
{
|
||||||
lstV2ray = new List<string>();
|
|
||||||
lstV2ray.Add("wv2ray");
|
|
||||||
lstV2ray.Add("v2ray");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -37,11 +36,28 @@ namespace v2rayN.Handler
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public void LoadV2ray(Config config)
|
public void LoadV2ray(Config config)
|
||||||
{
|
{
|
||||||
|
if (config.coreType == ECoreType.v2fly_core)
|
||||||
|
{
|
||||||
|
lstV2ray = new List<string>
|
||||||
|
{
|
||||||
|
"wv2ray",
|
||||||
|
"v2ray"
|
||||||
|
};
|
||||||
|
coreUrl = Global.v2flyCoreUrl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lstV2ray = new List<string>
|
||||||
|
{
|
||||||
|
"xray"
|
||||||
|
};
|
||||||
|
coreUrl = Global.xrayCoreUrl;
|
||||||
|
}
|
||||||
|
|
||||||
if (Global.reloadV2ray)
|
if (Global.reloadV2ray)
|
||||||
{
|
{
|
||||||
string msg = string.Empty;
|
|
||||||
string fileName = Utils.GetPath(v2rayConfigRes);
|
string fileName = Utils.GetPath(v2rayConfigRes);
|
||||||
if (V2rayConfigHandler.GenerateClientConfig(config, fileName, false, out msg) != 0)
|
if (V2rayConfigHandler.GenerateClientConfig(config, fileName, false, out string msg) != 0)
|
||||||
{
|
{
|
||||||
ShowMsg(false, msg);
|
ShowMsg(false, msg);
|
||||||
}
|
}
|
||||||
@@ -54,24 +70,25 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 载入V2ray
|
/// 新建进程,载入V2ray配置文件字符串
|
||||||
|
/// 返回新进程pid。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void LoadV2ray(Config config, List<int> _selecteds)
|
public int LoadV2rayConfigString(Config config, List<ServerTestItem> _selecteds)
|
||||||
{
|
{
|
||||||
if (Global.reloadV2ray)
|
int pid = -1;
|
||||||
|
string configStr = V2rayConfigHandler.GenerateClientSpeedtestConfigString(config, _selecteds, out string msg);
|
||||||
|
if (configStr == "")
|
||||||
{
|
{
|
||||||
string msg = string.Empty;
|
ShowMsg(false, msg);
|
||||||
string fileName = Utils.GetPath(v2rayConfigRes);
|
|
||||||
if (V2rayConfigHandler.GenerateClientSpeedtestConfig(config, _selecteds, fileName, out msg) != 0)
|
|
||||||
{
|
|
||||||
ShowMsg(false, msg);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ShowMsg(true, msg);
|
|
||||||
V2rayRestart();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ShowMsg(false, msg);
|
||||||
|
pid = V2rayStartNew(configStr);
|
||||||
|
//V2rayRestart();
|
||||||
|
// start with -config
|
||||||
|
}
|
||||||
|
return pid;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -90,33 +107,93 @@ namespace v2rayN.Handler
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
bool blExist = true;
|
if (_process != null)
|
||||||
if (processId > 0)
|
|
||||||
{
|
{
|
||||||
Process p1 = Process.GetProcessById(processId);
|
KillProcess(_process);
|
||||||
if (p1 != null)
|
_process.Dispose();
|
||||||
{
|
_process = null;
|
||||||
p1.Kill();
|
|
||||||
blExist = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (blExist)
|
else
|
||||||
{
|
{
|
||||||
foreach (string vName in lstV2ray)
|
foreach (string vName in lstV2ray)
|
||||||
{
|
{
|
||||||
Process[] killPro = Process.GetProcessesByName(vName);
|
Process[] existing = Process.GetProcessesByName(vName);
|
||||||
foreach (Process p in killPro)
|
foreach (Process p in existing)
|
||||||
{
|
{
|
||||||
p.Kill();
|
string path = p.MainModule.FileName;
|
||||||
|
if (path == $"{Utils.GetPath(vName)}.exe")
|
||||||
|
{
|
||||||
|
KillProcess(p);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//bool blExist = true;
|
||||||
|
//if (processId > 0)
|
||||||
|
//{
|
||||||
|
// Process p1 = Process.GetProcessById(processId);
|
||||||
|
// if (p1 != null)
|
||||||
|
// {
|
||||||
|
// p1.Kill();
|
||||||
|
// blExist = false;
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
//if (blExist)
|
||||||
|
//{
|
||||||
|
// foreach (string vName in lstV2ray)
|
||||||
|
// {
|
||||||
|
// Process[] killPro = Process.GetProcessesByName(vName);
|
||||||
|
// foreach (Process p in killPro)
|
||||||
|
// {
|
||||||
|
// p.Kill();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Utils.SaveLog(ex.Message, ex);
|
Utils.SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// V2ray停止
|
||||||
|
/// </summary>
|
||||||
|
public void V2rayStopPid(int pid)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Process _p = Process.GetProcessById(pid);
|
||||||
|
KillProcess(_p);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string V2rayFindexe()
|
||||||
|
{
|
||||||
|
//查找v2ray文件是否存在
|
||||||
|
string fileName = string.Empty;
|
||||||
|
//lstV2ray.Reverse();
|
||||||
|
foreach (string name in lstV2ray)
|
||||||
|
{
|
||||||
|
string vName = string.Format("{0}.exe", name);
|
||||||
|
vName = Utils.GetPath(vName);
|
||||||
|
if (File.Exists(vName))
|
||||||
|
{
|
||||||
|
fileName = vName;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Utils.IsNullOrEmpty(fileName))
|
||||||
|
{
|
||||||
|
string msg = string.Format(UIRes.I18N("NotFoundCore"), coreUrl);
|
||||||
|
ShowMsg(false, msg);
|
||||||
|
}
|
||||||
|
return fileName;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// V2ray启动
|
/// V2ray启动
|
||||||
@@ -127,32 +204,22 @@ namespace v2rayN.Handler
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
//查找v2ray文件是否存在
|
string fileName = V2rayFindexe();
|
||||||
string fileName = string.Empty;
|
if (fileName == "") return;
|
||||||
for (int k = 0; k < lstV2ray.Count; k++)
|
|
||||||
{
|
|
||||||
string vName = string.Format("{0}.exe", lstV2ray[k]);
|
|
||||||
vName = Utils.GetPath(vName);
|
|
||||||
if (File.Exists(vName))
|
|
||||||
{
|
|
||||||
fileName = vName;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (Utils.IsNullOrEmpty(fileName))
|
|
||||||
{
|
|
||||||
string msg = string.Format(UIRes.I18N("NotFoundCore"), @"https://github.com/v2ray/v2ray-core/releases");
|
|
||||||
ShowMsg(true, msg);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Process p = new Process();
|
Process p = new Process
|
||||||
p.StartInfo.FileName = fileName;
|
{
|
||||||
p.StartInfo.WorkingDirectory = Utils.StartupPath();
|
StartInfo = new ProcessStartInfo
|
||||||
p.StartInfo.UseShellExecute = false;
|
{
|
||||||
p.StartInfo.RedirectStandardOutput = true;
|
FileName = fileName,
|
||||||
p.StartInfo.CreateNoWindow = true;
|
WorkingDirectory = Utils.StartupPath(),
|
||||||
p.StartInfo.StandardOutputEncoding = Encoding.UTF8;
|
UseShellExecute = false,
|
||||||
|
RedirectStandardOutput = true,
|
||||||
|
RedirectStandardError = true,
|
||||||
|
CreateNoWindow = true,
|
||||||
|
StandardOutputEncoding = Encoding.UTF8
|
||||||
|
}
|
||||||
|
};
|
||||||
p.OutputDataReceived += new DataReceivedEventHandler((sender, e) =>
|
p.OutputDataReceived += new DataReceivedEventHandler((sender, e) =>
|
||||||
{
|
{
|
||||||
if (!String.IsNullOrEmpty(e.Data))
|
if (!String.IsNullOrEmpty(e.Data))
|
||||||
@@ -162,8 +229,15 @@ namespace v2rayN.Handler
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
p.Start();
|
p.Start();
|
||||||
|
p.PriorityClass = ProcessPriorityClass.High;
|
||||||
p.BeginOutputReadLine();
|
p.BeginOutputReadLine();
|
||||||
processId = p.Id;
|
//processId = p.Id;
|
||||||
|
_process = p;
|
||||||
|
|
||||||
|
if (p.WaitForExit(1000))
|
||||||
|
{
|
||||||
|
throw new Exception(p.StandardError.ReadToEnd());
|
||||||
|
}
|
||||||
|
|
||||||
Global.processJob.AddProcess(p.Handle);
|
Global.processJob.AddProcess(p.Handle);
|
||||||
}
|
}
|
||||||
@@ -174,17 +248,89 @@ namespace v2rayN.Handler
|
|||||||
ShowMsg(true, msg);
|
ShowMsg(true, msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// V2ray启动,新建进程,传入配置字符串
|
||||||
|
/// </summary>
|
||||||
|
private int V2rayStartNew(string configStr)
|
||||||
|
{
|
||||||
|
ShowMsg(false, string.Format(UIRes.I18N("StartService"), DateTime.Now.ToString()));
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string fileName = V2rayFindexe();
|
||||||
|
if (fileName == "") return -1;
|
||||||
|
|
||||||
|
Process p = new Process
|
||||||
|
{
|
||||||
|
StartInfo = new ProcessStartInfo
|
||||||
|
{
|
||||||
|
FileName = fileName,
|
||||||
|
Arguments = "-config stdin:",
|
||||||
|
WorkingDirectory = Utils.StartupPath(),
|
||||||
|
UseShellExecute = false,
|
||||||
|
RedirectStandardInput = true,
|
||||||
|
RedirectStandardOutput = true,
|
||||||
|
RedirectStandardError = true,
|
||||||
|
CreateNoWindow = true,
|
||||||
|
StandardOutputEncoding = Encoding.UTF8
|
||||||
|
}
|
||||||
|
};
|
||||||
|
p.OutputDataReceived += new DataReceivedEventHandler((sender, e) =>
|
||||||
|
{
|
||||||
|
if (!String.IsNullOrEmpty(e.Data))
|
||||||
|
{
|
||||||
|
string msg = e.Data + Environment.NewLine;
|
||||||
|
ShowMsg(false, msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
p.Start();
|
||||||
|
p.BeginOutputReadLine();
|
||||||
|
|
||||||
|
p.StandardInput.Write(configStr);
|
||||||
|
p.StandardInput.Close();
|
||||||
|
|
||||||
|
if (p.WaitForExit(1000))
|
||||||
|
{
|
||||||
|
throw new Exception(p.StandardError.ReadToEnd());
|
||||||
|
}
|
||||||
|
|
||||||
|
Global.processJob.AddProcess(p.Handle);
|
||||||
|
return p.Id;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
string msg = ex.Message;
|
||||||
|
ShowMsg(false, msg);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 消息委托
|
/// 消息委托
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="notify"></param>
|
/// <param name="updateToTrayTooltip">是否更新托盘图标的工具提示</param>
|
||||||
/// <param name="msg"></param>
|
/// <param name="msg">输出到日志框</param>
|
||||||
private void ShowMsg(bool notify, string msg)
|
private void ShowMsg(bool updateToTrayTooltip, string msg)
|
||||||
{
|
{
|
||||||
if (ProcessEvent != null)
|
ProcessEvent?.Invoke(updateToTrayTooltip, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void KillProcess(Process p)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
ProcessEvent(notify, msg);
|
p.CloseMainWindow();
|
||||||
|
p.WaitForExit(100);
|
||||||
|
if (!p.HasExited)
|
||||||
|
{
|
||||||
|
p.Kill();
|
||||||
|
p.WaitForExit(100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,60 +3,58 @@ using v2rayN.Mode;
|
|||||||
|
|
||||||
namespace v2rayN.HttpProxyHandler
|
namespace v2rayN.HttpProxyHandler
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 系统代理(http)模式
|
||||||
|
/// </summary>
|
||||||
|
public enum ListenerType
|
||||||
|
{
|
||||||
|
noHttpProxy = 0,
|
||||||
|
GlobalHttp = 1,
|
||||||
|
HttpOpenAndClear = 2,
|
||||||
|
HttpOpenOnly = 3,
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 系统代理(http)总处理
|
/// 系统代理(http)总处理
|
||||||
/// 启动privoxy提供http协议
|
/// 启动privoxy提供http协议
|
||||||
/// 设置IE系统代理或者PAC模式
|
/// 设置IE系统代理
|
||||||
/// </summary>
|
/// </summary>
|
||||||
class HttpProxyHandle
|
class HttpProxyHandle
|
||||||
{
|
{
|
||||||
private static bool Update(Config config, bool forceDisable)
|
private static bool Update(Config config, bool forceDisable)
|
||||||
{
|
{
|
||||||
int type = config.listenerType;
|
// ListenerType type = config.listenerType;
|
||||||
|
var type = ListenerType.noHttpProxy;
|
||||||
if (forceDisable)
|
if (forceDisable)
|
||||||
{
|
{
|
||||||
type = 0;
|
type = ListenerType.noHttpProxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (type != 0)
|
if (type != ListenerType.noHttpProxy)
|
||||||
{
|
{
|
||||||
var port = Global.httpPort;
|
int port = Global.httpPort;
|
||||||
if (port <= 0)
|
if (port <= 0)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (type == 1)
|
if (type == ListenerType.GlobalHttp)
|
||||||
{
|
{
|
||||||
//PACServerHandle.Stop();
|
//ProxySetting.SetProxy($"{Global.Loopback}:{port}", Global.IEProxyExceptions, 2);
|
||||||
ProxySetting.SetProxy($"{Global.Loopback}:{port}", Global.IEProxyExceptions, 2);
|
SysProxyHandle.SetIEProxy(true, true, $"{Global.Loopback}:{port}");
|
||||||
}
|
}
|
||||||
else if (type == 2)
|
else if (type == ListenerType.HttpOpenAndClear)
|
||||||
{
|
{
|
||||||
string pacUrl = GetPacUrl();
|
SysProxyHandle.ResetIEProxy();
|
||||||
ProxySetting.SetProxy(pacUrl, "", 4);
|
|
||||||
//PACServerHandle.Stop();
|
|
||||||
PACServerHandle.Init(config);
|
|
||||||
}
|
}
|
||||||
else if (type == 3)
|
else if (type == ListenerType.HttpOpenOnly)
|
||||||
{
|
{
|
||||||
//PACServerHandle.Stop();
|
//SysProxyHandle.ResetIEProxy();
|
||||||
ProxySetting.UnsetProxy();
|
|
||||||
}
|
|
||||||
else if (type == 4)
|
|
||||||
{
|
|
||||||
string pacUrl = GetPacUrl();
|
|
||||||
ProxySetting.UnsetProxy();
|
|
||||||
//PACServerHandle.Stop();
|
|
||||||
PACServerHandle.Init(config);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ProxySetting.UnsetProxy();
|
SysProxyHandle.ResetIEProxy();
|
||||||
//PACServerHandle.Stop();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@@ -83,7 +81,6 @@ namespace v2rayN.HttpProxyHandler
|
|||||||
Global.sysAgent = true;
|
Global.sysAgent = true;
|
||||||
Global.socksPort = localPort;
|
Global.socksPort = localPort;
|
||||||
Global.httpPort = PrivoxyHandler.Instance.RunningPort;
|
Global.httpPort = PrivoxyHandler.Instance.RunningPort;
|
||||||
Global.pacPort = config.GetLocalPort("pac");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -100,7 +97,10 @@ namespace v2rayN.HttpProxyHandler
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Update(config, true);
|
//if (config.listenerType != ListenerType.HttpOpenOnly)
|
||||||
|
//{
|
||||||
|
// Update(config, true);
|
||||||
|
//}
|
||||||
|
|
||||||
PrivoxyHandler.Instance.Stop();
|
PrivoxyHandler.Instance.Stop();
|
||||||
|
|
||||||
@@ -121,6 +121,11 @@ namespace v2rayN.HttpProxyHandler
|
|||||||
public static void RestartHttpAgent(Config config, bool forced)
|
public static void RestartHttpAgent(Config config, bool forced)
|
||||||
{
|
{
|
||||||
bool isRestart = false;
|
bool isRestart = false;
|
||||||
|
//if (config.listenerType == ListenerType.noHttpProxy)
|
||||||
|
//{
|
||||||
|
// // 关闭http proxy时,直接返回
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
//强制重启或者socks端口变化
|
//强制重启或者socks端口变化
|
||||||
if (forced)
|
if (forced)
|
||||||
{
|
{
|
||||||
@@ -142,10 +147,53 @@ namespace v2rayN.HttpProxyHandler
|
|||||||
Update(config, false);
|
Update(config, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetPacUrl()
|
public static bool UpdateSysProxy(Config config, bool forceDisable)
|
||||||
{
|
{
|
||||||
string pacUrl = $"http://{Global.Loopback}:{Global.pacPort}/pac/?t={ DateTime.Now.ToString("HHmmss")}";
|
var type = config.sysProxyType;
|
||||||
return pacUrl;
|
|
||||||
|
if (forceDisable && type == ESysProxyType.ForcedChange)
|
||||||
|
{
|
||||||
|
type = ESysProxyType.ForcedClear;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Global.httpPort = config.GetLocalPort(Global.InboundHttp);
|
||||||
|
int port = Global.httpPort;
|
||||||
|
if (port <= 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (type == ESysProxyType.ForcedChange)
|
||||||
|
{
|
||||||
|
var strExceptions = $"{config.constItem.defIEProxyExceptions};{config.systemProxyExceptions}";
|
||||||
|
SysProxyHandle.SetIEProxy(true, $"{Global.Loopback}:{port}", strExceptions);
|
||||||
|
}
|
||||||
|
else if (type == ESysProxyType.ForcedClear)
|
||||||
|
{
|
||||||
|
SysProxyHandle.ResetIEProxy();
|
||||||
|
}
|
||||||
|
else if (type == ESysProxyType.Unchanged)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ResetIEProxy4WindowsShutDown()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//TODO To be verified
|
||||||
|
Utils.RegWriteValue(@"Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable", 0);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,207 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Text;
|
|
||||||
using v2rayN.Mode;
|
|
||||||
using v2rayN.Properties;
|
|
||||||
using v2rayN.Tool;
|
|
||||||
using v2rayN.Base;
|
|
||||||
|
|
||||||
namespace v2rayN.HttpProxyHandler
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 提供PAC功能支持
|
|
||||||
/// </summary>
|
|
||||||
class PACServerHandle
|
|
||||||
{
|
|
||||||
private static int pacPort = 0;
|
|
||||||
private static HttpWebServer server;
|
|
||||||
private static HttpWebServerB serverB;
|
|
||||||
private static Config _config;
|
|
||||||
|
|
||||||
public static bool IsRunning
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return (pacPort > 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void Init(Config config)
|
|
||||||
{
|
|
||||||
_config = config;
|
|
||||||
Global.pacPort = config.GetLocalPort("pac");
|
|
||||||
|
|
||||||
if (InitServer("*"))
|
|
||||||
{
|
|
||||||
pacPort = Global.pacPort;
|
|
||||||
}
|
|
||||||
//else if (InitServer(Global.Loopback))
|
|
||||||
//{
|
|
||||||
// pacPort = Global.pacPort;
|
|
||||||
//}
|
|
||||||
else if (InitServerB(Global.Loopback))
|
|
||||||
{
|
|
||||||
pacPort = Global.pacPort;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Utils.SaveLog("Webserver init failed ");
|
|
||||||
pacPort = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static bool InitServer(string address)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (pacPort != Global.pacPort)
|
|
||||||
{
|
|
||||||
if (server != null)
|
|
||||||
{
|
|
||||||
server.Stop();
|
|
||||||
server = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (server == null)
|
|
||||||
{
|
|
||||||
string prefixes = string.Format("http://{0}:{1}/pac/", address, Global.pacPort);
|
|
||||||
Utils.SaveLog("Webserver prefixes " + prefixes);
|
|
||||||
|
|
||||||
server = new HttpWebServer(SendResponse, prefixes);
|
|
||||||
server.Run();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Utils.SaveLog("Webserver at " + address);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog("Webserver InitServer " + ex.Message);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool InitServerB(string address)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (pacPort != Global.pacPort)
|
|
||||||
{
|
|
||||||
if (serverB != null)
|
|
||||||
{
|
|
||||||
serverB.Stop();
|
|
||||||
serverB = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (serverB == null)
|
|
||||||
{
|
|
||||||
serverB = new HttpWebServerB(Global.pacPort, SendResponse);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Utils.SaveLog("WebserverB at " + address);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog("WebserverB InitServer " + ex.Message);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string SendResponse(string address)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var pac = GetPacList(address);
|
|
||||||
return pac;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog("Webserver SendResponse " + ex.Message);
|
|
||||||
return ex.Message;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void Stop()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (server != null)
|
|
||||||
{
|
|
||||||
server.Stop();
|
|
||||||
server = null;
|
|
||||||
}
|
|
||||||
if (serverB != null)
|
|
||||||
{
|
|
||||||
serverB.Stop();
|
|
||||||
serverB = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Utils.SaveLog("Webserver Stop " + ex.Message);
|
|
||||||
}
|
|
||||||
|
|
||||||
//try
|
|
||||||
//{
|
|
||||||
// if (httpWebServer == null)
|
|
||||||
// {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// foreach (var key in httpWebServer.Keys)
|
|
||||||
// {
|
|
||||||
// Utils.SaveLog("Webserver Stop " + key.ToString());
|
|
||||||
// ((HttpWebServer)httpWebServer[key]).Stop();
|
|
||||||
// }
|
|
||||||
// httpWebServer.Clear();
|
|
||||||
//}
|
|
||||||
//catch (Exception ex)
|
|
||||||
//{
|
|
||||||
// Utils.SaveLog("Webserver Stop " + ex.Message);
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static string GetPacList(string address)
|
|
||||||
{
|
|
||||||
var port = Global.httpPort;
|
|
||||||
if (port <= 0)
|
|
||||||
{
|
|
||||||
return "No port";
|
|
||||||
}
|
|
||||||
try
|
|
||||||
{
|
|
||||||
List<string> lstProxy = new List<string>();
|
|
||||||
lstProxy.Add(string.Format("PROXY {0}:{1};", address, port));
|
|
||||||
var proxy = string.Join("", lstProxy.ToArray());
|
|
||||||
|
|
||||||
string strPacfile = Utils.GetPath(Global.pacFILE);
|
|
||||||
if (!File.Exists(strPacfile))
|
|
||||||
{
|
|
||||||
FileManager.UncompressFile(strPacfile, Resources.pac_txt);
|
|
||||||
}
|
|
||||||
var pac = File.ReadAllText(strPacfile, Encoding.UTF8);
|
|
||||||
pac = pac.Replace("__PROXY__", proxy);
|
|
||||||
|
|
||||||
if (_config.userPacRule.Count > 0)
|
|
||||||
{
|
|
||||||
var keyWords = "var rules = [";
|
|
||||||
if (pac.IndexOf(keyWords) >= 0)
|
|
||||||
{
|
|
||||||
var userPac = string.Join($"\",{Environment.NewLine}\"", _config.userPacRule.ToArray());
|
|
||||||
userPac = string.Format("\"{0}\",", userPac);
|
|
||||||
pac = pac.Replace(keyWords, keyWords + userPac);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return pac;
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
}
|
|
||||||
return "No pac content";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -74,7 +74,7 @@ namespace v2rayN.HttpProxyHandler
|
|||||||
if (_process == null)
|
if (_process == null)
|
||||||
{
|
{
|
||||||
|
|
||||||
string privoxyConfig = Resources.privoxy_conf;
|
string privoxyConfig = "";//Resources.privoxy_conf;
|
||||||
RunningPort = config.GetLocalPort(Global.InboundHttp);
|
RunningPort = config.GetLocalPort(Global.InboundHttp);
|
||||||
privoxyConfig = privoxyConfig.Replace("__SOCKS_PORT__", localPort.ToString());
|
privoxyConfig = privoxyConfig.Replace("__SOCKS_PORT__", localPort.ToString());
|
||||||
privoxyConfig = privoxyConfig.Replace("__PRIVOXY_BIND_PORT__", RunningPort.ToString());
|
privoxyConfig = privoxyConfig.Replace("__PRIVOXY_BIND_PORT__", RunningPort.ToString());
|
||||||
@@ -146,7 +146,7 @@ namespace v2rayN.HttpProxyHandler
|
|||||||
if (!p.HasExited)
|
if (!p.HasExited)
|
||||||
{
|
{
|
||||||
p.Kill();
|
p.Kill();
|
||||||
p.WaitForExit();
|
p.WaitForExit(100);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@@ -172,7 +172,7 @@ namespace v2rayN.HttpProxyHandler
|
|||||||
/*
|
/*
|
||||||
* Under PortableMode, we could identify it by the path of v2ray_privoxy.exe.
|
* Under PortableMode, we could identify it by the path of v2ray_privoxy.exe.
|
||||||
*/
|
*/
|
||||||
var path = process.MainModule.FileName;
|
string path = process.MainModule.FileName;
|
||||||
|
|
||||||
return Utils.GetTempPath($"{_privoxyName}.exe").Equals(path);
|
return Utils.GetTempPath($"{_privoxyName}.exe").Equals(path);
|
||||||
|
|
||||||
|
|||||||
@@ -70,14 +70,22 @@ namespace v2rayN.HttpProxyHandler
|
|||||||
// copy the array over into that spot in memory ...
|
// copy the array over into that spot in memory ...
|
||||||
for (int i = 0; i < options.Length; ++i)
|
for (int i = 0; i < options.Length; ++i)
|
||||||
{
|
{
|
||||||
IntPtr opt = new IntPtr(optionsPtr.ToInt32() + (i * optSize));
|
if (Environment.Is64BitOperatingSystem)
|
||||||
Marshal.StructureToPtr(options[i], opt, false);
|
{
|
||||||
|
IntPtr opt = new IntPtr(optionsPtr.ToInt64() + (i * optSize));
|
||||||
|
Marshal.StructureToPtr(options[i], opt, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
IntPtr opt = new IntPtr(optionsPtr.ToInt32() + (i * optSize));
|
||||||
|
Marshal.StructureToPtr(options[i], opt, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
list.options = optionsPtr;
|
list.options = optionsPtr;
|
||||||
|
|
||||||
// and then make a pointer out of the whole list
|
// and then make a pointer out of the whole list
|
||||||
IntPtr ipcoListPtr = Marshal.AllocCoTaskMem((Int32)list.dwSize);
|
IntPtr ipcoListPtr = Marshal.AllocCoTaskMem((int)list.dwSize);
|
||||||
Marshal.StructureToPtr(list, ipcoListPtr, false);
|
Marshal.StructureToPtr(list, ipcoListPtr, false);
|
||||||
|
|
||||||
// and finally, call the API method!
|
// and finally, call the API method!
|
||||||
@@ -120,7 +128,7 @@ namespace v2rayN.HttpProxyHandler
|
|||||||
public InternetConnectionOptionValue m_Value;
|
public InternetConnectionOptionValue m_Value;
|
||||||
static InternetConnectionOption()
|
static InternetConnectionOption()
|
||||||
{
|
{
|
||||||
InternetConnectionOption.Size = Marshal.SizeOf(typeof(InternetConnectionOption));
|
Size = Marshal.SizeOf(typeof(InternetConnectionOption));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Nested Types
|
// Nested Types
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user