diff --git a/PortProxyGUI - Core31/PortProxyGUI - Core31.csproj b/PortProxyGUI - Core31/PortProxyGUI - Core31.csproj new file mode 100644 index 0000000..ac879a3 --- /dev/null +++ b/PortProxyGUI - Core31/PortProxyGUI - Core31.csproj @@ -0,0 +1,85 @@ + + + + WinExe + netcoreapp3.1 + true + app.manifest + zmjack + nstandard.net + A manager of the netsh interface portproxy which is to evaluate TCP/IP port redirect on windows. + https://github.com/zmjack/PortProxyGUI + https://github.com/zmjack/PortProxyGUI + git + portproxy TCP/IP redirector + LICENSE.md + Copyright © nstandard.net 2020 + 1.3.0 + icon.ico + PortProxyGUI + PortProxyGUI + + + + none + false + AnyCPU + + + + AnyCPU + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + + + + + + + + + + + + + + + Form + + + + + + Designer + + + + + + \ No newline at end of file diff --git a/PortProxyGUI - Core31/Program.cs b/PortProxyGUI - Core31/Program.cs new file mode 100644 index 0000000..02d1d48 --- /dev/null +++ b/PortProxyGUI - Core31/Program.cs @@ -0,0 +1,24 @@ +using PortProxyGUI.Data; +using System; +using System.Windows.Forms; + +namespace PortProxyGUI +{ + static class Program + { + public static readonly ApplicationDbScope SqliteDbScope = ApplicationDbScope.UseDefault(); + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + SqliteDbScope.Migrate(); + Application.SetHighDpiMode(HighDpiMode.SystemAware); + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new PortProxyGUI()); + } + } +} diff --git a/PortProxyGUI - Core31/app.manifest b/PortProxyGUI - Core31/app.manifest new file mode 100644 index 0000000..169e618 --- /dev/null +++ b/PortProxyGUI - Core31/app.manifest @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PortProxyGUI - Core31/icon.ico b/PortProxyGUI - Core31/icon.ico new file mode 100644 index 0000000..a4316bc Binary files /dev/null and b/PortProxyGUI - Core31/icon.ico differ diff --git a/PortProxyGUI/About.Designer.cs b/PortProxyGUI - NET35/About.Designer.cs similarity index 100% rename from PortProxyGUI/About.Designer.cs rename to PortProxyGUI - NET35/About.Designer.cs diff --git a/PortProxyGUI/About.cs b/PortProxyGUI - NET35/About.cs similarity index 93% rename from PortProxyGUI/About.cs rename to PortProxyGUI - NET35/About.cs index 8106a60..9f52ee9 100644 --- a/PortProxyGUI/About.cs +++ b/PortProxyGUI - NET35/About.cs @@ -1,5 +1,6 @@ using System; using System.Diagnostics; +using System.Drawing; using System.Windows.Forms; namespace PortProxyGUI @@ -11,7 +12,10 @@ namespace PortProxyGUI public About(PortProxyGUI portProxyGUI) { PortProxyGUI = portProxyGUI; + InitializeComponent(); + Font = Util.UiFont; + label_version.Text = label_version.Text + " v" + Application.ProductVersion; } diff --git a/PortProxyGUI/About.resx b/PortProxyGUI - NET35/About.resx similarity index 99% rename from PortProxyGUI/About.resx rename to PortProxyGUI - NET35/About.resx index 159d709..9184a85 100644 --- a/PortProxyGUI/About.resx +++ b/PortProxyGUI - NET35/About.resx @@ -112,19 +112,22 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + Microsoft YaHei UI, 9pt + 12, 101 320, 25 - + 0 @@ -138,7 +141,7 @@ linkLabel1 - System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -146,6 +149,9 @@ 3 + + Microsoft YaHei UI, 9pt + 12, 31 @@ -156,8 +162,8 @@ 1 - This is a free software. -You can browse the source code on GitHub. + It's open source software, +and you don't have to pay anything. MiddleCenter @@ -166,7 +172,7 @@ You can browse the source code on GitHub. label1 - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -174,6 +180,9 @@ You can browse the source code on GitHub. 2 + + Microsoft YaHei UI, 9pt + 12, 6 @@ -193,7 +202,7 @@ You can browse the source code on GitHub. label_version - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -201,6 +210,9 @@ You can browse the source code on GitHub. 1 + + Microsoft YaHei UI, 9pt + 12, 78 @@ -211,7 +223,7 @@ You can browse the source code on GitHub. 2 - Star me at: + Get software updates from GitHub, or star me: MiddleCenter @@ -220,7 +232,7 @@ You can browse the source code on GitHub. label_Star - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -228,7 +240,7 @@ You can browse the source code on GitHub. 0 - + True @@ -2395,7 +2407,7 @@ You can browse the source code on GitHub. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - + 3, 2, 3, 2 @@ -2409,6 +2421,6 @@ You can browse the source code on GitHub. About - System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 \ No newline at end of file diff --git a/PortProxyGUI/About.zh-CN.resx b/PortProxyGUI - NET35/About.zh-CN.resx similarity index 99% rename from PortProxyGUI/About.zh-CN.resx rename to PortProxyGUI - NET35/About.zh-CN.resx index 85bc6fe..c113133 100644 --- a/PortProxyGUI/About.zh-CN.resx +++ b/PortProxyGUI - NET35/About.zh-CN.resx @@ -112,19 +112,22 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + Microsoft YaHei UI, 9pt + 12, 101 320, 25 - + 0 @@ -138,7 +141,7 @@ linkLabel1 - System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -146,6 +149,9 @@ 3 + + Microsoft YaHei UI, 9pt + 12, 31 @@ -156,8 +162,8 @@ 1 - 这是款免费软件, -您可以在 GitHub 上浏览项目源代码。 + 这是款开源软件, +并且您无需为此支付任何费用。 MiddleCenter @@ -166,7 +172,7 @@ label1 - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -174,6 +180,9 @@ 2 + + Microsoft YaHei UI, 9pt + 12, 6 @@ -193,7 +202,7 @@ label_version - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -201,6 +210,9 @@ 1 + + Microsoft YaHei UI, 9pt + 12, 78 @@ -211,7 +223,7 @@ 2 - 点星鼓励: + 从 GitHub 获取软件更新,或给予星星鼓励: MiddleCenter @@ -220,7 +232,7 @@ label_Star - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -2395,7 +2407,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - + 3, 2, 3, 2 @@ -2403,12 +2415,12 @@ CenterScreen - 关于 + About About - System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 \ No newline at end of file diff --git a/PortProxyGUI - NET35/PortProxyGUI - NET35.csproj b/PortProxyGUI - NET35/PortProxyGUI - NET35 - UI.csproj similarity index 84% rename from PortProxyGUI - NET35/PortProxyGUI - NET35.csproj rename to PortProxyGUI - NET35/PortProxyGUI - NET35 - UI.csproj index e8442cb..5f2f474 100644 --- a/PortProxyGUI - NET35/PortProxyGUI - NET35.csproj +++ b/PortProxyGUI - NET35/PortProxyGUI - NET35 - UI.csproj @@ -65,7 +65,7 @@ false - true + false LocalIntranet @@ -95,56 +95,38 @@ - - About.cs + Form - - About.designer.cs + About.cs - - PortProxyGUI.cs + Form - - PortProxyGUI.designer.cs + PortProxyGUI.cs - - SetProxyForm.cs - Form - - - SetProxyForm.designer.cs - SetProxyForm.cs - - - About.resx + + Form + + + SetProxy.cs + + About.cs - - About.zh-CN.resx + About.cs - - PortProxyGUI.resx + PortProxyGUI.cs - - PortProxyGUI.zh-CN.resx + PortProxyGUI.cs - - SetProxyForm.resx - SetProxyForm.cs - - - SetProxyForm.zh-CN.resx - SetProxyForm.cs - ResXFileCodeGenerator Resources.Designer.cs @@ -155,6 +137,12 @@ Resources.resx True + + SetProxy.cs + + + SetProxy.cs + diff --git a/PortProxyGUI/PortProxyGUI.Designer.cs b/PortProxyGUI - NET35/PortProxyGUI.Designer.cs similarity index 91% rename from PortProxyGUI/PortProxyGUI.Designer.cs rename to PortProxyGUI - NET35/PortProxyGUI.Designer.cs index 715302f..672cbce 100644 --- a/PortProxyGUI/PortProxyGUI.Designer.cs +++ b/PortProxyGUI - NET35/PortProxyGUI.Designer.cs @@ -31,13 +31,13 @@ this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PortProxyGUI)); this.listViewProxies = new System.Windows.Forms.ListView(); - this.columnHeader1 = new System.Windows.Forms.ColumnHeader(); - this.columnHeader2 = new System.Windows.Forms.ColumnHeader(); - this.columnHeader3 = new System.Windows.Forms.ColumnHeader(); - this.columnHeader4 = new System.Windows.Forms.ColumnHeader(); - this.columnHeader5 = new System.Windows.Forms.ColumnHeader(); - this.columnHeader6 = new System.Windows.Forms.ColumnHeader(); - this.columnHeader7 = new System.Windows.Forms.ColumnHeader(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader6 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader7 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); this.toolStripMenuItem_Enable = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem_Disable = new System.Windows.Forms.ToolStripMenuItem(); @@ -74,6 +74,7 @@ this.listViewProxies.View = System.Windows.Forms.View.Details; this.listViewProxies.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listView1_ColumnClick); this.listViewProxies.DoubleClick += new System.EventHandler(this.listView1_DoubleClick); + this.listViewProxies.KeyUp += new System.Windows.Forms.KeyEventHandler(this.listViewProxies_KeyUp); this.listViewProxies.MouseUp += new System.Windows.Forms.MouseEventHandler(this.listView1_MouseUp); // // columnHeader1 @@ -90,6 +91,7 @@ // // columnHeader4 // + this.columnHeader4.Tag = ""; resources.ApplyResources(this.columnHeader4, "columnHeader4"); // // columnHeader5 @@ -98,6 +100,7 @@ // // columnHeader6 // + this.columnHeader6.Tag = ""; resources.ApplyResources(this.columnHeader6, "columnHeader6"); // // columnHeader7 @@ -173,7 +176,6 @@ // // imageListProxies // - this.imageListProxies.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.imageListProxies.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageListProxies.ImageStream"))); this.imageListProxies.TransparentColor = System.Drawing.Color.Transparent; this.imageListProxies.Images.SetKeyName(0, "disable.png"); diff --git a/PortProxyGUI/PortProxyGUI.cs b/PortProxyGUI - NET35/PortProxyGUI.cs similarity index 82% rename from PortProxyGUI/PortProxyGUI.cs rename to PortProxyGUI - NET35/PortProxyGUI.cs index e732df9..5f88365 100644 --- a/PortProxyGUI/PortProxyGUI.cs +++ b/PortProxyGUI - NET35/PortProxyGUI.cs @@ -1,6 +1,7 @@ using NStandard; using System; using System.Data; +using System.Drawing; using System.Linq; using System.Windows.Forms; using static System.Windows.Forms.ListViewItem; @@ -9,13 +10,15 @@ namespace PortProxyGUI { public partial class PortProxyGUI : Form { - public SetProxyForm SetProxyForm; + public SetProxy SetProxyForm; public About AboutForm; private ListViewColumnSorter lvwColumnSorter; public PortProxyGUI() { InitializeComponent(); + Font = Util.UiFont; + lvwColumnSorter = new ListViewColumnSorter(); listViewProxies.ListViewItemSorter = lvwColumnSorter; } @@ -44,7 +47,7 @@ namespace PortProxyGUI ListenPort = listenPort, ConnectTo = subItems[4].Text.Trim(), ConnectPort = connectPort, - Note = subItems[6].Text.Trim(), + Comment = subItems[6].Text.Trim(), Group = item.Group?.Header.Trim(), }; return rule; @@ -98,7 +101,7 @@ namespace PortProxyGUI foreach (var item in items) listViewProxies.Items.Remove(item); } - private void SetProxyForUpdate(SetProxyForm form) + private void SetProxyForUpdate(SetProxy form) { var item = listViewProxies.SelectedItems.OfType().FirstOrDefault(); try @@ -116,9 +119,14 @@ namespace PortProxyGUI private void InitProxyGroups(Data.Rule[] rules) { listViewProxies.Groups.Clear(); - var groups = rules.GroupBy(x => x.Group).Select(x => new ListViewGroup(x.Key)).ToArray(); + var groups = ( + from g in rules.GroupBy(x => x.Group) + let name = g.Key + where !name.IsNullOrWhiteSpace() + orderby name + select new ListViewGroup(name) + ).ToArray(); listViewProxies.Groups.AddRange(groups); - listViewProxies.ShowGroups = groups.Any(x => !x.Name.IsNullOrEmpty()); } private void InitProxyItems(Data.Rule[] rules, Data.Rule[] proxies) @@ -129,25 +137,40 @@ namespace PortProxyGUI var imageIndex = proxies.Any(p => p.EqualsWithKeys(rule)) ? 1 : 0; var group = listViewProxies.Groups.OfType().FirstOrDefault(x => x.Header == rule.Group); - var item = new ListViewItem - { - ImageIndex = imageIndex, - Tag = rule.Id, - Group = group, - }; - item.SubItems.AddRange(new[] - { - rule.Type, - rule.ListenOn, - rule.ListenPort.ToString(), - rule.ConnectTo, - rule.ConnectPort.ToString(), - rule.Note ?? "", - }); + var item = new ListViewItem(); + UpdateListViewItem(item, rule, imageIndex); listViewProxies.Items.Add(item); } } + public void UpdateListViewItem(ListViewItem item, Data.Rule rule, int imageIndex) + { + item.ImageIndex = imageIndex; + item.Tag = rule.Id; + item.SubItems.Clear(); + item.SubItems.AddRange(new[] + { + new ListViewSubItem(item, rule.Type), + new ListViewSubItem(item, rule.ListenOn), + new ListViewSubItem(item, rule.ListenPort.ToString()) { Tag = "Number" }, + new ListViewSubItem(item, rule.ConnectTo), + new ListViewSubItem(item, rule.ConnectPort.ToString ()) { Tag = "Number" }, + new ListViewSubItem(item, rule.Comment ?? ""), + }); + + if (rule.Group.IsNullOrWhiteSpace()) item.Group = null; + else + { + var group = listViewProxies.Groups.OfType().FirstOrDefault(x => x.Header == rule.Group); + if (group == null) + { + group = new ListViewGroup(rule.Group); + listViewProxies.Groups.Add(group); + } + item.Group = group; + } + } + public void RefreshProxyList() { var proxies = CmdUtil.GetProxies(); @@ -182,13 +205,13 @@ namespace PortProxyGUI case ToolStripMenuItem item when item == toolStripMenuItem_Disable: DisableSelectedProxies(); break; case ToolStripMenuItem item when item == toolStripMenuItem_New: - if (SetProxyForm == null) SetProxyForm = new SetProxyForm(this); + if (SetProxyForm == null) SetProxyForm = new SetProxy(this); SetProxyForm.UseNormalMode(); SetProxyForm.ShowDialog(); break; case ToolStripMenuItem item when item == toolStripMenuItem_Modify: - if (SetProxyForm == null) SetProxyForm = new SetProxyForm(this); + if (SetProxyForm == null) SetProxyForm = new SetProxy(this); SetProxyForUpdate(SetProxyForm); SetProxyForm.ShowDialog(); break; @@ -230,7 +253,7 @@ namespace PortProxyGUI var selectAny = _sender.SelectedItems.OfType().Any(); if (selectAny) { - if (SetProxyForm == null) SetProxyForm = new SetProxyForm(this); + if (SetProxyForm == null) SetProxyForm = new SetProxy(this); SetProxyForUpdate(SetProxyForm); SetProxyForm.ShowDialog(); } @@ -263,5 +286,12 @@ namespace PortProxyGUI listViewProxies.Sort(); } + private void listViewProxies_KeyUp(object sender, KeyEventArgs e) + { + if (sender is ListView) + { + if (e.KeyCode == Keys.Delete) DeleteSelectedProxies(); + } + } } } diff --git a/PortProxyGUI/PortProxyGUI.resx b/PortProxyGUI - NET35/PortProxyGUI.resx similarity index 95% rename from PortProxyGUI/PortProxyGUI.resx rename to PortProxyGUI - NET35/PortProxyGUI.resx index 01b61ca..760c28a 100644 --- a/PortProxyGUI/PortProxyGUI.resx +++ b/PortProxyGUI - NET35/PortProxyGUI.resx @@ -1,4 +1,64 @@ - + + + @@ -52,15 +112,15 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + 24 @@ -95,15 +155,103 @@ 100 - Note + Comment 104 - + 17, 17 - + + + 155, 176 + + + contextMenuStrip1 + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Fill + + + Microsoft YaHei UI, 9pt + + + 0, 0 + + + 4, 3, 4, 3 + + + 704, 421 + + + 182, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADc + CAAAAk1TRnQBSQFMAgEBAgEAASABAQEgAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wQACvQ0AAH/AZQKFwGU + Af8CAAH/AboKlQG6Af8iAAGUDBcBlAIAAboMlQG6IgAOFwIADpUiAAQXARYB9AL/AfQBFgQXAgAOlSIA + AxcBFgH/Ab0BFgGUAfQB/wEWAxcCAAWVArsHlSIAAxcB9AG9AhcBlAH/AvQDFwIABJUBugL/AcEGlSIA + AxcB/wEWARcBlAH/ApQB/wMXAgADlQG6Af8BwQG6Af8BwQWVIgADFwH/ApQB/wGUARcBFgH/AxcCAAOV + Af8BwQKVAboB/wHBBJUiAAMXAvQB/wGUAhcBvQH0AxcCAAiVAboB/wHBA5UiAAMXARYB/wH0AZQBFgG9 + Af8BFgMXAgAJlQG6Af8DlSIABBcBFgH0Av8B9AEWBBcB/wEADpUB/yEADhcB/wEADpUB/yEAAZQMFwGU + AgABugyVAboiAAH/AZQKFwGUAf8CAAH/AboKlQG6Af80AAH/CPQkAAFCAU0BPgcAAT4DAAEoAwABQAMA + ARADAAEBAQABAQUAAYAXAAP/AQAB4AEHAv8EAAGAAQEBgAEBBAABgAEBAYABAQQAAYABAQGAAQEEAAGA + AQEBgAEBBAABgAEBAYABAQQAAYABAQGAAQEEAAGAAQEBgAEBBAABgAEBAYABAQQAAYABAQGAAQEEAAGA + AQEBgAEBBAABgAEAAYAFAAGAAQABgAUAAYABAQGAAQEEAAGAAQEBgAEBBAAC/wHgAQ8EAAs= + + + + 0 + + + listViewProxies + + + System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + 154, 22 @@ -155,99 +303,14 @@ About - - 155, 176 - - - contextMenuStrip1 - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - Fill - - - 0, 0 - - - 4, 3, 4, 3 - - - 284, 261 - - - 182, 17 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs - LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu - SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA3AgAAAJNU0Z0AUkBTAIBAQIB - AAGUAQABlAEAARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMAAUADAAEQAwABAQEAAQgG - AAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEAAfABygGmAQABMwUAATMB - AAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEAAYABfAH/AQACUAH/AQAB - kwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFmAwABmQMAAcwCAAEzAwAC - MwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZAgABZgHMAgABZgH/AgAB - mQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFmAgABzAGZAgACzAIAAcwB - /wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEzAQABmQEAATMBAAHMAQAB - MwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFmAgABMwFmATMBAAEzAmYB - AAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFmAQABMwKZAQABMwGZAcwB - AAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEAATMBzAH/AQABMwH/ATMB - AAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFmAQABZgEAAWYBAAGZAQAB - ZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFmATMBzAEAAWYBMwH/AQAC - ZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFmAQABZgKZAQABZgGZAcwB - AAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEAAWYB/wIAAWYB/wEzAQAB - ZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZAQABmQEAAZkBAAHMAQAB - mQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEzAQABmQEzAWYBAAGZAWYB - mQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/AQABmQHMAgABmQHMATMB - AAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEAAZkBzAFmAQABmQH/AZkB - AAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHMAQABzAEAAZkBMwIAAcwC - MwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFmATMBAAGZAmYBAAHMAWYB - mQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZAQABzAGZAcwBAAHMAZkB - /wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/ATMBAAGZAf8BZgEAAcwB - /wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHMATMCAAH/AjMBAAH/ATMB - ZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJmAQAB/wFmAZkBAAH/AWYB - zAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHMAQAB/wGZAf8BAAH/AcwC - AAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEAAcwB/wFmAQAC/wGZAQAC - /wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEAASEBAAGlAQADXwEAA3cB - AAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7Af8BAAGkAqABAAOAAwAB - /wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/8EAAr0NAAB/wGUChcBlAH/AgAB/wG6CpUBugH/IgAB - lAwXAZQCAAG6DJUBuiIADhcCAA6VIgAEFwEWAfQC/wH0ARYEFwIADpUiAAMXARYB/wG9ARYBlAH0Af8B - FgMXAgAFlQK7B5UiAAMXAfQBvQIXAZQB/wL0AxcCAASVAboC/wHBBpUiAAMXAf8BFgEXAZQB/wKUAf8D - FwIAA5UBugH/AcEBugH/AcEFlSIAAxcB/wKUAf8BlAEXARYB/wMXAgADlQH/AcEClQG6Af8BwQSVIgAD - FwL0Af8BlAIXAb0B9AMXAgAIlQG6Af8BwQOVIgADFwEWAf8B9AGUARYBvQH/ARYDFwIACZUBugH/A5Ui - AAQXARYB9AL/AfQBFgQXAf8BAA6VAf8hAA4XAf8BAA6VAf8hAAGUDBcBlAIAAboMlQG6IgAB/wGUChcB - lAH/AgAB/wG6CpUBugH/NAAB/wj0JAABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD - /wEAAeABBwL/BAABgAEBAYABAQQAAYABAQGAAQEEAAGAAQEBgAEBBAABgAEBAYABAQQAAYABAQGAAQEE - AAGAAQEBgAEBBAABgAEBAYABAQQAAYABAQGAAQEEAAGAAQEBgAEBBAABgAEBAYABAQQAAYABAAGABQAB - gAEAAYAFAAGAAQEBgAEBBAABgAEBAYABAQQAAv8B4AEPBAAL - - - - 0 - - - listViewProxies - - - System.Windows.Forms.ListView, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - - + True - 7, 17 + 6, 12 - 284, 261 + 704, 421 @@ -2420,114 +2483,114 @@ columnHeader1 - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 columnHeader2 - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 columnHeader3 - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 columnHeader4 - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 columnHeader5 - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 columnHeader6 - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 columnHeader7 - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 toolStripMenuItem_Enable - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 toolStripMenuItem_Disable - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 toolStripSeparator3 - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 toolStripMenuItem_Refresh - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 toolStripSeparator2 - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 toolStripMenuItem_New - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 toolStripMenuItem_Modify - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 toolStripMenuItem_Delete - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 toolStripSeparator1 - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 toolStripMenuItem_About - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 imageListProxies - System.Windows.Forms.ImageList, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ImageList, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 PortProxyGUI - System.Windows.Forms.Form, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 \ No newline at end of file diff --git a/PortProxyGUI/PortProxyGUI.zh-CN.resx b/PortProxyGUI - NET35/PortProxyGUI.zh-CN.resx similarity index 99% rename from PortProxyGUI/PortProxyGUI.zh-CN.resx rename to PortProxyGUI - NET35/PortProxyGUI.zh-CN.resx index 3d63e63..6bc18b9 100644 --- a/PortProxyGUI/PortProxyGUI.zh-CN.resx +++ b/PortProxyGUI - NET35/PortProxyGUI.zh-CN.resx @@ -112,15 +112,15 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + 24 @@ -143,18 +143,24 @@ 100 - 连接地址 + 转发地址 140 - 连接端口 + 转发端口 100 - + + 备注 + + + 104 + + 17, 17 @@ -165,30 +171,33 @@ contextMenuStrip1 - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + Fill + + Microsoft YaHei UI, 9pt + 0, 0 - 3, 2, 3, 2 + 4, 3, 4, 3 - 624, 361 + 704, 421 182, 17 - AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADc - CAAAAk1TRnQBSQFMAgEBAgEAAUABAAFYAQABEAEAARABAAT/AQkBEAj/AUIBTQE2AQQGAAE2AQQCAAEo + CAAAAk1TRnQBSQFMAgEBAgEAASABAQEkAQEBEAEAARABAAT/AQkBEAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -235,7 +244,7 @@ listViewProxies - System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -258,6 +267,15 @@ 151, 6 + + 154, 22 + + + 刷新 (&F) + + + 151, 6 + 154, 22 @@ -279,15 +297,6 @@ 151, 6 - - 154, 22 - - - 刷新 (&F) - - - 151, 6 - 154, 22 @@ -301,7 +310,7 @@ 6, 12 - 624, 361 + 704, 421 @@ -2462,7 +2471,7 @@ - 3, 2, 3, 2 + 4, 3, 4, 3 CenterScreen @@ -2474,112 +2483,37 @@ columnHeader1 - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 columnHeader2 - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 columnHeader3 - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 columnHeader4 - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 columnHeader5 - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 columnHeader6 - System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripMenuItem_Enable - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripMenuItem_Disable - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator3 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripMenuItem_New - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripMenuItem_Modify - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripMenuItem_Delete - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator1 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripMenuItem_Refresh - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripSeparator2 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripMenuItem_About - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - imageListProxies - - - System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - PortProxyGUI - - - System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 备注 + System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 columnHeader7 @@ -2587,4 +2521,76 @@ System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + toolStripMenuItem_Enable + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripMenuItem_Disable + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator3 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripMenuItem_Refresh + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator2 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripMenuItem_New + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripMenuItem_Modify + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripMenuItem_Delete + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripSeparator1 + + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + toolStripMenuItem_About + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + imageListProxies + + + System.Windows.Forms.ImageList, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + PortProxyGUI + + + System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/PortProxyGUI - NET35/Program.cs b/PortProxyGUI - NET35/Program.cs index 2e2c332..8a8a627 100644 --- a/PortProxyGUI - NET35/Program.cs +++ b/PortProxyGUI - NET35/Program.cs @@ -1,5 +1,6 @@ using PortProxyGUI.Data; using System; +using System.Drawing; using System.Windows.Forms; namespace PortProxyGUI diff --git a/PortProxyGUI - NET35/Properties/AssemblyInfo.cs b/PortProxyGUI - NET35/Properties/AssemblyInfo.cs index 938d4a3..4e0baa1 100644 --- a/PortProxyGUI - NET35/Properties/AssemblyInfo.cs +++ b/PortProxyGUI - NET35/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0.0")] -[assembly: AssemblyFileVersion("1.2.0.0")] +[assembly: AssemblyVersion("1.3.0.0")] +[assembly: AssemblyFileVersion("1.3.0.0")] diff --git a/PortProxyGUI/SetProxyForm.Designer.cs b/PortProxyGUI - NET35/SetProxy.Designer.cs similarity index 86% rename from PortProxyGUI/SetProxyForm.Designer.cs rename to PortProxyGUI - NET35/SetProxy.Designer.cs index 6eaaab7..1864433 100644 --- a/PortProxyGUI/SetProxyForm.Designer.cs +++ b/PortProxyGUI - NET35/SetProxy.Designer.cs @@ -1,6 +1,6 @@ namespace PortProxyGUI { - partial class SetProxyForm + partial class SetProxy { /// /// Required designer variable. @@ -28,7 +28,7 @@ /// private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SetProxyForm)); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SetProxy)); this.label_ListenOn = new System.Windows.Forms.Label(); this.textBox_ListenOn = new System.Windows.Forms.TextBox(); this.label_ConnectTo = new System.Windows.Forms.Label(); @@ -40,9 +40,9 @@ this.label_ListenPort = new System.Windows.Forms.Label(); this.textBox_ListenPort = new System.Windows.Forms.TextBox(); this.comboBox_Type = new System.Windows.Forms.ComboBox(); - this.label_Note = new System.Windows.Forms.Label(); - this.textBox_Note = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); + this.label_Comment = new System.Windows.Forms.Label(); + this.textBox_Comment = new System.Windows.Forms.TextBox(); + this.label_Group = new System.Windows.Forms.Label(); this.comboBox_Group = new System.Windows.Forms.ComboBox(); this.SuspendLayout(); // @@ -110,20 +110,20 @@ resources.GetString("comboBox_Type.Items4")}); this.comboBox_Type.Name = "comboBox_Type"; // - // label_Note + // label_Comment // - resources.ApplyResources(this.label_Note, "label_Note"); - this.label_Note.Name = "label_Note"; + resources.ApplyResources(this.label_Comment, "label_Comment"); + this.label_Comment.Name = "label_Comment"; // // textBox_Note // - resources.ApplyResources(this.textBox_Note, "textBox_Note"); - this.textBox_Note.Name = "textBox_Note"; + resources.ApplyResources(this.textBox_Comment, "textBox_Note"); + this.textBox_Comment.Name = "textBox_Note"; // - // label1 + // label_Group // - resources.ApplyResources(this.label1, "label1"); - this.label1.Name = "label1"; + resources.ApplyResources(this.label_Group, "label_Group"); + this.label_Group.Name = "label_Group"; // // comboBox_Group // @@ -131,15 +131,15 @@ this.comboBox_Group.FormattingEnabled = true; this.comboBox_Group.Name = "comboBox_Group"; // - // SetProxyForm + // SetProxy // this.AcceptButton = this.button_Set; resources.ApplyResources(this, "$this"); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.comboBox_Group); - this.Controls.Add(this.label1); - this.Controls.Add(this.textBox_Note); - this.Controls.Add(this.label_Note); + this.Controls.Add(this.label_Group); + this.Controls.Add(this.textBox_Comment); + this.Controls.Add(this.label_Comment); this.Controls.Add(this.comboBox_Type); this.Controls.Add(this.textBox_ListenPort); this.Controls.Add(this.label_ListenPort); @@ -154,7 +154,7 @@ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximizeBox = false; this.MinimizeBox = false; - this.Name = "SetProxyForm"; + this.Name = "SetProxy"; this.TopMost = true; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SetProxyForm_FormClosing); this.Load += new System.EventHandler(this.SetProxyForm_Load); @@ -176,9 +176,9 @@ private System.Windows.Forms.Label label_ListenPort; private System.Windows.Forms.TextBox textBox_ListenPort; private System.Windows.Forms.ComboBox comboBox_Type; - private System.Windows.Forms.Label label_Note; - private System.Windows.Forms.TextBox textBox_Note; - private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label_Comment; + private System.Windows.Forms.TextBox textBox_Comment; + private System.Windows.Forms.Label label_Group; private System.Windows.Forms.ComboBox comboBox_Group; } } \ No newline at end of file diff --git a/PortProxyGUI/SetProxyForm.cs b/PortProxyGUI - NET35/SetProxy.cs similarity index 77% rename from PortProxyGUI/SetProxyForm.cs rename to PortProxyGUI - NET35/SetProxy.cs index c0b045e..8a32394 100644 --- a/PortProxyGUI/SetProxyForm.cs +++ b/PortProxyGUI - NET35/SetProxy.cs @@ -1,13 +1,14 @@ using NStandard; using PortProxyGUI.Data; using System; +using System.Drawing; using System.Linq; using System.Text.RegularExpressions; using System.Windows.Forms; namespace PortProxyGUI { - public partial class SetProxyForm : Form + public partial class SetProxy : Form { public readonly PortProxyGUI ParentWindow; private string AutoTypeString { get; } @@ -16,11 +17,21 @@ namespace PortProxyGUI private ListViewItem _listViewItem; private Rule _itemRule; - public SetProxyForm(PortProxyGUI parent) + public SetProxy(PortProxyGUI parent) { ParentWindow = parent; + InitializeComponent(); + Font = Util.UiFont; + AutoTypeString = comboBox_Type.Text = comboBox_Type.Items.OfType().First(); + var groupNames = ( + from g in parent.listViewProxies.Groups.OfType() + let header = g.Header + where !header.IsNullOrWhiteSpace() + select header + ).ToArray(); + comboBox_Group.Items.AddRange(groupNames); } public void UseNormalMode() @@ -36,7 +47,7 @@ namespace PortProxyGUI textBox_ListenPort.Text = ""; textBox_ConnectTo.Text = ""; textBox_ConnectPort.Text = ""; - textBox_Note.Text = ""; + textBox_Comment.Text = ""; } public void UseUpdateMode(ListViewItem item, Rule rule) @@ -53,7 +64,7 @@ namespace PortProxyGUI textBox_ListenPort.Text = rule.ListenPort.ToString(); textBox_ConnectTo.Text = rule.ConnectTo; textBox_ConnectPort.Text = rule.ConnectPort.ToString(); - textBox_Note.Text = rule.Note; + textBox_Comment.Text = rule.Comment; } private bool IsIPv6(string ip) @@ -90,7 +101,7 @@ namespace PortProxyGUI ListenPort = listenPort, ConnectTo = textBox_ConnectTo.Text.Trim(), ConnectPort = connectPort, - Note = textBox_Note.Text.Trim(), + Comment = textBox_Comment.Text.Trim(), Group = comboBox_Group.Text.Trim(), }; @@ -111,32 +122,13 @@ namespace PortProxyGUI CmdUtil.AddOrUpdateProxy(rule); Program.SqliteDbScope.Add(rule); - _listViewItem.ImageIndex = 1; - var subItems = _listViewItem.SubItems; - subItems[1].Text = rule.Type; - subItems[2].Text = rule.ListenOn; - subItems[3].Text = rule.ListenPort.ToString(); - subItems[4].Text = rule.ConnectTo; - subItems[5].Text = rule.ConnectPort.ToString(); - subItems[6].Text = rule.Note; - - if (rule.Group == null) _listViewItem.Group = null; - else - { - var listView = ParentWindow.listViewProxies; - var group = listView.Groups.OfType().FirstOrDefault(x => x.Name == rule.Group); - if (group == null) - { - group = new ListViewGroup(rule.Group); - listView.Groups.Add(group); - } - - _listViewItem.Group = group; - } + ParentWindow.UpdateListViewItem(_listViewItem, rule, 1); } else { CmdUtil.AddOrUpdateProxy(rule); + Program.SqliteDbScope.Add(rule); + ParentWindow.RefreshProxyList(); } diff --git a/PortProxyGUI/SetProxyForm.zh-CN.resx b/PortProxyGUI - NET35/SetProxy.resx similarity index 97% rename from PortProxyGUI/SetProxyForm.zh-CN.resx rename to PortProxyGUI - NET35/SetProxy.resx index 59596b9..a5a6423 100644 --- a/PortProxyGUI/SetProxyForm.zh-CN.resx +++ b/PortProxyGUI - NET35/SetProxy.resx @@ -122,11 +122,18 @@ True + + Microsoft YaHei UI, 9pt + - 12, 41 + 14, 57 + + + + 4, 0, 4, 0 - 59, 12 + 60, 17 0 @@ -146,15 +153,17 @@ 14 - - 83, 38 + + Microsoft YaHei UI, 9pt + + + 97, 54 - - 3, 2, 3, 2 + 4, 3, 4, 3 - 126, 21 + 146, 23 0 @@ -180,11 +189,17 @@ True + + Microsoft YaHei UI, 9pt + - 12, 66 + 14, 86 + + + 4, 0, 4, 0 - 65, 12 + 71, 17 0 @@ -204,14 +219,17 @@ 12 + + Microsoft YaHei UI, 9pt + - 83, 63 + 97, 83 - 3, 2, 3, 2 + 4, 3, 4, 3 - 126, 21 + 146, 23 3 @@ -231,14 +249,17 @@ 11 + + Microsoft YaHei UI, 9pt + - 256, 63 + 299, 83 - 3, 2, 3, 2 + 4, 3, 4, 3 - 73, 21 + 84, 23 4 @@ -261,11 +282,17 @@ True + + Microsoft YaHei UI, 9pt + - 215, 66 + 251, 86 + + + 4, 0, 4, 0 - 29, 12 + 32, 17 0 @@ -285,11 +312,17 @@ 9 + + Microsoft YaHei UI, 9pt + - 217, 98 + 258, 122 + + + 4, 4, 4, 4 - 112, 21 + 125, 32 6 @@ -312,11 +345,17 @@ True + + Microsoft YaHei UI, 9pt + - 12, 9 + 14, 15 + + + 4, 0, 4, 0 - 29, 12 + 36, 17 0 @@ -339,11 +378,17 @@ True + + Microsoft YaHei UI, 9pt + - 215, 41 + 251, 57 + + + 4, 0, 4, 0 - 29, 12 + 32, 17 0 @@ -363,14 +408,17 @@ 6 + + Microsoft YaHei UI, 9pt + - 256, 38 + 299, 54 - 3, 2, 3, 2 + 4, 3, 4, 3 - 73, 21 + 84, 23 2 @@ -390,8 +438,8 @@ 5 - - Popup + + Microsoft YaHei UI, 9pt (Auto) @@ -409,13 +457,13 @@ v6tov6 - 83, 6 + 97, 12 - 3, 2, 3, 2 + 4, 3, 4, 3 - 126, 20 + 146, 25 5 @@ -432,44 +480,53 @@ 4 - + True - + + Microsoft YaHei UI, 9pt + + NoControl - - 12, 102 + + 14, 130 - - 29, 12 + + 4, 0, 4, 0 - + + 64, 17 + + 7 - - Note + + Comment - - label_Note + + label_Comment - + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - + 3 + + Microsoft YaHei UI, 9pt + - 83, 98 + 97, 127 - 3, 2, 3, 2 + 4, 3, 4, 3 - 126, 21 + 146, 23 8 @@ -489,47 +546,53 @@ 2 - + True - + + Microsoft YaHei UI, 9pt + + NoControl - - 215, 9 + + 251, 15 - - 35, 12 + + 4, 0, 4, 0 - + + 45, 17 + + 9 - + Group - - label1 + + label_Group - + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - + 1 - - Popup + + Microsoft YaHei UI, 9pt - 256, 6 + 299, 12 - 3, 2, 3, 2 + 4, 3, 4, 3 - 73, 20 + 84, 25 10 @@ -553,7 +616,7 @@ 6, 12 - 344, 131 + 398, 169 @@ -2714,7 +2777,7 @@ - 3, 2, 3, 2 + 4, 3, 4, 3 Manual @@ -2723,7 +2786,7 @@ Set Proxy - SetProxyForm + SetProxy System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 diff --git a/PortProxyGUI/SetProxyForm.resx b/PortProxyGUI - NET35/SetProxy.zh-CN.resx similarity index 97% rename from PortProxyGUI/SetProxyForm.resx rename to PortProxyGUI - NET35/SetProxy.zh-CN.resx index 59596b9..10b6dad 100644 --- a/PortProxyGUI/SetProxyForm.resx +++ b/PortProxyGUI - NET35/SetProxy.zh-CN.resx @@ -122,17 +122,24 @@ True + + Microsoft YaHei UI, 9pt + - 12, 41 + 14, 57 + + + + 4, 0, 4, 0 - 59, 12 + 60, 17 0 - Listen on + 监听地址 label_ListenOn @@ -146,15 +153,17 @@ 14 - - 83, 38 + + Microsoft YaHei UI, 9pt + + + 97, 54 - - 3, 2, 3, 2 + 4, 3, 4, 3 - 126, 21 + 146, 23 0 @@ -180,17 +189,23 @@ True + + Microsoft YaHei UI, 9pt + - 12, 66 + 14, 86 + + + 4, 0, 4, 0 - 65, 12 + 71, 17 0 - Connect to + 转发地址 label_ConnectTo @@ -204,14 +219,17 @@ 12 + + Microsoft YaHei UI, 9pt + - 83, 63 + 97, 83 - 3, 2, 3, 2 + 4, 3, 4, 3 - 126, 21 + 146, 23 3 @@ -231,14 +249,17 @@ 11 + + Microsoft YaHei UI, 9pt + - 256, 63 + 299, 83 - 3, 2, 3, 2 + 4, 3, 4, 3 - 73, 21 + 84, 23 4 @@ -261,17 +282,23 @@ True + + Microsoft YaHei UI, 9pt + - 215, 66 + 251, 86 + + + 4, 0, 4, 0 - 29, 12 + 32, 17 0 - Port + 端口 label_ConnectPort @@ -285,17 +312,23 @@ 9 + + Microsoft YaHei UI, 9pt + - 217, 98 + 258, 122 + + + 4, 4, 4, 4 - 112, 21 + 125, 32 6 - Set + 设置 button_Set @@ -312,17 +345,23 @@ True + + Microsoft YaHei UI, 9pt + - 12, 9 + 14, 15 + + + 4, 0, 4, 0 - 29, 12 + 36, 17 0 - Type + 类型 label_Type @@ -339,17 +378,23 @@ True + + Microsoft YaHei UI, 9pt + - 215, 41 + 251, 57 + + + 4, 0, 4, 0 - 29, 12 + 32, 17 0 - Port + 端口 label_ListenPort @@ -363,14 +408,17 @@ 6 + + Microsoft YaHei UI, 9pt + - 256, 38 + 299, 54 - 3, 2, 3, 2 + 4, 3, 4, 3 - 73, 21 + 84, 23 2 @@ -390,11 +438,11 @@ 5 - - Popup + + Microsoft YaHei UI, 9pt - (Auto) + (自动) v4tov4 @@ -409,13 +457,13 @@ v6tov6 - 83, 6 + 97, 12 - 3, 2, 3, 2 + 4, 3, 4, 3 - 126, 20 + 146, 25 5 @@ -432,44 +480,53 @@ 4 - + True - + + Microsoft YaHei UI, 9pt + + NoControl - - 12, 102 + + 14, 130 - - 29, 12 + + 4, 0, 4, 0 - + + 64, 17 + + 7 - - Note + + 备注 - - label_Note + + label_Comment - + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - + 3 + + Microsoft YaHei UI, 9pt + - 83, 98 + 97, 127 - 3, 2, 3, 2 + 4, 3, 4, 3 - 126, 21 + 146, 23 8 @@ -489,47 +546,53 @@ 2 - + True - + + Microsoft YaHei UI, 9pt + + NoControl - - 215, 9 + + 251, 15 - - 35, 12 + + 4, 0, 4, 0 - + + 45, 17 + + 9 - - Group + + 分组 - - label1 + + label_Group - + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - + 1 - - Popup + + Microsoft YaHei UI, 9pt - 256, 6 + 299, 12 - 3, 2, 3, 2 + 4, 3, 4, 3 - 73, 20 + 84, 25 10 @@ -546,14 +609,14 @@ 0 - + True - + 6, 12 - 344, 131 + 398, 169 @@ -2714,7 +2777,7 @@ - 3, 2, 3, 2 + 4, 3, 4, 3 Manual @@ -2723,7 +2786,7 @@ Set Proxy - SetProxyForm + SetProxy System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 diff --git a/PortProxyGUI - NET35/app.manifest b/PortProxyGUI - NET35/app.manifest index 06dba89..f6a3bf4 100644 --- a/PortProxyGUI - NET35/app.manifest +++ b/PortProxyGUI - NET35/app.manifest @@ -19,8 +19,8 @@ - + diff --git a/PortProxyGUI - NET45/PortProxyGUI - NET45.csproj b/PortProxyGUI - NET45/PortProxyGUI - NET45.csproj index 1b9fd51..5509a2b 100644 --- a/PortProxyGUI - NET45/PortProxyGUI - NET45.csproj +++ b/PortProxyGUI - NET45/PortProxyGUI - NET45.csproj @@ -68,7 +68,7 @@ false - true + false LocalIntranet @@ -100,55 +100,46 @@ - + About.cs Form - - About.designer.cs - About.cs + + About.Designer.cs - + PortProxyGUI.cs Form - - PortProxyGUI.designer.cs - PortProxyGUI.cs + + PortProxyGUI.Designer.cs - - SetProxyForm.cs + + SetProxy.cs Form - - SetProxyForm.designer.cs - SetProxyForm.cs + + SetProxy.Designer.cs - + About.resx - About.cs - + About.zh-CN.resx - About.cs - + PortProxyGUI.resx - PortProxyGUI.cs - + PortProxyGUI.zh-CN.resx - PortProxyGUI.cs - - SetProxyForm.resx - SetProxyForm.cs + + SetProxy.resx - - SetProxyForm.zh-CN.resx - SetProxyForm.cs + + SetProxy.zh-CN.resx ResXFileCodeGenerator diff --git a/PortProxyGUI - NET45/Properties/AssemblyInfo.cs b/PortProxyGUI - NET45/Properties/AssemblyInfo.cs index 938d4a3..4e0baa1 100644 --- a/PortProxyGUI - NET45/Properties/AssemblyInfo.cs +++ b/PortProxyGUI - NET45/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0.0")] -[assembly: AssemblyFileVersion("1.2.0.0")] +[assembly: AssemblyVersion("1.3.0.0")] +[assembly: AssemblyFileVersion("1.3.0.0")] diff --git a/PortProxyGUI - NET45/app.manifest b/PortProxyGUI - NET45/app.manifest index 06dba89..f6a3bf4 100644 --- a/PortProxyGUI - NET45/app.manifest +++ b/PortProxyGUI - NET45/app.manifest @@ -19,8 +19,8 @@ - + diff --git a/PortProxyGUI.Shared/Data/ApplicationDbMigrationUtil.cs b/PortProxyGUI.Shared/Data/ApplicationDbMigrationUtil.cs index 07f3e29..41c6b9a 100644 --- a/PortProxyGUI.Shared/Data/ApplicationDbMigrationUtil.cs +++ b/PortProxyGUI.Shared/Data/ApplicationDbMigrationUtil.cs @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Reflection; +using System.Windows.Forms; namespace PortProxyGUI.Data { @@ -29,8 +31,20 @@ namespace PortProxyGUI.Data { var migration = GetLastMigration(); var assemblyVersion = Assembly.GetExecutingAssembly().GetName().Version; + if (new Version(migration.ProductVersion) > assemblyVersion) - throw new InvalidOperationException("The current software version cannot use the configuration. Please download the latest version (https://github.com/zmjack/PortProxyGUI)."); + { + if (MessageBox.Show(@"The current software version cannot use the configuration. + +You need to use a newer version of PortProxyGUI. + +Would you like to download it now?", "Upgrade", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) + { + Process.Start("explorer.exe", "https://github.com/zmjack/PortProxyGUI/releases"); + } + + Environment.Exit(0); + } } public Migration GetLastMigration() @@ -77,6 +91,27 @@ namespace PortProxyGUI.Data "ALTER TABLE rules ADD Note text;", "ALTER TABLE rules ADD `Group` text;", }, + + [new MigrationKey { MigrationId = "202202221635", ProductVersion = "1.3.0" }] = new[] + { + "ALTER TABLE rules RENAME TO rulesOld;", + "DROP INDEX IX_Rules_Type_ListenOn_ListenPort;", + + @"CREATE TABLE rules ( + Id text PRIMARY KEY, + Type text, + ListenOn text, + ListenPort integer, + ConnectTo text, + ConnectPort integer, + Comment text, + `Group` text +);", + "CREATE UNIQUE INDEX IX_Rules_Type_ListenOn_ListenPort ON Rules ( Type, ListenOn, ListenPort );", + + "INSERT INTO rules SELECT Id, Type, ListenOn, ListenPort, ConnectTo, ConnectPort, Note, `Group` FROM rulesOld;", + "DROP TABLE rulesOld;", + }, }; } } diff --git a/PortProxyGUI.Shared/Data/ApplicationDbScope.cs b/PortProxyGUI.Shared/Data/ApplicationDbScope.cs index 6c3765c..24800df 100644 --- a/PortProxyGUI.Shared/Data/ApplicationDbScope.cs +++ b/PortProxyGUI.Shared/Data/ApplicationDbScope.cs @@ -43,7 +43,7 @@ namespace PortProxyGUI.Data var newid = Guid.NewGuid().ToString(); if (obj is Rule rule) - Sql($"INSERT INTO Rules (Id, Type, ListenOn, ListenPort, ConnectTo, ConnectPort, Note, `Group`) VALUES ({newid}, {rule.Type}, {rule.ListenOn}, {rule.ListenPort}, {rule.ConnectTo}, {rule.ConnectPort}, {rule.Note ?? ""}, {rule.Group ?? ""});"); + Sql($"INSERT INTO Rules (Id, Type, ListenOn, ListenPort, ConnectTo, ConnectPort, Comment, `Group`) VALUES ({newid}, {rule.Type}, {rule.ListenOn}, {rule.ListenPort}, {rule.ConnectTo}, {rule.ConnectPort}, {rule.Comment ?? ""}, {rule.Group ?? ""});"); else throw new NotSupportedException($"Adding {obj.GetType().FullName} is not supported."); } public void AddRange(IEnumerable objs) where T : class @@ -53,7 +53,7 @@ namespace PortProxyGUI.Data public void Update(T obj) where T : class { - if (obj is Rule rule) Sql($"UPDATE Rules SET Type={rule.Type}, ListenOn={rule.ListenOn}, ListenPort={rule.ListenPort}, ConnectTo={rule.ConnectTo}, ConnectPort={rule.ConnectPort}, Note={rule.Note ?? ""}, `Group`={rule.Group ?? ""} WHERE Id={rule.Id};"); + if (obj is Rule rule) Sql($"UPDATE Rules SET Type={rule.Type}, ListenOn={rule.ListenOn}, ListenPort={rule.ListenPort}, ConnectTo={rule.ConnectTo}, ConnectPort={rule.ConnectPort} WHERE Id={rule.Id};"); else throw new NotSupportedException($"Updating {obj.GetType().FullName} is not supported."); } public void UpdateRange(IEnumerable objs) where T : class diff --git a/PortProxyGUI.Shared/Data/Rule.cs b/PortProxyGUI.Shared/Data/Rule.cs index 30e0355..7b0d953 100644 --- a/PortProxyGUI.Shared/Data/Rule.cs +++ b/PortProxyGUI.Shared/Data/Rule.cs @@ -11,7 +11,7 @@ namespace PortProxyGUI.Data public int ListenPort { get; set; } public string ConnectTo { get; set; } public int ConnectPort { get; set; } - public string Note { get; set; } + public string Comment { get; set; } public string Group { get; set; } public bool Equals(Rule other) @@ -22,7 +22,7 @@ namespace PortProxyGUI.Data && ListenPort == other.ListenPort && ConnectTo == other.ConnectTo && ConnectPort == other.ConnectPort - && Note == other.Note + && Comment == other.Comment && Group == other.Group; } diff --git a/PortProxyGUI.Shared/ListViewColumnSorter.cs b/PortProxyGUI.Shared/ListViewColumnSorter.cs index 2738154..b7b7610 100644 --- a/PortProxyGUI.Shared/ListViewColumnSorter.cs +++ b/PortProxyGUI.Shared/ListViewColumnSorter.cs @@ -51,7 +51,13 @@ namespace PortProxyGUI listviewY = (ListViewItem)y; // Compare the two items - compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text, listviewY.SubItems[ColumnToSort].Text); + if (listviewX.SubItems[ColumnToSort].Tag?.ToString() == "Number" && listviewY.SubItems[ColumnToSort].Tag?.ToString() == "Number") + { + int.TryParse(listviewX.SubItems[ColumnToSort].Text, out var xint); + int.TryParse(listviewY.SubItems[ColumnToSort].Text, out var yint); + compareResult = ObjectCompare.Compare(xint, yint); + } + else compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text, listviewY.SubItems[ColumnToSort].Text); // Calculate correct return value based on object comparison if (OrderOfSort == SortOrder.Ascending) diff --git a/PortProxyGUI.Shared/PortProxyGUI.Shared.projitems b/PortProxyGUI.Shared/PortProxyGUI.Shared.projitems index 4b76964..ff4625d 100644 --- a/PortProxyGUI.Shared/PortProxyGUI.Shared.projitems +++ b/PortProxyGUI.Shared/PortProxyGUI.Shared.projitems @@ -18,5 +18,6 @@ + \ No newline at end of file diff --git a/PortProxyGUI.Shared/Util.cs b/PortProxyGUI.Shared/Util.cs new file mode 100644 index 0000000..008347f --- /dev/null +++ b/PortProxyGUI.Shared/Util.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Text; + +namespace PortProxyGUI +{ + public class Util + { + /// + /// Compatibility between .NET Framework and .NET Core. + /// + /// + public static readonly Font UiFont = new Font(new FontFamily("Microsoft Sans Serif"), 8f); + + } +} diff --git a/PortProxyGUI.sln b/PortProxyGUI.sln index 9483548..5023366 100644 --- a/PortProxyGUI.sln +++ b/PortProxyGUI.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30114.105 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32210.238 MinimumVisualStudioVersion = 15.0.26124.0 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PortProxyGUI", "PortProxyGUI\PortProxyGUI.csproj", "{7459E9F4-8B98-42D6-92CF-E90961E05C90}" EndProject @@ -9,17 +9,24 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "PortProxyGUI.Shared", "Port EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{E48EF63C-74A5-42B5-BFC5-20652E856B1F}" ProjectSection(SolutionItems) = preProject - README.md = README.md docs\ui.png = docs\ui.png EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortProxyGUI - NET45", "PortProxyGUI - NET45\PortProxyGUI - NET45.csproj", "{1B166039-E98C-404A-89A5-C981364B5546}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortProxyGUI - NET35", "PortProxyGUI - NET35\PortProxyGUI - NET35.csproj", "{56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortProxyGUI - NET35 - UI", "PortProxyGUI - NET35\PortProxyGUI - NET35 - UI.csproj", "{56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PortProxyGUI - Core31", "PortProxyGUI - Core31\PortProxyGUI - Core31.csproj", "{2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{444021F3-829E-4682-ACD5-B57FA46CC534}" + ProjectSection(SolutionItems) = preProject + README.md = README.md + EndProjectSection EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution PortProxyGUI.Shared\PortProxyGUI.Shared.projitems*{1b166039-e98c-404a-89a5-c981364b5546}*SharedItemsImports = 4 + PortProxyGUI.Shared\PortProxyGUI.Shared.projitems*{2a54c624-1c2f-4ed7-b201-0e2981fb9cd9}*SharedItemsImports = 5 PortProxyGUI.Shared\PortProxyGUI.Shared.projitems*{56fb1cbc-bd89-47d7-a9d5-86f02eef480f}*SharedItemsImports = 4 PortProxyGUI.Shared\PortProxyGUI.Shared.projitems*{7459e9f4-8b98-42d6-92cf-e90961e05c90}*SharedItemsImports = 5 PortProxyGUI.Shared\PortProxyGUI.Shared.projitems*{b38ef2b9-e38d-4d6d-bf0d-7c1934d6cfdc}*SharedItemsImports = 13 @@ -69,6 +76,18 @@ Global {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Release|x64.Build.0 = Release|Any CPU {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Release|x86.ActiveCfg = Release|Any CPU {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Release|x86.Build.0 = Release|Any CPU + {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Debug|x64.ActiveCfg = Debug|Any CPU + {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Debug|x64.Build.0 = Debug|Any CPU + {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Debug|x86.ActiveCfg = Debug|Any CPU + {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Debug|x86.Build.0 = Debug|Any CPU + {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Release|Any CPU.Build.0 = Release|Any CPU + {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Release|x64.ActiveCfg = Release|Any CPU + {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Release|x64.Build.0 = Release|Any CPU + {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Release|x86.ActiveCfg = Release|Any CPU + {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/PortProxyGUI/PortProxyGUI.csproj b/PortProxyGUI/PortProxyGUI.csproj index a78cfff..6f38aa3 100644 --- a/PortProxyGUI/PortProxyGUI.csproj +++ b/PortProxyGUI/PortProxyGUI.csproj @@ -2,7 +2,7 @@ WinExe - netcoreapp3.1 + net6.0-windows true app.manifest zmjack @@ -14,7 +14,7 @@ portproxy TCP/IP redirector LICENSE.md Copyright © nstandard.net 2020 - 1.2.0 + 1.3.0 icon.ico @@ -28,6 +28,24 @@ AnyCPU + + + + + + + + + + + + + + + + + + True @@ -40,25 +58,9 @@ - - Form - Form - - Form - - - - - - Designer - - - SetProxyForm.Designer.cs - ResXFileCodeGenerator - diff --git a/PortProxyGUI/Program.cs b/PortProxyGUI/Program.cs index 02d1d48..42277c3 100644 --- a/PortProxyGUI/Program.cs +++ b/PortProxyGUI/Program.cs @@ -15,9 +15,10 @@ namespace PortProxyGUI static void Main() { SqliteDbScope.Migrate(); - Application.SetHighDpiMode(HighDpiMode.SystemAware); - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); + + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); Application.Run(new PortProxyGUI()); } } diff --git a/docs/ui.png b/docs/ui.png index ce1bd3c..655a28a 100644 Binary files a/docs/ui.png and b/docs/ui.png differ