mirror of
https://github.com/netchx/netch.git
synced 2026-05-11 23:45:06 +08:00
Compare commits
32 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3db75738dc | ||
|
|
61666a180d | ||
|
|
b4199abc4a | ||
|
|
5958e353c2 | ||
|
|
f5c6632a92 | ||
|
|
1d38ea1746 | ||
|
|
3a048c76e1 | ||
|
|
0b6b66461d | ||
|
|
bc7681bd0b | ||
|
|
ee347b62bc | ||
|
|
1a5572ae2d | ||
|
|
6b4368153c | ||
|
|
4ec5cf2e23 | ||
|
|
244b1fba29 | ||
|
|
079d390933 | ||
|
|
d2af068325 | ||
|
|
6445bf633e | ||
|
|
282957f8bd | ||
|
|
5bb320a08c | ||
|
|
4178d363a9 | ||
|
|
20f232b086 | ||
|
|
bb365279d6 | ||
|
|
e5126e728e | ||
|
|
5c5318cd25 | ||
|
|
3cef06a786 | ||
|
|
15e5e4f735 | ||
|
|
6697d4454d | ||
|
|
9a047014cf | ||
|
|
af7b618551 | ||
|
|
e01436c434 | ||
|
|
b312534d06 | ||
|
|
54ab6618bd |
@@ -26,7 +26,7 @@ namespace Netch.Controllers
|
|||||||
|
|
||||||
public const string Name = @"Netch";
|
public const string Name = @"Netch";
|
||||||
public const string Copyright = @"Copyright © 2019 - 2020";
|
public const string Copyright = @"Copyright © 2019 - 2020";
|
||||||
public const string Version = @"1.3.7";
|
public const string Version = @"1.3.8";
|
||||||
|
|
||||||
public async void Check(bool notifyNoFound, bool isPreRelease)
|
public async void Check(bool notifyNoFound, bool isPreRelease)
|
||||||
{
|
{
|
||||||
|
|||||||
958
Netch/Forms/MainForm.Designer.cs
generated
958
Netch/Forms/MainForm.Designer.cs
generated
@@ -30,501 +30,518 @@ namespace Netch.Forms
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
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.MenuStrip = new System.Windows.Forms.MenuStrip();
|
this.MenuStrip = new System.Windows.Forms.MenuStrip();
|
||||||
this.ServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.ServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.ImportServersFromClipboardToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.ImportServersFromClipboardToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.AddSocks5ServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.AddSocks5ServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.AddShadowsocksServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.AddShadowsocksServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.AddShadowsocksRServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.AddShadowsocksRServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.AddVMessServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.AddVMessServerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.ModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.ModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.CreateProcessModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.CreateProcessModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.ManageProcessModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.ManageProcessModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.SubscribeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.SubscribeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.ManageSubscribeLinksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.ManageSubscribeLinksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.UpdateServersFromSubscribeLinksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.UpdateServersFromSubscribeLinksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.OptionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.OptionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.ReloadModesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.ReloadModesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.RestartServiceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.RestartServiceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.UninstallServiceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.UninstallServiceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.CleanDNSCacheToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.CleanDNSCacheToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.AboutToolStripButton = new System.Windows.Forms.ToolStripButton();
|
this.AboutToolStripButton = new System.Windows.Forms.ToolStripButton();
|
||||||
this.VersionLabel = new System.Windows.Forms.ToolStripLabel();
|
this.VersionLabel = new System.Windows.Forms.ToolStripLabel();
|
||||||
this.ConfigurationGroupBox = new System.Windows.Forms.GroupBox();
|
this.ConfigurationGroupBox = new System.Windows.Forms.GroupBox();
|
||||||
this.ProfileNameText = new System.Windows.Forms.TextBox();
|
this.ProfileNameText = new System.Windows.Forms.TextBox();
|
||||||
this.ProfileLabel = new System.Windows.Forms.Label();
|
this.ProfileLabel = new System.Windows.Forms.Label();
|
||||||
this.SpeedPictureBox = new System.Windows.Forms.PictureBox();
|
this.ModeLabel = new System.Windows.Forms.Label();
|
||||||
this.DeletePictureBox = new System.Windows.Forms.PictureBox();
|
this.ModeComboBox = new System.Windows.Forms.SearchComboBox();
|
||||||
this.EditPictureBox = new System.Windows.Forms.PictureBox();
|
this.ServerComboBox = new System.Windows.Forms.ComboBox();
|
||||||
this.ModeLabel = new System.Windows.Forms.Label();
|
this.ServerLabel = new System.Windows.Forms.Label();
|
||||||
this.ModeComboBox = new System.Windows.Forms.SearchComboBox();
|
this.StatusStrip = new System.Windows.Forms.StatusStrip();
|
||||||
this.ServerComboBox = new System.Windows.Forms.ComboBox();
|
this.StatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
this.ServerLabel = new System.Windows.Forms.Label();
|
this.UsedBandwidthLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
this.StatusStrip = new System.Windows.Forms.StatusStrip();
|
this.DownloadSpeedLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
this.StatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
this.UploadSpeedLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
this.UsedBandwidthLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
this.ControlButton = new System.Windows.Forms.Button();
|
||||||
this.DownloadSpeedLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
this.NotifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
|
||||||
this.UploadSpeedLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
this.NotifyMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
this.ControlButton = new System.Windows.Forms.Button();
|
this.ShowMainFormToolStripButton = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.NotifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
|
this.ExitToolStripButton = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.NotifyMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
this.SettingsButton = new System.Windows.Forms.Button();
|
||||||
this.ShowMainFormToolStripButton = new System.Windows.Forms.ToolStripMenuItem();
|
this.ProfileGroupBox = new System.Windows.Forms.GroupBox();
|
||||||
this.ExitToolStripButton = new System.Windows.Forms.ToolStripMenuItem();
|
this.ProfileTable = new System.Windows.Forms.TableLayoutPanel();
|
||||||
this.SettingsButton = new System.Windows.Forms.Button();
|
this.EditModePictureBox = new System.Windows.Forms.PictureBox();
|
||||||
this.ProfileGroupBox = new System.Windows.Forms.GroupBox();
|
this.SpeedPictureBox = new System.Windows.Forms.PictureBox();
|
||||||
this.ProfileTable = new System.Windows.Forms.TableLayoutPanel();
|
this.DeletePictureBox = new System.Windows.Forms.PictureBox();
|
||||||
this.MenuStrip.SuspendLayout();
|
this.EditPictureBox = new System.Windows.Forms.PictureBox();
|
||||||
this.ConfigurationGroupBox.SuspendLayout();
|
this.MenuStrip.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.SpeedPictureBox)).BeginInit();
|
this.ConfigurationGroupBox.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.DeletePictureBox)).BeginInit();
|
this.StatusStrip.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.EditPictureBox)).BeginInit();
|
this.NotifyMenu.SuspendLayout();
|
||||||
this.StatusStrip.SuspendLayout();
|
this.ProfileGroupBox.SuspendLayout();
|
||||||
this.NotifyMenu.SuspendLayout();
|
((System.ComponentModel.ISupportInitialize)(this.EditModePictureBox)).BeginInit();
|
||||||
this.ProfileGroupBox.SuspendLayout();
|
((System.ComponentModel.ISupportInitialize)(this.SpeedPictureBox)).BeginInit();
|
||||||
this.SuspendLayout();
|
((System.ComponentModel.ISupportInitialize)(this.DeletePictureBox)).BeginInit();
|
||||||
//
|
((System.ComponentModel.ISupportInitialize)(this.EditPictureBox)).BeginInit();
|
||||||
// MenuStrip
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
this.MenuStrip.BackColor = System.Drawing.SystemColors.Control;
|
// MenuStrip
|
||||||
this.MenuStrip.ImageScalingSize = new System.Drawing.Size(20, 20);
|
//
|
||||||
this.MenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.MenuStrip.BackColor = System.Drawing.SystemColors.Control;
|
||||||
|
this.MenuStrip.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
|
this.MenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.ServerToolStripMenuItem,
|
this.ServerToolStripMenuItem,
|
||||||
this.ModeToolStripMenuItem,
|
this.ModeToolStripMenuItem,
|
||||||
this.SubscribeToolStripMenuItem,
|
this.SubscribeToolStripMenuItem,
|
||||||
this.OptionsToolStripMenuItem,
|
this.OptionsToolStripMenuItem,
|
||||||
this.AboutToolStripButton,
|
this.AboutToolStripButton,
|
||||||
this.VersionLabel});
|
this.VersionLabel});
|
||||||
this.MenuStrip.Location = new System.Drawing.Point(0, 0);
|
this.MenuStrip.Location = new System.Drawing.Point(0, 0);
|
||||||
this.MenuStrip.Name = "MenuStrip";
|
this.MenuStrip.Name = "MenuStrip";
|
||||||
this.MenuStrip.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
|
this.MenuStrip.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
|
||||||
this.MenuStrip.Size = new System.Drawing.Size(608, 26);
|
this.MenuStrip.Size = new System.Drawing.Size(608, 26);
|
||||||
this.MenuStrip.TabIndex = 0;
|
this.MenuStrip.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// ServerToolStripMenuItem
|
// ServerToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.ServerToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.ServerToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.ImportServersFromClipboardToolStripMenuItem,
|
this.ImportServersFromClipboardToolStripMenuItem,
|
||||||
this.AddSocks5ServerToolStripMenuItem,
|
this.AddSocks5ServerToolStripMenuItem,
|
||||||
this.AddShadowsocksServerToolStripMenuItem,
|
this.AddShadowsocksServerToolStripMenuItem,
|
||||||
this.AddShadowsocksRServerToolStripMenuItem,
|
this.AddShadowsocksRServerToolStripMenuItem,
|
||||||
this.AddVMessServerToolStripMenuItem});
|
this.AddVMessServerToolStripMenuItem});
|
||||||
this.ServerToolStripMenuItem.Margin = new System.Windows.Forms.Padding(3, 0, 0, 1);
|
this.ServerToolStripMenuItem.Margin = new System.Windows.Forms.Padding(3, 0, 0, 1);
|
||||||
this.ServerToolStripMenuItem.Name = "ServerToolStripMenuItem";
|
this.ServerToolStripMenuItem.Name = "ServerToolStripMenuItem";
|
||||||
this.ServerToolStripMenuItem.Size = new System.Drawing.Size(57, 21);
|
this.ServerToolStripMenuItem.Size = new System.Drawing.Size(57, 21);
|
||||||
this.ServerToolStripMenuItem.Text = "Server";
|
this.ServerToolStripMenuItem.Text = "Server";
|
||||||
//
|
//
|
||||||
// ImportServersFromClipboardToolStripMenuItem
|
// ImportServersFromClipboardToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.ImportServersFromClipboardToolStripMenuItem.Name = "ImportServersFromClipboardToolStripMenuItem";
|
this.ImportServersFromClipboardToolStripMenuItem.Name = "ImportServersFromClipboardToolStripMenuItem";
|
||||||
this.ImportServersFromClipboardToolStripMenuItem.Size = new System.Drawing.Size(259, 22);
|
this.ImportServersFromClipboardToolStripMenuItem.Size = new System.Drawing.Size(259, 22);
|
||||||
this.ImportServersFromClipboardToolStripMenuItem.Text = "Import Servers From Clipboard";
|
this.ImportServersFromClipboardToolStripMenuItem.Text = "Import Servers From Clipboard";
|
||||||
this.ImportServersFromClipboardToolStripMenuItem.Click += new System.EventHandler(this.ImportServersFromClipboardToolStripMenuItem_Click);
|
this.ImportServersFromClipboardToolStripMenuItem.Click += new System.EventHandler(this.ImportServersFromClipboardToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// AddSocks5ServerToolStripMenuItem
|
// AddSocks5ServerToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.AddSocks5ServerToolStripMenuItem.Name = "AddSocks5ServerToolStripMenuItem";
|
this.AddSocks5ServerToolStripMenuItem.Name = "AddSocks5ServerToolStripMenuItem";
|
||||||
this.AddSocks5ServerToolStripMenuItem.Size = new System.Drawing.Size(259, 22);
|
this.AddSocks5ServerToolStripMenuItem.Size = new System.Drawing.Size(259, 22);
|
||||||
this.AddSocks5ServerToolStripMenuItem.Text = "Add [Socks5] Server";
|
this.AddSocks5ServerToolStripMenuItem.Text = "Add [Socks5] Server";
|
||||||
this.AddSocks5ServerToolStripMenuItem.Click += new System.EventHandler(this.AddSocks5ServerToolStripMenuItem_Click);
|
this.AddSocks5ServerToolStripMenuItem.Click += new System.EventHandler(this.AddSocks5ServerToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// AddShadowsocksServerToolStripMenuItem
|
// AddShadowsocksServerToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.AddShadowsocksServerToolStripMenuItem.Name = "AddShadowsocksServerToolStripMenuItem";
|
this.AddShadowsocksServerToolStripMenuItem.Name = "AddShadowsocksServerToolStripMenuItem";
|
||||||
this.AddShadowsocksServerToolStripMenuItem.Size = new System.Drawing.Size(259, 22);
|
this.AddShadowsocksServerToolStripMenuItem.Size = new System.Drawing.Size(259, 22);
|
||||||
this.AddShadowsocksServerToolStripMenuItem.Text = "Add [Shadowsocks] Server";
|
this.AddShadowsocksServerToolStripMenuItem.Text = "Add [Shadowsocks] Server";
|
||||||
this.AddShadowsocksServerToolStripMenuItem.Click += new System.EventHandler(this.AddShadowsocksServerToolStripMenuItem_Click);
|
this.AddShadowsocksServerToolStripMenuItem.Click += new System.EventHandler(this.AddShadowsocksServerToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// AddShadowsocksRServerToolStripMenuItem
|
// AddShadowsocksRServerToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.AddShadowsocksRServerToolStripMenuItem.Name = "AddShadowsocksRServerToolStripMenuItem";
|
this.AddShadowsocksRServerToolStripMenuItem.Name = "AddShadowsocksRServerToolStripMenuItem";
|
||||||
this.AddShadowsocksRServerToolStripMenuItem.Size = new System.Drawing.Size(259, 22);
|
this.AddShadowsocksRServerToolStripMenuItem.Size = new System.Drawing.Size(259, 22);
|
||||||
this.AddShadowsocksRServerToolStripMenuItem.Text = "Add [ShadowsocksR] Server";
|
this.AddShadowsocksRServerToolStripMenuItem.Text = "Add [ShadowsocksR] Server";
|
||||||
this.AddShadowsocksRServerToolStripMenuItem.Click += new System.EventHandler(this.AddShadowsocksRServerToolStripMenuItem_Click);
|
this.AddShadowsocksRServerToolStripMenuItem.Click += new System.EventHandler(this.AddShadowsocksRServerToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// AddVMessServerToolStripMenuItem
|
// AddVMessServerToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.AddVMessServerToolStripMenuItem.Name = "AddVMessServerToolStripMenuItem";
|
this.AddVMessServerToolStripMenuItem.Name = "AddVMessServerToolStripMenuItem";
|
||||||
this.AddVMessServerToolStripMenuItem.Size = new System.Drawing.Size(259, 22);
|
this.AddVMessServerToolStripMenuItem.Size = new System.Drawing.Size(259, 22);
|
||||||
this.AddVMessServerToolStripMenuItem.Text = "Add [VMess] Server";
|
this.AddVMessServerToolStripMenuItem.Text = "Add [VMess] Server";
|
||||||
this.AddVMessServerToolStripMenuItem.Click += new System.EventHandler(this.AddVMessServerToolStripMenuItem_Click);
|
this.AddVMessServerToolStripMenuItem.Click += new System.EventHandler(this.AddVMessServerToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// ModeToolStripMenuItem
|
// ModeToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.ModeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.ModeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.CreateProcessModeToolStripMenuItem,
|
this.CreateProcessModeToolStripMenuItem,
|
||||||
this.ManageProcessModeToolStripMenuItem});
|
this.ManageProcessModeToolStripMenuItem});
|
||||||
this.ModeToolStripMenuItem.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1);
|
this.ModeToolStripMenuItem.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1);
|
||||||
this.ModeToolStripMenuItem.Name = "ModeToolStripMenuItem";
|
this.ModeToolStripMenuItem.Name = "ModeToolStripMenuItem";
|
||||||
this.ModeToolStripMenuItem.Size = new System.Drawing.Size(55, 21);
|
this.ModeToolStripMenuItem.Size = new System.Drawing.Size(55, 21);
|
||||||
this.ModeToolStripMenuItem.Text = "Mode";
|
this.ModeToolStripMenuItem.Text = "Mode";
|
||||||
//
|
//
|
||||||
// CreateProcessModeToolStripMenuItem
|
// CreateProcessModeToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.CreateProcessModeToolStripMenuItem.Name = "CreateProcessModeToolStripMenuItem";
|
this.CreateProcessModeToolStripMenuItem.Name = "CreateProcessModeToolStripMenuItem";
|
||||||
this.CreateProcessModeToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
|
this.CreateProcessModeToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
|
||||||
this.CreateProcessModeToolStripMenuItem.Text = "Create Process Mode";
|
this.CreateProcessModeToolStripMenuItem.Text = "Create Process Mode";
|
||||||
this.CreateProcessModeToolStripMenuItem.Click += new System.EventHandler(this.CreateProcessModeToolStripButton_Click);
|
this.CreateProcessModeToolStripMenuItem.Click += new System.EventHandler(this.CreateProcessModeToolStripButton_Click);
|
||||||
//
|
//
|
||||||
// ManageProcessModeToolStripMenuItem
|
// ManageProcessModeToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.ManageProcessModeToolStripMenuItem.Name = "ManageProcessModeToolStripMenuItem";
|
this.ManageProcessModeToolStripMenuItem.Name = "ManageProcessModeToolStripMenuItem";
|
||||||
this.ManageProcessModeToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
|
this.ManageProcessModeToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
|
||||||
this.ManageProcessModeToolStripMenuItem.Text = "Manage Process Mode";
|
this.ManageProcessModeToolStripMenuItem.Text = "Manage Process Mode";
|
||||||
this.ManageProcessModeToolStripMenuItem.Click += new System.EventHandler(this.ManageProcessModeToolStripMenuItem_Click);
|
this.ManageProcessModeToolStripMenuItem.Click += new System.EventHandler(this.ManageProcessModeToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// SubscribeToolStripMenuItem
|
// SubscribeToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.SubscribeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.SubscribeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.ManageSubscribeLinksToolStripMenuItem,
|
this.ManageSubscribeLinksToolStripMenuItem,
|
||||||
this.UpdateServersFromSubscribeLinksToolStripMenuItem});
|
this.UpdateServersFromSubscribeLinksToolStripMenuItem});
|
||||||
this.SubscribeToolStripMenuItem.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1);
|
this.SubscribeToolStripMenuItem.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1);
|
||||||
this.SubscribeToolStripMenuItem.Name = "SubscribeToolStripMenuItem";
|
this.SubscribeToolStripMenuItem.Name = "SubscribeToolStripMenuItem";
|
||||||
this.SubscribeToolStripMenuItem.Size = new System.Drawing.Size(77, 21);
|
this.SubscribeToolStripMenuItem.Size = new System.Drawing.Size(77, 21);
|
||||||
this.SubscribeToolStripMenuItem.Text = "Subscribe";
|
this.SubscribeToolStripMenuItem.Text = "Subscribe";
|
||||||
//
|
//
|
||||||
// ManageSubscribeLinksToolStripMenuItem
|
// ManageSubscribeLinksToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.ManageSubscribeLinksToolStripMenuItem.Name = "ManageSubscribeLinksToolStripMenuItem";
|
this.ManageSubscribeLinksToolStripMenuItem.Name = "ManageSubscribeLinksToolStripMenuItem";
|
||||||
this.ManageSubscribeLinksToolStripMenuItem.Size = new System.Drawing.Size(294, 22);
|
this.ManageSubscribeLinksToolStripMenuItem.Size = new System.Drawing.Size(294, 22);
|
||||||
this.ManageSubscribeLinksToolStripMenuItem.Text = "Manage Subscribe Links";
|
this.ManageSubscribeLinksToolStripMenuItem.Text = "Manage Subscribe Links";
|
||||||
this.ManageSubscribeLinksToolStripMenuItem.Click += new System.EventHandler(this.ManageSubscribeLinksToolStripMenuItem_Click);
|
this.ManageSubscribeLinksToolStripMenuItem.Click += new System.EventHandler(this.ManageSubscribeLinksToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// UpdateServersFromSubscribeLinksToolStripMenuItem
|
// UpdateServersFromSubscribeLinksToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.UpdateServersFromSubscribeLinksToolStripMenuItem.Name = "UpdateServersFromSubscribeLinksToolStripMenuItem";
|
this.UpdateServersFromSubscribeLinksToolStripMenuItem.Name = "UpdateServersFromSubscribeLinksToolStripMenuItem";
|
||||||
this.UpdateServersFromSubscribeLinksToolStripMenuItem.Size = new System.Drawing.Size(294, 22);
|
this.UpdateServersFromSubscribeLinksToolStripMenuItem.Size = new System.Drawing.Size(294, 22);
|
||||||
this.UpdateServersFromSubscribeLinksToolStripMenuItem.Text = "Update Servers From Subscribe Links";
|
this.UpdateServersFromSubscribeLinksToolStripMenuItem.Text = "Update Servers From Subscribe Links";
|
||||||
this.UpdateServersFromSubscribeLinksToolStripMenuItem.Click += new System.EventHandler(this.UpdateServersFromSubscribeLinksToolStripMenuItem_Click);
|
this.UpdateServersFromSubscribeLinksToolStripMenuItem.Click += new System.EventHandler(this.UpdateServersFromSubscribeLinksToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// OptionsToolStripMenuItem
|
// OptionsToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.OptionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.OptionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.ReloadModesToolStripMenuItem,
|
this.ReloadModesToolStripMenuItem,
|
||||||
this.RestartServiceToolStripMenuItem,
|
this.RestartServiceToolStripMenuItem,
|
||||||
this.UninstallServiceToolStripMenuItem,
|
this.UninstallServiceToolStripMenuItem,
|
||||||
this.CleanDNSCacheToolStripMenuItem});
|
this.CleanDNSCacheToolStripMenuItem});
|
||||||
this.OptionsToolStripMenuItem.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1);
|
this.OptionsToolStripMenuItem.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1);
|
||||||
this.OptionsToolStripMenuItem.Name = "OptionsToolStripMenuItem";
|
this.OptionsToolStripMenuItem.Name = "OptionsToolStripMenuItem";
|
||||||
this.OptionsToolStripMenuItem.Size = new System.Drawing.Size(66, 21);
|
this.OptionsToolStripMenuItem.Size = new System.Drawing.Size(66, 21);
|
||||||
this.OptionsToolStripMenuItem.Text = "Options";
|
this.OptionsToolStripMenuItem.Text = "Options";
|
||||||
//
|
//
|
||||||
// ReloadModesToolStripMenuItem
|
// ReloadModesToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.ReloadModesToolStripMenuItem.Name = "ReloadModesToolStripMenuItem";
|
this.ReloadModesToolStripMenuItem.Name = "ReloadModesToolStripMenuItem";
|
||||||
this.ReloadModesToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
|
this.ReloadModesToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
|
||||||
this.ReloadModesToolStripMenuItem.Text = "Reload Modes";
|
this.ReloadModesToolStripMenuItem.Text = "Reload Modes";
|
||||||
this.ReloadModesToolStripMenuItem.Click += new System.EventHandler(this.ReloadModesToolStripMenuItem_Click);
|
this.ReloadModesToolStripMenuItem.Click += new System.EventHandler(this.ReloadModesToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// RestartServiceToolStripMenuItem
|
// RestartServiceToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.RestartServiceToolStripMenuItem.Name = "RestartServiceToolStripMenuItem";
|
this.RestartServiceToolStripMenuItem.Name = "RestartServiceToolStripMenuItem";
|
||||||
this.RestartServiceToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
|
this.RestartServiceToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
|
||||||
this.RestartServiceToolStripMenuItem.Text = "Restart Service";
|
this.RestartServiceToolStripMenuItem.Text = "Restart Service";
|
||||||
this.RestartServiceToolStripMenuItem.Click += new System.EventHandler(this.RestartServiceToolStripMenuItem_Click);
|
this.RestartServiceToolStripMenuItem.Click += new System.EventHandler(this.RestartServiceToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// UninstallServiceToolStripMenuItem
|
// UninstallServiceToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.UninstallServiceToolStripMenuItem.Name = "UninstallServiceToolStripMenuItem";
|
this.UninstallServiceToolStripMenuItem.Name = "UninstallServiceToolStripMenuItem";
|
||||||
this.UninstallServiceToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
|
this.UninstallServiceToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
|
||||||
this.UninstallServiceToolStripMenuItem.Text = "Uninstall Service";
|
this.UninstallServiceToolStripMenuItem.Text = "Uninstall Service";
|
||||||
this.UninstallServiceToolStripMenuItem.Click += new System.EventHandler(this.UninstallServiceToolStripMenuItem_Click);
|
this.UninstallServiceToolStripMenuItem.Click += new System.EventHandler(this.UninstallServiceToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// CleanDNSCacheToolStripMenuItem
|
// CleanDNSCacheToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.CleanDNSCacheToolStripMenuItem.Name = "CleanDNSCacheToolStripMenuItem";
|
this.CleanDNSCacheToolStripMenuItem.Name = "CleanDNSCacheToolStripMenuItem";
|
||||||
this.CleanDNSCacheToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
|
this.CleanDNSCacheToolStripMenuItem.Size = new System.Drawing.Size(177, 22);
|
||||||
this.CleanDNSCacheToolStripMenuItem.Text = "Clean DNS Cache";
|
this.CleanDNSCacheToolStripMenuItem.Text = "Clean DNS Cache";
|
||||||
this.CleanDNSCacheToolStripMenuItem.Click += new System.EventHandler(this.CleanDNSCacheToolStripMenuItem_Click);
|
this.CleanDNSCacheToolStripMenuItem.Click += new System.EventHandler(this.CleanDNSCacheToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// AboutToolStripButton
|
// AboutToolStripButton
|
||||||
//
|
//
|
||||||
this.AboutToolStripButton.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
|
this.AboutToolStripButton.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
|
||||||
this.AboutToolStripButton.AutoToolTip = false;
|
this.AboutToolStripButton.AutoToolTip = false;
|
||||||
this.AboutToolStripButton.Margin = new System.Windows.Forms.Padding(0, 0, 3, 1);
|
this.AboutToolStripButton.Margin = new System.Windows.Forms.Padding(0, 0, 3, 1);
|
||||||
this.AboutToolStripButton.Name = "AboutToolStripButton";
|
this.AboutToolStripButton.Name = "AboutToolStripButton";
|
||||||
this.AboutToolStripButton.Size = new System.Drawing.Size(47, 21);
|
this.AboutToolStripButton.Size = new System.Drawing.Size(47, 21);
|
||||||
this.AboutToolStripButton.Text = "About";
|
this.AboutToolStripButton.Text = "About";
|
||||||
this.AboutToolStripButton.Click += new System.EventHandler(this.AboutToolStripButton_Click);
|
this.AboutToolStripButton.Click += new System.EventHandler(this.AboutToolStripButton_Click);
|
||||||
//
|
//
|
||||||
// VersionLabel
|
// VersionLabel
|
||||||
//
|
//
|
||||||
this.VersionLabel.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
|
this.VersionLabel.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
|
||||||
this.VersionLabel.BackColor = System.Drawing.Color.Transparent;
|
this.VersionLabel.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.VersionLabel.ForeColor = System.Drawing.Color.Red;
|
this.VersionLabel.ForeColor = System.Drawing.Color.Red;
|
||||||
this.VersionLabel.IsLink = true;
|
this.VersionLabel.IsLink = true;
|
||||||
this.VersionLabel.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline;
|
this.VersionLabel.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline;
|
||||||
this.VersionLabel.Name = "VersionLabel";
|
this.VersionLabel.Name = "VersionLabel";
|
||||||
this.VersionLabel.Size = new System.Drawing.Size(32, 19);
|
this.VersionLabel.Size = new System.Drawing.Size(32, 19);
|
||||||
this.VersionLabel.Text = "x.x.x";
|
this.VersionLabel.Text = "x.x.x";
|
||||||
this.VersionLabel.Click += new System.EventHandler(this.VersionLabel_Click);
|
this.VersionLabel.Click += new System.EventHandler(this.VersionLabel_Click);
|
||||||
//
|
//
|
||||||
// ConfigurationGroupBox
|
// ConfigurationGroupBox
|
||||||
//
|
//
|
||||||
this.ConfigurationGroupBox.Controls.Add(this.ProfileNameText);
|
this.ConfigurationGroupBox.Controls.Add(this.EditModePictureBox);
|
||||||
this.ConfigurationGroupBox.Controls.Add(this.ProfileLabel);
|
this.ConfigurationGroupBox.Controls.Add(this.ProfileNameText);
|
||||||
this.ConfigurationGroupBox.Controls.Add(this.SpeedPictureBox);
|
this.ConfigurationGroupBox.Controls.Add(this.ProfileLabel);
|
||||||
this.ConfigurationGroupBox.Controls.Add(this.DeletePictureBox);
|
this.ConfigurationGroupBox.Controls.Add(this.SpeedPictureBox);
|
||||||
this.ConfigurationGroupBox.Controls.Add(this.EditPictureBox);
|
this.ConfigurationGroupBox.Controls.Add(this.DeletePictureBox);
|
||||||
this.ConfigurationGroupBox.Controls.Add(this.ModeLabel);
|
this.ConfigurationGroupBox.Controls.Add(this.EditPictureBox);
|
||||||
this.ConfigurationGroupBox.Controls.Add(this.ModeComboBox);
|
this.ConfigurationGroupBox.Controls.Add(this.ModeLabel);
|
||||||
this.ConfigurationGroupBox.Controls.Add(this.ServerComboBox);
|
this.ConfigurationGroupBox.Controls.Add(this.ModeComboBox);
|
||||||
this.ConfigurationGroupBox.Controls.Add(this.ServerLabel);
|
this.ConfigurationGroupBox.Controls.Add(this.ServerComboBox);
|
||||||
this.ConfigurationGroupBox.Location = new System.Drawing.Point(12, 28);
|
this.ConfigurationGroupBox.Controls.Add(this.ServerLabel);
|
||||||
this.ConfigurationGroupBox.Name = "ConfigurationGroupBox";
|
this.ConfigurationGroupBox.Location = new System.Drawing.Point(12, 28);
|
||||||
this.ConfigurationGroupBox.Size = new System.Drawing.Size(584, 113);
|
this.ConfigurationGroupBox.Name = "ConfigurationGroupBox";
|
||||||
this.ConfigurationGroupBox.TabIndex = 1;
|
this.ConfigurationGroupBox.Size = new System.Drawing.Size(584, 113);
|
||||||
this.ConfigurationGroupBox.TabStop = false;
|
this.ConfigurationGroupBox.TabIndex = 1;
|
||||||
this.ConfigurationGroupBox.Text = "Configuration";
|
this.ConfigurationGroupBox.TabStop = false;
|
||||||
//
|
this.ConfigurationGroupBox.Text = "Configuration";
|
||||||
// ProfileNameText
|
//
|
||||||
//
|
// ProfileNameText
|
||||||
this.ProfileNameText.Location = new System.Drawing.Point(57, 83);
|
//
|
||||||
this.ProfileNameText.Name = "ProfileNameText";
|
this.ProfileNameText.Location = new System.Drawing.Point(57, 83);
|
||||||
this.ProfileNameText.Size = new System.Drawing.Size(455, 23);
|
this.ProfileNameText.Name = "ProfileNameText";
|
||||||
this.ProfileNameText.TabIndex = 11;
|
this.ProfileNameText.Size = new System.Drawing.Size(455, 23);
|
||||||
//
|
this.ProfileNameText.TabIndex = 11;
|
||||||
// ProfileLabel
|
//
|
||||||
//
|
// ProfileLabel
|
||||||
this.ProfileLabel.AutoSize = true;
|
//
|
||||||
this.ProfileLabel.Location = new System.Drawing.Point(6, 86);
|
this.ProfileLabel.AutoSize = true;
|
||||||
this.ProfileLabel.Name = "ProfileLabel";
|
this.ProfileLabel.Location = new System.Drawing.Point(6, 86);
|
||||||
this.ProfileLabel.Size = new System.Drawing.Size(45, 17);
|
this.ProfileLabel.Name = "ProfileLabel";
|
||||||
this.ProfileLabel.TabIndex = 10;
|
this.ProfileLabel.Size = new System.Drawing.Size(45, 17);
|
||||||
this.ProfileLabel.Text = "Profile";
|
this.ProfileLabel.TabIndex = 10;
|
||||||
//
|
this.ProfileLabel.Text = "Profile";
|
||||||
// SpeedPictureBox
|
//
|
||||||
//
|
// ModeLabel
|
||||||
this.SpeedPictureBox.Cursor = System.Windows.Forms.Cursors.Hand;
|
//
|
||||||
this.SpeedPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("SpeedPictureBox.Image")));
|
this.ModeLabel.AutoSize = true;
|
||||||
this.SpeedPictureBox.Location = new System.Drawing.Point(562, 26);
|
this.ModeLabel.Location = new System.Drawing.Point(6, 56);
|
||||||
this.SpeedPictureBox.Name = "SpeedPictureBox";
|
this.ModeLabel.Name = "ModeLabel";
|
||||||
this.SpeedPictureBox.Size = new System.Drawing.Size(16, 16);
|
this.ModeLabel.Size = new System.Drawing.Size(43, 17);
|
||||||
this.SpeedPictureBox.TabIndex = 9;
|
this.ModeLabel.TabIndex = 3;
|
||||||
this.SpeedPictureBox.TabStop = false;
|
this.ModeLabel.Text = "Mode";
|
||||||
this.SpeedPictureBox.Click += new System.EventHandler(this.SpeedPictureBox_Click);
|
//
|
||||||
//
|
// ModeComboBox
|
||||||
// DeletePictureBox
|
//
|
||||||
//
|
this.ModeComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
|
||||||
this.DeletePictureBox.Cursor = System.Windows.Forms.Cursors.Hand;
|
this.ModeComboBox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
|
||||||
this.DeletePictureBox.Image = ((System.Drawing.Image)(resources.GetObject("DeletePictureBox.Image")));
|
this.ModeComboBox.FormattingEnabled = true;
|
||||||
this.DeletePictureBox.Location = new System.Drawing.Point(540, 26);
|
this.ModeComboBox.IntegralHeight = false;
|
||||||
this.DeletePictureBox.Name = "DeletePictureBox";
|
this.ModeComboBox.Location = new System.Drawing.Point(57, 53);
|
||||||
this.DeletePictureBox.Size = new System.Drawing.Size(16, 16);
|
this.ModeComboBox.Name = "ModeComboBox";
|
||||||
this.DeletePictureBox.TabIndex = 8;
|
this.ModeComboBox.Size = new System.Drawing.Size(455, 24);
|
||||||
this.DeletePictureBox.TabStop = false;
|
this.ModeComboBox.TabIndex = 2;
|
||||||
this.DeletePictureBox.Click += new System.EventHandler(this.DeletePictureBox_Click);
|
this.ModeComboBox.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.ComboBox_DrawItem);
|
||||||
//
|
//
|
||||||
// EditPictureBox
|
// ServerComboBox
|
||||||
//
|
//
|
||||||
this.EditPictureBox.Cursor = System.Windows.Forms.Cursors.Hand;
|
this.ServerComboBox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
|
||||||
this.EditPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("EditPictureBox.Image")));
|
this.ServerComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.EditPictureBox.Location = new System.Drawing.Point(518, 26);
|
this.ServerComboBox.FormattingEnabled = true;
|
||||||
this.EditPictureBox.Name = "EditPictureBox";
|
this.ServerComboBox.IntegralHeight = false;
|
||||||
this.EditPictureBox.Size = new System.Drawing.Size(16, 16);
|
this.ServerComboBox.Location = new System.Drawing.Point(57, 22);
|
||||||
this.EditPictureBox.TabIndex = 7;
|
this.ServerComboBox.MaxDropDownItems = 16;
|
||||||
this.EditPictureBox.TabStop = false;
|
this.ServerComboBox.Name = "ServerComboBox";
|
||||||
this.EditPictureBox.Click += new System.EventHandler(this.EditPictureBox_Click);
|
this.ServerComboBox.Size = new System.Drawing.Size(455, 24);
|
||||||
//
|
this.ServerComboBox.TabIndex = 1;
|
||||||
// ModeLabel
|
this.ServerComboBox.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.ComboBox_DrawItem);
|
||||||
//
|
//
|
||||||
this.ModeLabel.AutoSize = true;
|
// ServerLabel
|
||||||
this.ModeLabel.Location = new System.Drawing.Point(6, 56);
|
//
|
||||||
this.ModeLabel.Name = "ModeLabel";
|
this.ServerLabel.AutoSize = true;
|
||||||
this.ModeLabel.Size = new System.Drawing.Size(43, 17);
|
this.ServerLabel.Location = new System.Drawing.Point(6, 26);
|
||||||
this.ModeLabel.TabIndex = 3;
|
this.ServerLabel.Name = "ServerLabel";
|
||||||
this.ModeLabel.Text = "Mode";
|
this.ServerLabel.Size = new System.Drawing.Size(45, 17);
|
||||||
//
|
this.ServerLabel.TabIndex = 0;
|
||||||
// ModeComboBox
|
this.ServerLabel.Text = "Server";
|
||||||
//
|
//
|
||||||
this.ModeComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
|
// StatusStrip
|
||||||
this.ModeComboBox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
|
//
|
||||||
this.ModeComboBox.FormattingEnabled = true;
|
this.StatusStrip.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
this.ModeComboBox.IntegralHeight = false;
|
this.StatusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.ModeComboBox.Location = new System.Drawing.Point(57, 53);
|
|
||||||
this.ModeComboBox.Name = "ModeComboBox";
|
|
||||||
this.ModeComboBox.Size = new System.Drawing.Size(455, 24);
|
|
||||||
this.ModeComboBox.TabIndex = 2;
|
|
||||||
this.ModeComboBox.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.ComboBox_DrawItem);
|
|
||||||
//
|
|
||||||
// ServerComboBox
|
|
||||||
//
|
|
||||||
this.ServerComboBox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
|
|
||||||
this.ServerComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
||||||
this.ServerComboBox.FormattingEnabled = true;
|
|
||||||
this.ServerComboBox.IntegralHeight = false;
|
|
||||||
this.ServerComboBox.Location = new System.Drawing.Point(57, 22);
|
|
||||||
this.ServerComboBox.MaxDropDownItems = 16;
|
|
||||||
this.ServerComboBox.Name = "ServerComboBox";
|
|
||||||
this.ServerComboBox.Size = new System.Drawing.Size(455, 24);
|
|
||||||
this.ServerComboBox.TabIndex = 1;
|
|
||||||
this.ServerComboBox.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.ComboBox_DrawItem);
|
|
||||||
//
|
|
||||||
// ServerLabel
|
|
||||||
//
|
|
||||||
this.ServerLabel.AutoSize = true;
|
|
||||||
this.ServerLabel.Location = new System.Drawing.Point(6, 26);
|
|
||||||
this.ServerLabel.Name = "ServerLabel";
|
|
||||||
this.ServerLabel.Size = new System.Drawing.Size(45, 17);
|
|
||||||
this.ServerLabel.TabIndex = 0;
|
|
||||||
this.ServerLabel.Text = "Server";
|
|
||||||
//
|
|
||||||
// StatusStrip
|
|
||||||
//
|
|
||||||
this.StatusStrip.ImageScalingSize = new System.Drawing.Size(20, 20);
|
|
||||||
this.StatusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
|
||||||
this.StatusLabel,
|
this.StatusLabel,
|
||||||
this.UsedBandwidthLabel,
|
this.UsedBandwidthLabel,
|
||||||
this.DownloadSpeedLabel,
|
this.DownloadSpeedLabel,
|
||||||
this.UploadSpeedLabel});
|
this.UploadSpeedLabel});
|
||||||
this.StatusStrip.Location = new System.Drawing.Point(0, 254);
|
this.StatusStrip.Location = new System.Drawing.Point(0, 254);
|
||||||
this.StatusStrip.Name = "StatusStrip";
|
this.StatusStrip.Name = "StatusStrip";
|
||||||
this.StatusStrip.Size = new System.Drawing.Size(608, 22);
|
this.StatusStrip.Size = new System.Drawing.Size(608, 22);
|
||||||
this.StatusStrip.SizingGrip = false;
|
this.StatusStrip.SizingGrip = false;
|
||||||
this.StatusStrip.TabIndex = 2;
|
this.StatusStrip.TabIndex = 2;
|
||||||
//
|
//
|
||||||
// StatusLabel
|
// StatusLabel
|
||||||
//
|
//
|
||||||
this.StatusLabel.BackColor = System.Drawing.Color.Transparent;
|
this.StatusLabel.BackColor = System.Drawing.Color.Transparent;
|
||||||
this.StatusLabel.Name = "StatusLabel";
|
this.StatusLabel.Name = "StatusLabel";
|
||||||
this.StatusLabel.Size = new System.Drawing.Size(177, 17);
|
this.StatusLabel.Size = new System.Drawing.Size(177, 17);
|
||||||
this.StatusLabel.Text = "Status: Waiting for command";
|
this.StatusLabel.Text = "Status: Waiting for command";
|
||||||
//
|
//
|
||||||
// UsedBandwidthLabel
|
// UsedBandwidthLabel
|
||||||
//
|
//
|
||||||
this.UsedBandwidthLabel.Name = "UsedBandwidthLabel";
|
this.UsedBandwidthLabel.Name = "UsedBandwidthLabel";
|
||||||
this.UsedBandwidthLabel.Size = new System.Drawing.Size(72, 17);
|
this.UsedBandwidthLabel.Size = new System.Drawing.Size(72, 17);
|
||||||
this.UsedBandwidthLabel.Text = "Used: 0 KB";
|
this.UsedBandwidthLabel.Text = "Used: 0 KB";
|
||||||
this.UsedBandwidthLabel.Visible = false;
|
this.UsedBandwidthLabel.Visible = false;
|
||||||
//
|
//
|
||||||
// DownloadSpeedLabel
|
// DownloadSpeedLabel
|
||||||
//
|
//
|
||||||
this.DownloadSpeedLabel.Name = "DownloadSpeedLabel";
|
this.DownloadSpeedLabel.Name = "DownloadSpeedLabel";
|
||||||
this.DownloadSpeedLabel.Size = new System.Drawing.Size(59, 17);
|
this.DownloadSpeedLabel.Size = new System.Drawing.Size(59, 17);
|
||||||
this.DownloadSpeedLabel.Text = "↓: 0 KB/s";
|
this.DownloadSpeedLabel.Text = "↓: 0 KB/s";
|
||||||
this.DownloadSpeedLabel.Visible = false;
|
this.DownloadSpeedLabel.Visible = false;
|
||||||
//
|
//
|
||||||
// UploadSpeedLabel
|
// UploadSpeedLabel
|
||||||
//
|
//
|
||||||
this.UploadSpeedLabel.Name = "UploadSpeedLabel";
|
this.UploadSpeedLabel.Name = "UploadSpeedLabel";
|
||||||
this.UploadSpeedLabel.Size = new System.Drawing.Size(59, 17);
|
this.UploadSpeedLabel.Size = new System.Drawing.Size(59, 17);
|
||||||
this.UploadSpeedLabel.Text = "↑: 0 KB/s";
|
this.UploadSpeedLabel.Text = "↑: 0 KB/s";
|
||||||
this.UploadSpeedLabel.Visible = false;
|
this.UploadSpeedLabel.Visible = false;
|
||||||
//
|
//
|
||||||
// ControlButton
|
// ControlButton
|
||||||
//
|
//
|
||||||
this.ControlButton.Location = new System.Drawing.Point(521, 219);
|
this.ControlButton.Location = new System.Drawing.Point(521, 219);
|
||||||
this.ControlButton.Name = "ControlButton";
|
this.ControlButton.Name = "ControlButton";
|
||||||
this.ControlButton.Size = new System.Drawing.Size(75, 27);
|
this.ControlButton.Size = new System.Drawing.Size(75, 27);
|
||||||
this.ControlButton.TabIndex = 3;
|
this.ControlButton.TabIndex = 3;
|
||||||
this.ControlButton.Text = "Start";
|
this.ControlButton.Text = "Start";
|
||||||
this.ControlButton.UseVisualStyleBackColor = true;
|
this.ControlButton.UseVisualStyleBackColor = true;
|
||||||
this.ControlButton.Click += new System.EventHandler(this.ControlButton_Click);
|
this.ControlButton.Click += new System.EventHandler(this.ControlButton_Click);
|
||||||
//
|
//
|
||||||
// NotifyIcon
|
// NotifyIcon
|
||||||
//
|
//
|
||||||
this.NotifyIcon.ContextMenuStrip = this.NotifyMenu;
|
this.NotifyIcon.ContextMenuStrip = this.NotifyMenu;
|
||||||
this.NotifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("NotifyIcon.Icon")));
|
this.NotifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("NotifyIcon.Icon")));
|
||||||
this.NotifyIcon.Text = "Netch";
|
this.NotifyIcon.Text = "Netch";
|
||||||
this.NotifyIcon.Visible = true;
|
this.NotifyIcon.Visible = true;
|
||||||
this.NotifyIcon.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.NotifyIcon_MouseDoubleClick);
|
this.NotifyIcon.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.NotifyIcon_MouseDoubleClick);
|
||||||
//
|
//
|
||||||
// NotifyMenu
|
// NotifyMenu
|
||||||
//
|
//
|
||||||
this.NotifyMenu.ImageScalingSize = new System.Drawing.Size(20, 20);
|
this.NotifyMenu.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
this.NotifyMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.NotifyMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.ShowMainFormToolStripButton,
|
this.ShowMainFormToolStripButton,
|
||||||
this.ExitToolStripButton});
|
this.ExitToolStripButton});
|
||||||
this.NotifyMenu.Name = "NotifyMenu";
|
this.NotifyMenu.Name = "NotifyMenu";
|
||||||
this.NotifyMenu.ShowItemToolTips = false;
|
this.NotifyMenu.ShowItemToolTips = false;
|
||||||
this.NotifyMenu.Size = new System.Drawing.Size(108, 48);
|
this.NotifyMenu.Size = new System.Drawing.Size(108, 48);
|
||||||
//
|
//
|
||||||
// ShowMainFormToolStripButton
|
// ShowMainFormToolStripButton
|
||||||
//
|
//
|
||||||
this.ShowMainFormToolStripButton.Name = "ShowMainFormToolStripButton";
|
this.ShowMainFormToolStripButton.Name = "ShowMainFormToolStripButton";
|
||||||
this.ShowMainFormToolStripButton.Size = new System.Drawing.Size(107, 22);
|
this.ShowMainFormToolStripButton.Size = new System.Drawing.Size(107, 22);
|
||||||
this.ShowMainFormToolStripButton.Text = "Show";
|
this.ShowMainFormToolStripButton.Text = "Show";
|
||||||
this.ShowMainFormToolStripButton.Click += new System.EventHandler(this.ShowMainFormToolStripButton_Click);
|
this.ShowMainFormToolStripButton.Click += new System.EventHandler(this.ShowMainFormToolStripButton_Click);
|
||||||
//
|
//
|
||||||
// ExitToolStripButton
|
// ExitToolStripButton
|
||||||
//
|
//
|
||||||
this.ExitToolStripButton.Name = "ExitToolStripButton";
|
this.ExitToolStripButton.Name = "ExitToolStripButton";
|
||||||
this.ExitToolStripButton.Size = new System.Drawing.Size(107, 22);
|
this.ExitToolStripButton.Size = new System.Drawing.Size(107, 22);
|
||||||
this.ExitToolStripButton.Text = "Exit";
|
this.ExitToolStripButton.Text = "Exit";
|
||||||
this.ExitToolStripButton.Click += new System.EventHandler(this.ExitToolStripButton_Click);
|
this.ExitToolStripButton.Click += new System.EventHandler(this.ExitToolStripButton_Click);
|
||||||
//
|
//
|
||||||
// SettingsButton
|
// SettingsButton
|
||||||
//
|
//
|
||||||
this.SettingsButton.Location = new System.Drawing.Point(12, 219);
|
this.SettingsButton.Location = new System.Drawing.Point(12, 219);
|
||||||
this.SettingsButton.Name = "SettingsButton";
|
this.SettingsButton.Name = "SettingsButton";
|
||||||
this.SettingsButton.Size = new System.Drawing.Size(72, 27);
|
this.SettingsButton.Size = new System.Drawing.Size(72, 27);
|
||||||
this.SettingsButton.TabIndex = 4;
|
this.SettingsButton.TabIndex = 4;
|
||||||
this.SettingsButton.Text = "Settings";
|
this.SettingsButton.Text = "Settings";
|
||||||
this.SettingsButton.UseVisualStyleBackColor = true;
|
this.SettingsButton.UseVisualStyleBackColor = true;
|
||||||
this.SettingsButton.Click += new System.EventHandler(this.SettingsButton_Click);
|
this.SettingsButton.Click += new System.EventHandler(this.SettingsButton_Click);
|
||||||
//
|
//
|
||||||
// ProfileGroupBox
|
// ProfileGroupBox
|
||||||
//
|
//
|
||||||
this.ProfileGroupBox.Controls.Add(this.ProfileTable);
|
this.ProfileGroupBox.Controls.Add(this.ProfileTable);
|
||||||
this.ProfileGroupBox.Location = new System.Drawing.Point(12, 147);
|
this.ProfileGroupBox.Location = new System.Drawing.Point(12, 147);
|
||||||
this.ProfileGroupBox.Name = "ProfileGroupBox";
|
this.ProfileGroupBox.Name = "ProfileGroupBox";
|
||||||
this.ProfileGroupBox.Size = new System.Drawing.Size(584, 65);
|
this.ProfileGroupBox.Size = new System.Drawing.Size(584, 65);
|
||||||
this.ProfileGroupBox.TabIndex = 13;
|
this.ProfileGroupBox.TabIndex = 13;
|
||||||
this.ProfileGroupBox.TabStop = false;
|
this.ProfileGroupBox.TabStop = false;
|
||||||
this.ProfileGroupBox.Text = "Profiles";
|
this.ProfileGroupBox.Text = "Profiles";
|
||||||
//
|
//
|
||||||
// ProfileTable
|
// ProfileTable
|
||||||
//
|
//
|
||||||
this.ProfileTable.AutoSize = true;
|
this.ProfileTable.AutoSize = true;
|
||||||
this.ProfileTable.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
this.ProfileTable.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
this.ProfileTable.ColumnCount = 2;
|
this.ProfileTable.ColumnCount = 2;
|
||||||
this.ProfileTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
this.ProfileTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
this.ProfileTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
this.ProfileTable.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
this.ProfileTable.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.ProfileTable.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.ProfileTable.Location = new System.Drawing.Point(3, 19);
|
this.ProfileTable.Location = new System.Drawing.Point(3, 19);
|
||||||
this.ProfileTable.Name = "ProfileTable";
|
this.ProfileTable.Name = "ProfileTable";
|
||||||
this.ProfileTable.RowCount = 1;
|
this.ProfileTable.RowCount = 1;
|
||||||
this.ProfileTable.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
this.ProfileTable.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
this.ProfileTable.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
this.ProfileTable.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
this.ProfileTable.Size = new System.Drawing.Size(578, 43);
|
this.ProfileTable.Size = new System.Drawing.Size(578, 43);
|
||||||
this.ProfileTable.TabIndex = 0;
|
this.ProfileTable.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// MainForm
|
// EditModePictureBox
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
this.EditModePictureBox.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
this.EditModePictureBox.ErrorImage = global::Netch.Properties.Resources.edit;
|
||||||
this.ClientSize = new System.Drawing.Size(608, 276);
|
this.EditModePictureBox.Image = global::Netch.Properties.Resources.edit;
|
||||||
this.Controls.Add(this.ProfileGroupBox);
|
this.EditModePictureBox.InitialImage = global::Netch.Properties.Resources.edit;
|
||||||
this.Controls.Add(this.SettingsButton);
|
this.EditModePictureBox.Location = new System.Drawing.Point(518, 56);
|
||||||
this.Controls.Add(this.ControlButton);
|
this.EditModePictureBox.Name = "EditModePictureBox";
|
||||||
this.Controls.Add(this.StatusStrip);
|
this.EditModePictureBox.Size = new System.Drawing.Size(16, 16);
|
||||||
this.Controls.Add(this.ConfigurationGroupBox);
|
this.EditModePictureBox.TabIndex = 12;
|
||||||
this.Controls.Add(this.MenuStrip);
|
this.EditModePictureBox.TabStop = false;
|
||||||
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
this.EditModePictureBox.Click += new System.EventHandler(this.EditModePictureBox_Click);
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
//
|
||||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
// SpeedPictureBox
|
||||||
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
//
|
||||||
this.MaximizeBox = false;
|
this.SpeedPictureBox.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
this.Name = "MainForm";
|
this.SpeedPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("SpeedPictureBox.Image")));
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
this.SpeedPictureBox.Location = new System.Drawing.Point(562, 26);
|
||||||
this.Text = "Netch";
|
this.SpeedPictureBox.Name = "SpeedPictureBox";
|
||||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
|
this.SpeedPictureBox.Size = new System.Drawing.Size(16, 16);
|
||||||
this.Load += new System.EventHandler(this.MainForm_Load);
|
this.SpeedPictureBox.TabIndex = 9;
|
||||||
this.MenuStrip.ResumeLayout(false);
|
this.SpeedPictureBox.TabStop = false;
|
||||||
this.MenuStrip.PerformLayout();
|
this.SpeedPictureBox.Click += new System.EventHandler(this.SpeedPictureBox_Click);
|
||||||
this.ConfigurationGroupBox.ResumeLayout(false);
|
//
|
||||||
this.ConfigurationGroupBox.PerformLayout();
|
// DeletePictureBox
|
||||||
((System.ComponentModel.ISupportInitialize)(this.SpeedPictureBox)).EndInit();
|
//
|
||||||
((System.ComponentModel.ISupportInitialize)(this.DeletePictureBox)).EndInit();
|
this.DeletePictureBox.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
((System.ComponentModel.ISupportInitialize)(this.EditPictureBox)).EndInit();
|
this.DeletePictureBox.Image = ((System.Drawing.Image)(resources.GetObject("DeletePictureBox.Image")));
|
||||||
this.StatusStrip.ResumeLayout(false);
|
this.DeletePictureBox.Location = new System.Drawing.Point(540, 26);
|
||||||
this.StatusStrip.PerformLayout();
|
this.DeletePictureBox.Name = "DeletePictureBox";
|
||||||
this.NotifyMenu.ResumeLayout(false);
|
this.DeletePictureBox.Size = new System.Drawing.Size(16, 16);
|
||||||
this.ProfileGroupBox.ResumeLayout(false);
|
this.DeletePictureBox.TabIndex = 8;
|
||||||
this.ProfileGroupBox.PerformLayout();
|
this.DeletePictureBox.TabStop = false;
|
||||||
this.ResumeLayout(false);
|
this.DeletePictureBox.Click += new System.EventHandler(this.DeletePictureBox_Click);
|
||||||
this.PerformLayout();
|
//
|
||||||
|
// EditPictureBox
|
||||||
|
//
|
||||||
|
this.EditPictureBox.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
|
this.EditPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("EditPictureBox.Image")));
|
||||||
|
this.EditPictureBox.Location = new System.Drawing.Point(518, 26);
|
||||||
|
this.EditPictureBox.Name = "EditPictureBox";
|
||||||
|
this.EditPictureBox.Size = new System.Drawing.Size(16, 16);
|
||||||
|
this.EditPictureBox.TabIndex = 7;
|
||||||
|
this.EditPictureBox.TabStop = false;
|
||||||
|
this.EditPictureBox.Click += new System.EventHandler(this.EditPictureBox_Click);
|
||||||
|
//
|
||||||
|
// MainForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||||
|
this.ClientSize = new System.Drawing.Size(608, 276);
|
||||||
|
this.Controls.Add(this.ProfileGroupBox);
|
||||||
|
this.Controls.Add(this.SettingsButton);
|
||||||
|
this.Controls.Add(this.ControlButton);
|
||||||
|
this.Controls.Add(this.StatusStrip);
|
||||||
|
this.Controls.Add(this.ConfigurationGroupBox);
|
||||||
|
this.Controls.Add(this.MenuStrip);
|
||||||
|
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
|
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.Name = "MainForm";
|
||||||
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
|
this.Text = "Netch";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
|
||||||
|
this.Load += new System.EventHandler(this.MainForm_Load);
|
||||||
|
this.MenuStrip.ResumeLayout(false);
|
||||||
|
this.MenuStrip.PerformLayout();
|
||||||
|
this.ConfigurationGroupBox.ResumeLayout(false);
|
||||||
|
this.ConfigurationGroupBox.PerformLayout();
|
||||||
|
this.StatusStrip.ResumeLayout(false);
|
||||||
|
this.StatusStrip.PerformLayout();
|
||||||
|
this.NotifyMenu.ResumeLayout(false);
|
||||||
|
this.ProfileGroupBox.ResumeLayout(false);
|
||||||
|
this.ProfileGroupBox.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.EditModePictureBox)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.SpeedPictureBox)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.DeletePictureBox)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.EditPictureBox)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -573,5 +590,6 @@ namespace Netch.Forms
|
|||||||
private System.Windows.Forms.GroupBox ProfileGroupBox;
|
private System.Windows.Forms.GroupBox ProfileGroupBox;
|
||||||
private System.Windows.Forms.TableLayoutPanel ProfileTable;
|
private System.Windows.Forms.TableLayoutPanel ProfileTable;
|
||||||
private System.Windows.Forms.ToolStripMenuItem ManageProcessModeToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem ManageProcessModeToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.PictureBox EditModePictureBox;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -204,6 +204,17 @@ namespace Netch.Forms
|
|||||||
|
|
||||||
SelectLastMode();
|
SelectLastMode();
|
||||||
}
|
}
|
||||||
|
public void UpdateMode(Models.Mode NewMode, Models.Mode OldMode)
|
||||||
|
{
|
||||||
|
ModeComboBox.Items.Clear();
|
||||||
|
Global.ModeFiles.Remove(OldMode);
|
||||||
|
Global.ModeFiles.Add(NewMode);
|
||||||
|
var array = Global.ModeFiles.ToArray();
|
||||||
|
Array.Sort(array, (a, b) => string.Compare(a.Remark, b.Remark, StringComparison.Ordinal));
|
||||||
|
ModeComboBox.Items.AddRange(array);
|
||||||
|
|
||||||
|
SelectLastMode();
|
||||||
|
}
|
||||||
|
|
||||||
private void SaveConfigs()
|
private void SaveConfigs()
|
||||||
{
|
{
|
||||||
@@ -1108,5 +1119,28 @@ namespace Netch.Forms
|
|||||||
Global.Settings.profiles[index] = new Models.Profile(selectedServer, selectedMode, name);
|
Global.Settings.profiles[index] = new Models.Profile(selectedServer, selectedMode, name);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void EditModePictureBox_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// 当前ModeComboBox中至少有一项
|
||||||
|
if (ModeComboBox.Items.Count > 0 && ModeComboBox.SelectedIndex != -1)
|
||||||
|
{
|
||||||
|
SaveConfigs();
|
||||||
|
var selectedMode = (Models.Mode)ModeComboBox.SelectedItem;
|
||||||
|
// 只允许修改进程加速的模式
|
||||||
|
if (selectedMode.Type == 0)
|
||||||
|
{
|
||||||
|
//Process.Start(Environment.CurrentDirectory + "\\mode\\" + selectedMode.FileName + ".txt");
|
||||||
|
Mode.Process process = new Mode.Process(selectedMode);
|
||||||
|
process.Text = "Edit Process Mode";
|
||||||
|
process.Show();
|
||||||
|
Hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show(Utils.i18N.Translate("Please select an mode first"), Utils.i18N.Translate("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
1
Netch/Forms/Mode/Process.Designer.cs
generated
1
Netch/Forms/Mode/Process.Designer.cs
generated
@@ -160,6 +160,7 @@
|
|||||||
this.RuleListBox.Name = "RuleListBox";
|
this.RuleListBox.Name = "RuleListBox";
|
||||||
this.RuleListBox.Size = new System.Drawing.Size(328, 123);
|
this.RuleListBox.Size = new System.Drawing.Size(328, 123);
|
||||||
this.RuleListBox.TabIndex = 2;
|
this.RuleListBox.TabIndex = 2;
|
||||||
|
this.RuleListBox.MouseUp += new System.Windows.Forms.MouseEventHandler(this.RuleListBox_MouseUp);
|
||||||
//
|
//
|
||||||
// RemarkTextBox
|
// RemarkTextBox
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -7,11 +7,45 @@ namespace Netch.Forms.Mode
|
|||||||
{
|
{
|
||||||
public partial class Process : Form
|
public partial class Process : Form
|
||||||
{
|
{
|
||||||
|
//用于判断当前窗口是否为编辑模式
|
||||||
|
private Boolean EditMode = false;
|
||||||
|
//被编辑模式坐标
|
||||||
|
private Models.Mode EditMode_Old = null;
|
||||||
|
/// <summary>
|
||||||
|
/// 编辑模式
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="mode">模式</param>
|
||||||
|
public Process(Models.Mode mode)
|
||||||
|
{
|
||||||
|
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
CheckForIllegalCrossThreadCalls = false;
|
||||||
|
|
||||||
|
EditMode_Old = mode;
|
||||||
|
this.Text = "Edit Process Mode";
|
||||||
|
//循环填充已有规则
|
||||||
|
mode.Rule.ForEach(i => RuleListBox.Items.Add(i));
|
||||||
|
|
||||||
|
EditMode = true;
|
||||||
|
StaySameButton.Enabled = false;
|
||||||
|
TimeDataButton.Enabled = false;
|
||||||
|
FilenameTextBox.Enabled = false;
|
||||||
|
FilenameLabel.Enabled = false;
|
||||||
|
UseCustomFilenameBox.Enabled = false;
|
||||||
|
|
||||||
|
FilenameTextBox.Text = mode.FileName;
|
||||||
|
RemarkTextBox.Text = mode.Remark;
|
||||||
|
|
||||||
|
}
|
||||||
public Process()
|
public Process()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
CheckForIllegalCrossThreadCalls = false;
|
CheckForIllegalCrossThreadCalls = false;
|
||||||
|
|
||||||
|
EditMode = false;
|
||||||
|
EditMode_Old = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -91,6 +125,27 @@ namespace Netch.Forms.Mode
|
|||||||
Global.MainForm.Show();
|
Global.MainForm.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// listBox右键菜单
|
||||||
|
/// </summary>
|
||||||
|
private void RuleListBox_MouseUp(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
ContextMenuStrip strip = new ContextMenuStrip();
|
||||||
|
strip.Items.Add(Utils.i18N.Translate("Delete"));
|
||||||
|
if (e.Button == MouseButtons.Right)
|
||||||
|
{
|
||||||
|
strip.Show(this.RuleListBox, e.Location);//鼠标右键按下弹出菜单
|
||||||
|
strip.MouseClick += new MouseEventHandler(deleteRule_Click);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void deleteRule_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (RuleListBox.SelectedIndex != -1)
|
||||||
|
{
|
||||||
|
RuleListBox.Items.RemoveAt(RuleListBox.SelectedIndex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void AddButton_Click(object sender, EventArgs e)
|
private void AddButton_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrWhiteSpace(ProcessNameTextBox.Text))
|
if (!string.IsNullOrWhiteSpace(ProcessNameTextBox.Text))
|
||||||
@@ -134,43 +189,16 @@ namespace Netch.Forms.Mode
|
|||||||
|
|
||||||
private void ControlButton_Click(object sender, EventArgs e)
|
private void ControlButton_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
// 自定义文件名
|
if (EditMode)
|
||||||
if (UseCustomFilenameBox.Checked)
|
|
||||||
{
|
{
|
||||||
Global.Settings.ModeFileNameType = 0;
|
// 编辑模式
|
||||||
}
|
|
||||||
// 使用和备注一致的文件名
|
|
||||||
else if (StaySameButton.Checked)
|
|
||||||
{
|
|
||||||
Global.Settings.ModeFileNameType = 1;
|
|
||||||
FilenameTextBox.Text = RemarkTextBox.Text;
|
|
||||||
}
|
|
||||||
// 使用时间数据作为文件名
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Global.Settings.ModeFileNameType = 2;
|
|
||||||
FilenameTextBox.Text = ((long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds).ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
Utils.Configuration.Save();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(RemarkTextBox.Text))
|
|
||||||
{
|
|
||||||
var ModeFilename = Path.Combine("mode", FilenameTextBox.Text);
|
|
||||||
|
|
||||||
// 如果文件已存在,返回
|
|
||||||
if (File.Exists(ModeFilename + ".txt"))
|
|
||||||
{
|
|
||||||
MessageBox.Show(Utils.i18N.Translate("File already exists.\n Please Change the filename"), Utils.i18N.Translate("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (RuleListBox.Items.Count != 0)
|
if (RuleListBox.Items.Count != 0)
|
||||||
{
|
{
|
||||||
var mode = new Models.Mode
|
var mode = new Models.Mode
|
||||||
{
|
{
|
||||||
BypassChina = false,
|
BypassChina = false,
|
||||||
FileName = ModeFilename,
|
FileName = FilenameTextBox.Text,
|
||||||
Type = 0,
|
Type = 0,
|
||||||
Remark = RemarkTextBox.Text
|
Remark = RemarkTextBox.Text
|
||||||
};
|
};
|
||||||
@@ -190,11 +218,11 @@ namespace Netch.Forms.Mode
|
|||||||
Directory.CreateDirectory("mode");
|
Directory.CreateDirectory("mode");
|
||||||
}
|
}
|
||||||
|
|
||||||
File.WriteAllText(ModeFilename + ".txt", text);
|
File.WriteAllText(Path.Combine("mode", FilenameTextBox.Text) + ".txt", text);
|
||||||
|
|
||||||
MessageBox.Show(Utils.i18N.Translate("Mode added successfully"), Utils.i18N.Translate("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
MessageBox.Show(Utils.i18N.Translate("Mode updated successfully"), Utils.i18N.Translate("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
|
||||||
Global.MainForm.AddMode(mode);
|
Global.MainForm.UpdateMode(mode, EditMode_Old);
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -204,9 +232,84 @@ namespace Netch.Forms.Mode
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MessageBox.Show(Utils.i18N.Translate("Please enter a mode remark"), Utils.i18N.Translate("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
// 自定义文件名
|
||||||
}
|
if (UseCustomFilenameBox.Checked)
|
||||||
|
{
|
||||||
|
Global.Settings.ModeFileNameType = 0;
|
||||||
|
}
|
||||||
|
// 使用和备注一致的文件名
|
||||||
|
else if (StaySameButton.Checked)
|
||||||
|
{
|
||||||
|
Global.Settings.ModeFileNameType = 1;
|
||||||
|
FilenameTextBox.Text = RemarkTextBox.Text;
|
||||||
|
}
|
||||||
|
// 使用时间数据作为文件名
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Global.Settings.ModeFileNameType = 2;
|
||||||
|
FilenameTextBox.Text = ((long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds).ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
Utils.Configuration.Save();
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(RemarkTextBox.Text))
|
||||||
|
{
|
||||||
|
if (Global.Settings.ModeFileNameType == 0 && string.IsNullOrWhiteSpace(FilenameTextBox.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show(Utils.i18N.Translate("Please enter a mode filename"), Utils.i18N.Translate("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var ModeFilename = Path.Combine("mode", FilenameTextBox.Text);
|
||||||
|
|
||||||
|
// 如果文件已存在,返回
|
||||||
|
if (File.Exists(ModeFilename + ".txt"))
|
||||||
|
{
|
||||||
|
MessageBox.Show(Utils.i18N.Translate("File already exists.\n Please Change the filename"), Utils.i18N.Translate("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (RuleListBox.Items.Count != 0)
|
||||||
|
{
|
||||||
|
var mode = new Models.Mode
|
||||||
|
{
|
||||||
|
BypassChina = false,
|
||||||
|
FileName = ModeFilename,
|
||||||
|
Type = 0,
|
||||||
|
Remark = RemarkTextBox.Text
|
||||||
|
};
|
||||||
|
|
||||||
|
var text = $"# {RemarkTextBox.Text}, 0\r\n";
|
||||||
|
foreach (var item in RuleListBox.Items)
|
||||||
|
{
|
||||||
|
var process = item as string;
|
||||||
|
mode.Rule.Add(process);
|
||||||
|
text += process + "\r\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
text = text.Substring(0, text.Length - 2);
|
||||||
|
|
||||||
|
if (!Directory.Exists("mode"))
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory("mode");
|
||||||
|
}
|
||||||
|
|
||||||
|
File.WriteAllText(ModeFilename + ".txt", text);
|
||||||
|
|
||||||
|
MessageBox.Show(Utils.i18N.Translate("Mode added successfully"), Utils.i18N.Translate("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
|
||||||
|
Global.MainForm.AddMode(mode);
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show(Utils.i18N.Translate("Unable to add empty rule"), Utils.i18N.Translate("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show(Utils.i18N.Translate("Please enter a mode remark"), Utils.i18N.Translate("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UseCustomFileNameBox_CheckedChanged(object sender, EventArgs e)
|
private void UseCustomFileNameBox_CheckedChanged(object sender, EventArgs e)
|
||||||
|
|||||||
11
Netch/Forms/SubscribeForm.Designer.cs
generated
11
Netch/Forms/SubscribeForm.Designer.cs
generated
@@ -45,6 +45,7 @@
|
|||||||
this.UserAgentHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
this.UserAgentHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
this.pContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
|
this.pContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
this.DeleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.DeleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.CopyLinkToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.UseSelectedServerCheckBox = new System.Windows.Forms.CheckBox();
|
this.UseSelectedServerCheckBox = new System.Windows.Forms.CheckBox();
|
||||||
this.AddSubscriptionBox.SuspendLayout();
|
this.AddSubscriptionBox.SuspendLayout();
|
||||||
this.pContextMenuStrip.SuspendLayout();
|
this.pContextMenuStrip.SuspendLayout();
|
||||||
@@ -169,6 +170,8 @@
|
|||||||
//
|
//
|
||||||
this.pContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.pContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.DeleteToolStripMenuItem});
|
this.DeleteToolStripMenuItem});
|
||||||
|
this.pContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.CopyLinkToolStripMenuItem});
|
||||||
this.pContextMenuStrip.Name = "pContextMenuStrip";
|
this.pContextMenuStrip.Name = "pContextMenuStrip";
|
||||||
this.pContextMenuStrip.Size = new System.Drawing.Size(114, 26);
|
this.pContextMenuStrip.Size = new System.Drawing.Size(114, 26);
|
||||||
//
|
//
|
||||||
@@ -179,6 +182,13 @@
|
|||||||
this.DeleteToolStripMenuItem.Text = "Delete";
|
this.DeleteToolStripMenuItem.Text = "Delete";
|
||||||
this.DeleteToolStripMenuItem.Click += new System.EventHandler(this.DeleteToolStripMenuItem_Click);
|
this.DeleteToolStripMenuItem.Click += new System.EventHandler(this.DeleteToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
|
// CopyLinkToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.CopyLinkToolStripMenuItem.Name = "CopyLinkToolStripMenuItem";
|
||||||
|
this.CopyLinkToolStripMenuItem.Size = new System.Drawing.Size(113, 22);
|
||||||
|
this.CopyLinkToolStripMenuItem.Text = "CopyLink";
|
||||||
|
this.CopyLinkToolStripMenuItem.Click += new System.EventHandler(this.CopyLinkToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
// UseSelectedServerCheckBox
|
// UseSelectedServerCheckBox
|
||||||
//
|
//
|
||||||
this.UseSelectedServerCheckBox.AutoSize = true;
|
this.UseSelectedServerCheckBox.AutoSize = true;
|
||||||
@@ -229,6 +239,7 @@
|
|||||||
private System.Windows.Forms.ColumnHeader LinkColumnHeader;
|
private System.Windows.Forms.ColumnHeader LinkColumnHeader;
|
||||||
private System.Windows.Forms.ContextMenuStrip pContextMenuStrip;
|
private System.Windows.Forms.ContextMenuStrip pContextMenuStrip;
|
||||||
private System.Windows.Forms.ToolStripMenuItem DeleteToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem DeleteToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem CopyLinkToolStripMenuItem;
|
||||||
private System.Windows.Forms.Label UserAgentLabel;
|
private System.Windows.Forms.Label UserAgentLabel;
|
||||||
private System.Windows.Forms.TextBox UserAgentTextBox;
|
private System.Windows.Forms.TextBox UserAgentTextBox;
|
||||||
private System.Windows.Forms.ColumnHeader UserAgentHeader;
|
private System.Windows.Forms.ColumnHeader UserAgentHeader;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using Netch.Models;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
@@ -41,6 +42,7 @@ namespace Netch.Forms
|
|||||||
LinkColumnHeader.Text = Utils.i18N.Translate(LinkColumnHeader.Text);
|
LinkColumnHeader.Text = Utils.i18N.Translate(LinkColumnHeader.Text);
|
||||||
UseSelectedServerCheckBox.Text = Utils.i18N.Translate(UseSelectedServerCheckBox.Text);
|
UseSelectedServerCheckBox.Text = Utils.i18N.Translate(UseSelectedServerCheckBox.Text);
|
||||||
DeleteToolStripMenuItem.Text = Utils.i18N.Translate(DeleteToolStripMenuItem.Text);
|
DeleteToolStripMenuItem.Text = Utils.i18N.Translate(DeleteToolStripMenuItem.Text);
|
||||||
|
CopyLinkToolStripMenuItem.Text = Utils.i18N.Translate(CopyLinkToolStripMenuItem.Text);
|
||||||
RemarkLabel.Text = Utils.i18N.Translate(RemarkLabel.Text);
|
RemarkLabel.Text = Utils.i18N.Translate(RemarkLabel.Text);
|
||||||
LinkLabel.Text = Utils.i18N.Translate(LinkLabel.Text);
|
LinkLabel.Text = Utils.i18N.Translate(LinkLabel.Text);
|
||||||
AddButton.Text = Utils.i18N.Translate(AddButton.Text);
|
AddButton.Text = Utils.i18N.Translate(AddButton.Text);
|
||||||
@@ -56,7 +58,18 @@ namespace Netch.Forms
|
|||||||
{
|
{
|
||||||
Global.MainForm.Show();
|
Global.MainForm.Show();
|
||||||
}
|
}
|
||||||
|
private void CopyLinkToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (SubscribeLinkListView.SelectedItems.Count > 0)
|
||||||
|
{
|
||||||
|
for (var i = SubscribeLinkListView.SelectedItems.Count - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
var item = SubscribeLinkListView.SelectedItems[i];
|
||||||
|
var link = Global.Settings.SubscribeLink[item.Index];
|
||||||
|
Clipboard.SetText(link.Link);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
private void DeleteToolStripMenuItem_Click(object sender, EventArgs e)
|
private void DeleteToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (MessageBox.Show(Utils.i18N.Translate("Delete or not ? Will clean up the corresponding group of items in the server list"), Utils.i18N.Translate("Information"), MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
|
if (MessageBox.Show(Utils.i18N.Translate("Delete or not ? Will clean up the corresponding group of items in the server list"), Utils.i18N.Translate("Information"), MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
|
||||||
|
|||||||
@@ -68,7 +68,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
|
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
|
||||||
<Exec Command="@ECHO OFF
RD /S /Q $(TargetDir)bin > NUL 2>&1
RD /S /Q $(TargetDir)i18n > NUL 2>&1
RD /S /Q $(TargetDir)mode > NUL 2>&1

MKDIR $(TargetDir)bin > NUL 2>&1
MKDIR $(TargetDir)i18n > NUL 2>&1
MKDIR $(TargetDir)mode > NUL 2>&1

COPY /Y $(SolutionDir)binaries\$(PlatformName)\* $(TargetDir)bin > NUL 2>&1
COPY /Y $(SolutionDir)binaries\* $(TargetDir)bin > NUL 2>&1
MOVE /Y $(TargetDir)bin\nfapinet.dll $(TargetDir)nfapinet.dll > NUL 2>&1
COPY /Y $(SolutionDir)translations\i18n\* $(TargetDir)i18n > NUL 2>&1
COPY /Y $(SolutionDir)modes\mode\*.txt $(TargetDir)mode > NUL 2>&1" />
|
<Exec Command="@ECHO OFF
RD /S /Q $(TargetDir)bin > NUL 2>&1
RD /S /Q $(TargetDir)i18n > NUL 2>&1
RD /S /Q $(TargetDir)mode > NUL 2>&1

MKDIR $(TargetDir)bin > NUL 2>&1
MKDIR $(TargetDir)i18n > NUL 2>&1
MKDIR $(TargetDir)mode > NUL 2>&1

COPY /Y $(SolutionDir)binaries\$(PlatformName)\* $(TargetDir)bin > NUL 2>&1
COPY /Y $(SolutionDir)binaries\* $(TargetDir)bin > NUL 2>&1
MOVE /Y $(TargetDir)bin\nfapinet.dll $(TargetDir)nfapinet.dll > NUL 2>&1
COPY /Y $(SolutionDir)translations\i18n\* $(TargetDir)i18n > NUL 2>&1
COPY /Y $(SolutionDir)modes\mode\*.txt $(TargetDir)mode > NUL 2>&1
MKDIR $(TargetDir)bin\tap-driver > NUL 2>&1
COPY /Y $(SolutionDir)binaries\$(PlatformName)\tap-driver\* $(TargetDir)bin\tap-driver > NUL 2>&1" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
@@ -30,6 +30,7 @@
|
|||||||
"Mode": "模式",
|
"Mode": "模式",
|
||||||
"Create Process Mode": "创建进程模式",
|
"Create Process Mode": "创建进程模式",
|
||||||
"Manage Process Mode": "管理进程模式",
|
"Manage Process Mode": "管理进程模式",
|
||||||
|
"Edit Process Mode": "修改进程模式",
|
||||||
|
|
||||||
"Address": "地址",
|
"Address": "地址",
|
||||||
"Username": "用户名",
|
"Username": "用户名",
|
||||||
@@ -100,12 +101,16 @@
|
|||||||
"Please enter an process name (xxx.exe)": "请输入一个进程名(xxx.exe)",
|
"Please enter an process name (xxx.exe)": "请输入一个进程名(xxx.exe)",
|
||||||
"Scan completed": "扫描完成",
|
"Scan completed": "扫描完成",
|
||||||
"Mode added successfully": "模式添加成功",
|
"Mode added successfully": "模式添加成功",
|
||||||
|
"Mode updated successfully": "模式修改成功",
|
||||||
"Unable to add empty rule": "无法添加空规则",
|
"Unable to add empty rule": "无法添加空规则",
|
||||||
"Please enter a mode remark": "请输入模式的备注",
|
"Please enter a mode remark": "请输入模式的备注",
|
||||||
|
"File already exists.\n Please Change the filename": "文件名已存在,请修改文件名",
|
||||||
|
"Please enter a mode filename": "请输入模式的文件名",
|
||||||
|
|
||||||
"Link": "链接",
|
"Link": "链接",
|
||||||
"Use Selected Server To Update Subscription": "使用选中的服务器更新订阅",
|
"Use Selected Server To Update Subscription": "使用选中的服务器更新订阅",
|
||||||
"Delete": "删除",
|
"Delete": "删除",
|
||||||
|
"CopyLink": "复制链接",
|
||||||
"Delete or not ? Will clean up the corresponding group of items in the server list": "是否删除?将会清理服务器列表中对应组的项目",
|
"Delete or not ? Will clean up the corresponding group of items in the server list": "是否删除?将会清理服务器列表中对应组的项目",
|
||||||
"Remark can not be empty": "备注不可为空",
|
"Remark can not be empty": "备注不可为空",
|
||||||
"Link can not be empty": "链接不可为空",
|
"Link can not be empty": "链接不可为空",
|
||||||
@@ -125,6 +130,7 @@
|
|||||||
"Global Bypass IPs": "全局直连 IP",
|
"Global Bypass IPs": "全局直连 IP",
|
||||||
"Port value illegal. Try again.": "端口值非法。请重试。",
|
"Port value illegal. Try again.": "端口值非法。请重试。",
|
||||||
"Check update when opened": "打开软件时检查更新",
|
"Check update when opened": "打开软件时检查更新",
|
||||||
|
"TUN/TAP driver is not detected. Is it installed now?": "未检测到TUN/TAP驱动,是否现在安装?",
|
||||||
|
|
||||||
"Profile": "配置名",
|
"Profile": "配置名",
|
||||||
"Profiles": "配置",
|
"Profiles": "配置",
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.NetworkInformation;
|
using System.Net.NetworkInformation;
|
||||||
@@ -145,8 +146,23 @@ namespace Netch.Utils
|
|||||||
Global.TUNTAP.ComponentID = TUNTAP.GetComponentID();
|
Global.TUNTAP.ComponentID = TUNTAP.GetComponentID();
|
||||||
if (string.IsNullOrEmpty(Global.TUNTAP.ComponentID))
|
if (string.IsNullOrEmpty(Global.TUNTAP.ComponentID))
|
||||||
{
|
{
|
||||||
MessageBox.Show(i18N.Translate("Please install TAP-Windows and create an TUN/TAP adapter manually"), i18N.Translate("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
if (MessageBox.Show(i18N.Translate("TUN/TAP driver is not detected. Is it installed now?"), i18N.Translate("Information"), MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
|
||||||
return false;
|
{
|
||||||
|
//安装Tap Driver
|
||||||
|
Process installProcess = new Process();
|
||||||
|
installProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
|
||||||
|
installProcess.StartInfo.FileName = Path.Combine("bin/tap-driver", "install.bat");
|
||||||
|
installProcess.Start();
|
||||||
|
installProcess.WaitForExit();
|
||||||
|
installProcess.Close();
|
||||||
|
|
||||||
|
Global.TUNTAP.ComponentID = TUNTAP.GetComponentID();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
//MessageBox.Show(i18N.Translate("Please install TAP-Windows and create an TUN/TAP adapter manually"), i18N.Translate("Information"), MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
// return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var name = TUNTAP.GetName(Global.TUNTAP.ComponentID);
|
var name = TUNTAP.GetName(Global.TUNTAP.ComponentID);
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ namespace Netch.Utils
|
|||||||
foreach (var line in text.GetLines())
|
foreach (var line in text.GetLines())
|
||||||
{
|
{
|
||||||
var servers = ParseLine(line);
|
var servers = ParseLine(line);
|
||||||
if (line != null)
|
if (servers != null)
|
||||||
{
|
{
|
||||||
list.AddRange(servers);
|
list.AddRange(servers);
|
||||||
}
|
}
|
||||||
@@ -109,110 +109,7 @@ namespace Netch.Utils
|
|||||||
{
|
{
|
||||||
var data = new Server();
|
var data = new Server();
|
||||||
data.Type = "SS";
|
data.Type = "SS";
|
||||||
/*
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if(!text.Contains("/?"))
|
|
||||||
{
|
|
||||||
var finder = new Regex(@"ss://(?<base64>[A-Za-z0-9+-/=_]+)(?:#(?<tag>\S+))?", RegexOptions.IgnoreCase);
|
|
||||||
var parser = new Regex(@"^((?<method>.+?):(?<password>.*)@(?<hostname>.+?):(?<port>\d+?))$", RegexOptions.IgnoreCase);
|
|
||||||
var match = finder.Match(text);
|
|
||||||
if (!match.Success)
|
|
||||||
{
|
|
||||||
throw new FormatException();
|
|
||||||
}
|
|
||||||
|
|
||||||
var base64 = match.Groups["base64"].Value.TrimEnd('/');
|
|
||||||
var tag = match.Groups["tag"].Value;
|
|
||||||
if (!String.IsNullOrEmpty(tag))
|
|
||||||
{
|
|
||||||
data.Remark = HttpUtility.UrlDecode(tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
match = parser.Match(URLSafeBase64Decode(base64));
|
|
||||||
if (!match.Success)
|
|
||||||
{
|
|
||||||
throw new FormatException();
|
|
||||||
}
|
|
||||||
|
|
||||||
data.Address = match.Groups["hostname"].Value;
|
|
||||||
data.Port = int.Parse(match.Groups["port"].Value);
|
|
||||||
data.Password = match.Groups["password"].Value;
|
|
||||||
data.EncryptMethod = match.Groups["method"].Value;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (text.Contains("#"))
|
|
||||||
{
|
|
||||||
data.Remark = HttpUtility.UrlDecode(text.Split('#')[1]);
|
|
||||||
text = text.Split('#')[0];
|
|
||||||
}
|
|
||||||
var finder = new Regex(@"ss://(?<base64>.+?)@(?<server>.+?):(?<port>\d+?)/\?plugin=(?<plugin>.+)");
|
|
||||||
var parser = new Regex(@"^(?<method>.+?):(?<password>.+)$");
|
|
||||||
var match = finder.Match(text);
|
|
||||||
if (!match.Success)
|
|
||||||
{
|
|
||||||
throw new FormatException();
|
|
||||||
}
|
|
||||||
|
|
||||||
data.Address = match.Groups["server"].Value;
|
|
||||||
data.Port = int.Parse(match.Groups["port"].Value);
|
|
||||||
var plugins = HttpUtility.UrlDecode(match.Groups["plugin"].Value).Split(';');
|
|
||||||
if (plugins[0] == "obfs-local")
|
|
||||||
plugins[0] = "simple-obfs";
|
|
||||||
|
|
||||||
var base64 = URLSafeBase64Decode(match.Groups["base64"].Value);
|
|
||||||
match = parser.Match(base64);
|
|
||||||
if (!match.Success)
|
|
||||||
{
|
|
||||||
throw new FormatException();
|
|
||||||
}
|
|
||||||
|
|
||||||
data.EncryptMethod = match.Groups["method"].Value;
|
|
||||||
data.Password = match.Groups["password"].Value;
|
|
||||||
data.Plugin = plugins[0];
|
|
||||||
data.PluginOption = plugins[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Global.EncryptMethods.SS.Contains(data.EncryptMethod))
|
|
||||||
{
|
|
||||||
Logging.Info(String.Format("不支持的 SS 加密方式:{0}", data.EncryptMethod));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
list.Add(data);
|
|
||||||
}
|
|
||||||
catch (FormatException)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var uri = new Uri(text);
|
|
||||||
var userinfo = URLSafeBase64Decode(uri.UserInfo).Split(new char[] { ':' }, 2);
|
|
||||||
if (userinfo.Length != 2)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
data.Remark = uri.GetComponents(UriComponents.Fragment, UriFormat.Unescaped);
|
|
||||||
data.Address = uri.IdnHost;
|
|
||||||
data.Port = uri.Port;
|
|
||||||
data.Password = userinfo[1];
|
|
||||||
data.EncryptMethod = userinfo[0];
|
|
||||||
|
|
||||||
if (!Global.EncryptMethods.SS.Contains(data.EncryptMethod))
|
|
||||||
{
|
|
||||||
Logging.Info(String.Format("不支持的 SS 加密方式:{0}", data.EncryptMethod));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
list.Add(data);
|
|
||||||
}
|
|
||||||
catch (UriFormatException)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
text = text.Replace("/?", "?");
|
text = text.Replace("/?", "?");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -337,81 +234,7 @@ namespace Netch.Utils
|
|||||||
data.Type = "SSR";
|
data.Type = "SSR";
|
||||||
|
|
||||||
text = text.Substring(6);
|
text = text.Substring(6);
|
||||||
/*
|
|
||||||
var shadowsocksr = URLSafeBase64Decode(text).Split(':');
|
|
||||||
|
|
||||||
if (shadowsocksr.Length > 6)
|
|
||||||
{
|
|
||||||
var buff = "";
|
|
||||||
|
|
||||||
for (int i = 0; i < shadowsocksr.Length - 5; i++)
|
|
||||||
{
|
|
||||||
buff += shadowsocksr[i];
|
|
||||||
buff += ":";
|
|
||||||
}
|
|
||||||
|
|
||||||
data.Address = buff.Substring(0, buff.Length - 1).Trim();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
data.Address = shadowsocksr[0];
|
|
||||||
}
|
|
||||||
data.Port = int.Parse(shadowsocksr[shadowsocksr.Length - 5]);
|
|
||||||
data.Protocol = shadowsocksr[shadowsocksr.Length - 4];
|
|
||||||
if (!Global.Protocols.Contains(data.Protocol))
|
|
||||||
{
|
|
||||||
Logging.Info(String.Format("不支持的 SSR 协议:{0}", data.Protocol));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
data.EncryptMethod = shadowsocksr[shadowsocksr.Length - 3];
|
|
||||||
if (!Global.EncryptMethods.SSR.Contains(data.EncryptMethod))
|
|
||||||
{
|
|
||||||
Logging.Info(String.Format("不支持的 SSR 加密方式:{0}", data.EncryptMethod));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
data.OBFS = shadowsocksr[shadowsocksr.Length - 2];
|
|
||||||
if (!Global.OBFSs.Contains(data.OBFS))
|
|
||||||
{
|
|
||||||
Logging.Info(String.Format("不支持的 SSR 混淆:{0}", data.OBFS));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
var info = shadowsocksr[shadowsocksr.Length - 1].Split('/');
|
|
||||||
data.Password = URLSafeBase64Decode(info[0]);
|
|
||||||
|
|
||||||
var dict = new Dictionary<string, string>();
|
|
||||||
if (info.Length > 1 && info[1].Length > 1)
|
|
||||||
{
|
|
||||||
foreach (var str in info[1].Substring(1).Split('&'))
|
|
||||||
{
|
|
||||||
var splited = str.Split('=');
|
|
||||||
|
|
||||||
dict.Add(splited[0], splited[1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict.ContainsKey("remarks"))
|
|
||||||
{
|
|
||||||
data.Remark = URLSafeBase64Decode(dict["remarks"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict.ContainsKey("protoparam"))
|
|
||||||
{
|
|
||||||
data.ProtocolParam = URLSafeBase64Decode(dict["protoparam"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict.ContainsKey("obfsparam"))
|
|
||||||
{
|
|
||||||
data.OBFSParam = URLSafeBase64Decode(dict["obfsparam"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data.EncryptMethod != "none" && data.Protocol == "origin" && data.OBFS == "plain")
|
|
||||||
{
|
|
||||||
data.Type = "SS";
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
var parser = new Regex(@"^(?<server>.+):(?<port>(-?\d+?)):(?<protocol>.+?):(?<method>.+?):(?<obfs>.+?):(?<password>.+?)/\?(?<info>.*)$");
|
var parser = new Regex(@"^(?<server>.+):(?<port>(-?\d+?)):(?<protocol>.+?):(?<method>.+?):(?<obfs>.+?):(?<password>.+?)/\?(?<info>.*)$");
|
||||||
var match = parser.Match(URLSafeBase64Decode(text));
|
var match = parser.Match(URLSafeBase64Decode(text));
|
||||||
|
|
||||||
|
|||||||
13
README.md
13
README.md
@@ -22,10 +22,15 @@ As well, Netch avoid the restricted NAT problem caused by SSTap. You can use an
|
|||||||
## Sponsor
|
## Sponsor
|
||||||
开发不易,以下为恰饭时间
|
开发不易,以下为恰饭时间
|
||||||
|
|
||||||
[](https://www.mansora.net/cart.php)
|
[](https://nyancat.info)
|
||||||
[](https://across-gfw.com/register?aff=4739)
|
|
||||||
|
|
||||||
这是我所选择的服务器提供商,IPLC 专线翻墙、稳定、速度快、价格便宜。欢迎大家使用我的推广链接前去注册:[这里](https://across-gfw.com/register?aff=4739)
|
NyanCAT Network,全中转高质量节点,多条低倍率节点保证流量无忧,节点极低延迟涵盖五大洲。Netflix 视频党,游戏党,海外回国党必备,无需年付,月付 19 元起
|
||||||
|
[Telegram 群组](https://t.me/NyanCaaaat)
|
||||||
|
|
||||||
|
[](https://www.mansora.net/cart.php)
|
||||||
|
[](https://geckoiplc.com/register?aff=4739)
|
||||||
|
|
||||||
|
这是我所选择的服务器提供商,IPLC 专线翻墙、稳定、速度快、价格便宜。欢迎大家使用我的推广链接前去注册:[这里](https://geckoiplc.com/register?aff=4739)
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||
@@ -34,4 +39,4 @@ As well, Netch avoid the restricted NAT problem caused by SSTap. You can use an
|
|||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- Microsoft Visual C++ Runtime
|
- Microsoft Visual C++ Runtime
|
||||||
- [.NET Framework 4.8](https://dotnet.microsoft.com/download/dotnet-framework/net48)
|
- [.NET Framework 4.8](https://dotnet.microsoft.com/download/dotnet-framework/net48)
|
||||||
|
|||||||
2
binaries
2
binaries
Submodule binaries updated: f065c101eb...ab7f65c101
42
docs/Basic-usage.md
Normal file
42
docs/Basic-usage.md
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# 新手入门
|
||||||
|
**Version : 1.3.7**
|
||||||
|
|
||||||
|
[下载地址](https://github.com/NetchX/Netch/releases)
|
||||||
|
|
||||||
|
## 主界面
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 添加服务器
|
||||||
|
|
||||||
|
> Netch 目前仅支持以下代理协议:Shadowsocks,VMess,Socks5,ShadowsockR。
|
||||||
|
|
||||||
|
首先,点击`服务器`增加所需服务器
|
||||||
|
|
||||||
|
<img width="50%" height="50%" src="screenshots/Add-server.png">
|
||||||
|
|
||||||
|
可手动添加单个服务器,或者通过剪切板链接添加单个服务器。也可通过订阅链接批量添加。
|
||||||
|
|
||||||
|
点击 `订阅` ` 管理订阅链接` 进入以下界面。
|
||||||
|
|
||||||
|
<img width="50%" height="50%" src="screenshots/Add-link.jpg">
|
||||||
|
|
||||||
|
填写备注与链接,点击添加,然后保存。保存后点击 `订阅` ` 从订阅链接更新服务器`。完成服务器添加。添加完服务器后可对服务器进行修改,删除和测速。
|
||||||
|
|
||||||
|
## 选择模式
|
||||||
|
|
||||||
|
> 此处需要会一点英语,比如你应该知道`吃鸡`的英文名称是`PlayerUnknown's Battlegrounds`
|
||||||
|
|
||||||
|
1.3.7 上线了模式搜索功能,即在模式框里输入字符即可搜索,使用英文名称进行搜索,搜索到所需的模式后单击选择,启用模式。相对应的游戏即可被加速
|
||||||
|
|
||||||
|
若没有所需的模式,请选择`[3] Bypass LAN and China (TUN/TAP)`的模式。此模式需要安装 [Tap-Windows](https://github.com/OpenVPN/tap-windows) 适配器,如果 Netch 提示没有该适配器,可以直接安装 [Tap-Windows](https://build.openvpn.net/downloads/releases/latest/tap-windows-latest-stable.exe) 来获得该适配器
|
||||||
|
|
||||||
|
关于更多的模式说明,详见[进阶用法](https://github.com/NormanBB/NetchMode/blob/master/docs/README.zh-CN.md)。
|
||||||
|
|
||||||
|
选择完模式后,点击启用,游戏已被代理。这一步需在开启游戏前完成。
|
||||||
|
|
||||||
|
## 配置说明
|
||||||
|
|
||||||
|
目前,netch支持自定义四个配置,填入配置名,选择相应的服务器和游戏模式,按下`Ctrl`与鼠标左键,即可保存当前配置。下次使用时,点击配置名即可快速启用。
|
||||||
|
|
||||||
|
~~如果你还觉得不会用,可以去用SStap (逃~~
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
# Netch
|
# Netch
|
||||||
[](https://t.me/Netch)
|
[](https://t.me/Netch)
|
||||||
|
> ~~issue已关,有问题可进tele群问,不保证回答,不保证解决,咕~~
|
||||||
|
|
||||||
游戏加速工具
|
游戏加速工具
|
||||||
|
|
||||||
@@ -8,9 +9,11 @@
|
|||||||
- [TOC](#toc)
|
- [TOC](#toc)
|
||||||
- [简介](#%e7%ae%80%e4%bb%8b)
|
- [简介](#%e7%ae%80%e4%bb%8b)
|
||||||
- [赞助商](#%e8%b5%9e%e5%8a%a9%e5%95%86)
|
- [赞助商](#%e8%b5%9e%e5%8a%a9%e5%95%86)
|
||||||
- [截图](#%e6%88%aa%e5%9b%be)
|
- [新手入门](Basic-usage.md)
|
||||||
|
- [进阶用法](https://github.com/NormanBB/NetchMode/blob/master/docs/README.zh-CN.md)
|
||||||
- [依赖](#%e4%be%9d%e8%b5%96)
|
- [依赖](#%e4%be%9d%e8%b5%96)
|
||||||
|
- [语言支持](#语言支持)
|
||||||
|
|
||||||
## 简介
|
## 简介
|
||||||
|
|
||||||
Netch 是一款 Windows 平台的开源游戏加速工具,Netch 可以实现类似 SocksCap64 那样的进程代理,也可以实现 SSTap 那样的全局 TUN/TAP 代理,和 Shadowsocks-Windows 那样的本地 Socks5,HTTP 和系统代理。至于连接至远程服务器的代理协议,目前 Netch 支持以下代理协议:Shadowsocks,VMess,Socks5,ShadowsocksR
|
Netch 是一款 Windows 平台的开源游戏加速工具,Netch 可以实现类似 SocksCap64 那样的进程代理,也可以实现 SSTap 那样的全局 TUN/TAP 代理,和 Shadowsocks-Windows 那样的本地 Socks5,HTTP 和系统代理。至于连接至远程服务器的代理协议,目前 Netch 支持以下代理协议:Shadowsocks,VMess,Socks5,ShadowsocksR
|
||||||
@@ -20,16 +23,29 @@ Netch 是一款 Windows 平台的开源游戏加速工具,Netch 可以实现
|
|||||||
## 赞助商
|
## 赞助商
|
||||||
开发不易,以下为恰饭时间
|
开发不易,以下为恰饭时间
|
||||||
|
|
||||||
|
[](https://nyancat.info)
|
||||||
|
|
||||||
|
NyanCAT Network,全中转高质量节点,多条低倍率节点保证流量无忧,节点极低延迟涵盖五大洲。Netflix 视频党,游戏党,海外回国党必备,无需年付,月付 19 元起
|
||||||
|
[Telegram 群组](https://t.me/NyanCaaaat)
|
||||||
|
|
||||||
[](https://www.mansora.net/cart.php)
|
[](https://www.mansora.net/cart.php)
|
||||||
[](https://across-gfw.com/register?aff=4739)
|
[](https://geckoiplc.com/register?aff=4739)
|
||||||
|
|
||||||
这是我所选择的服务器提供商,IPLC 专线翻墙、稳定、速度快、价格便宜。欢迎大家使用我的推广链接前去注册:[这里](https://across-gfw.com/register?aff=4739)
|
这是我所选择的服务器提供商,IPLC 专线翻墙、稳定、速度快、价格便宜。欢迎大家使用我的推广链接前去注册:[这里](https://geckoiplc.com/register?aff=4739)
|
||||||
|
|
||||||
## 截图
|
## 新手入门
|
||||||
|
|
||||||

|
[新手入门教程](Basic-usage.md)
|
||||||
|
|
||||||
|
## 进阶用法
|
||||||
|
[进阶教程](https://github.com/NormanBB/NetchMode/blob/master/docs/README.zh-CN.md)
|
||||||
## 依赖
|
## 依赖
|
||||||
|
- [Visual C++ 运行库合集](https://www.google.com/search?q=Visual+C%2B%2B+%E8%BF%90%E8%A1%8C%E5%BA%93%E5%90%88%E9%9B%86)
|
||||||
|
- [.NET Framework 4.8](https://dotnet.microsoft.com/download/dotnet-framework/thank-you/net48-offline-installer)
|
||||||
|
- [TAP-Windows](https://build.openvpn.net/downloads/releases/tap-windows-9.21.2.exe)
|
||||||
|
|
||||||
|
## 语言支持
|
||||||
|
|
||||||
|
Netch 支持多种语言,在启动时会根据系统语言选择自身语言。如果需要手动切换语言,可以在启动时加入命令行参数,命令行参数为目前支持的语言代码,可以去 [NetchTranslation/i18n](https://github.com/NetchX/NetchTranslation/tree/master/i18n) 文件夹下查看外部支持的语言代码文件。Netch 目前内置 en-US,zh-CN,外置 zh-TW。欢迎大家为 [NetchTranslation](https://github.com/NetchX/NetchTranslation) 提供其他语言的翻译
|
||||||
|
|
||||||
|
|
||||||
- Microsoft Visual C++ 运行库合集
|
|
||||||
- [.NET Framework 4.8](https://dotnet.microsoft.com/download/dotnet-framework/net48)
|
|
||||||
BIN
docs/screenshots/Add-link.jpg
Normal file
BIN
docs/screenshots/Add-link.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 85 KiB |
BIN
docs/screenshots/Add-server.png
Normal file
BIN
docs/screenshots/Add-server.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
BIN
docs/sponsor/nyancat.jpg
Normal file
BIN
docs/sponsor/nyancat.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
2
modes
2
modes
Submodule modes updated: cff55c0541...6c2c744529
Reference in New Issue
Block a user