v1.0.5
This commit is contained in:
parent
bf44a2bc87
commit
16bf3ed339
|
@ -1,6 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Reflection;
|
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace PortProxyGUI
|
namespace PortProxyGUI
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
<ApplicationRevision>0</ApplicationRevision>
|
<ApplicationRevision>0</ApplicationRevision>
|
||||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||||
<UseApplicationTrust>false</UseApplicationTrust>
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
|
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
@ -52,6 +53,21 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ApplicationIcon>icon.ico</ApplicationIcon>
|
<ApplicationIcon>icon.ico</ApplicationIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ManifestCertificateThumbprint>BEF27898E4C102E806F3241497048E740EC39033</ManifestCertificateThumbprint>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ManifestKeyFile>PortProxyGUI - NET_TemporaryKey.pfx</ManifestKeyFile>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<GenerateManifests>false</GenerateManifests>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<SignManifests>true</SignManifests>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetZone>LocalIntranet</TargetZone>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
@ -70,11 +86,11 @@
|
||||||
<Compile Include="About.Designer.cs">
|
<Compile Include="About.Designer.cs">
|
||||||
<DependentUpon>About.cs</DependentUpon>
|
<DependentUpon>About.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="NewProxy.cs">
|
<Compile Include="SetProxyForm.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="NewProxy.Designer.cs">
|
<Compile Include="SetProxyForm.Designer.cs">
|
||||||
<DependentUpon>NewProxy.cs</DependentUpon>
|
<DependentUpon>SetProxyForm.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="PortProxyGUI.cs">
|
<Compile Include="PortProxyGUI.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
|
@ -90,11 +106,11 @@
|
||||||
<EmbeddedResource Include="About.zh-CN.resx">
|
<EmbeddedResource Include="About.zh-CN.resx">
|
||||||
<DependentUpon>About.cs</DependentUpon>
|
<DependentUpon>About.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="NewProxy.resx">
|
<EmbeddedResource Include="SetProxyForm.resx">
|
||||||
<DependentUpon>NewProxy.cs</DependentUpon>
|
<DependentUpon>SetProxyForm.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="NewProxy.zh-CN.resx">
|
<EmbeddedResource Include="SetProxyForm.zh-CN.resx">
|
||||||
<DependentUpon>NewProxy.cs</DependentUpon>
|
<DependentUpon>SetProxyForm.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="PortProxyGUI.resx">
|
<EmbeddedResource Include="PortProxyGUI.resx">
|
||||||
<DependentUpon>PortProxyGUI.cs</DependentUpon>
|
<DependentUpon>PortProxyGUI.cs</DependentUpon>
|
||||||
|
|
|
@ -37,12 +37,13 @@
|
||||||
this.columnHeader4 = ((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.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripMenuItem_New = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripMenuItem_Modify = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripMenuItem_Delete = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripMenuItem_Refresh = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripMenuItem_About = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.contextMenuStrip1.SuspendLayout();
|
this.contextMenuStrip1.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
|
@ -61,6 +62,8 @@
|
||||||
this.listView1.Name = "listView1";
|
this.listView1.Name = "listView1";
|
||||||
this.listView1.UseCompatibleStateImageBehavior = false;
|
this.listView1.UseCompatibleStateImageBehavior = false;
|
||||||
this.listView1.View = System.Windows.Forms.View.Details;
|
this.listView1.View = System.Windows.Forms.View.Details;
|
||||||
|
this.listView1.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listView1_ColumnClick);
|
||||||
|
this.listView1.DoubleClick += new System.EventHandler(this.listView1_DoubleClick);
|
||||||
this.listView1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.listView1_MouseUp);
|
this.listView1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.listView1_MouseUp);
|
||||||
//
|
//
|
||||||
// columnHeader1
|
// columnHeader1
|
||||||
|
@ -86,45 +89,51 @@
|
||||||
// contextMenuStrip1
|
// contextMenuStrip1
|
||||||
//
|
//
|
||||||
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.toolStripMenuItem1,
|
this.toolStripMenuItem_New,
|
||||||
this.toolStripMenuItem2,
|
this.toolStripMenuItem_Modify,
|
||||||
|
this.toolStripMenuItem_Delete,
|
||||||
this.toolStripSeparator1,
|
this.toolStripSeparator1,
|
||||||
this.toolStripMenuItem3,
|
this.toolStripMenuItem_Refresh,
|
||||||
this.toolStripSeparator2,
|
this.toolStripSeparator2,
|
||||||
this.toolStripMenuItem4});
|
this.toolStripMenuItem_About});
|
||||||
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
||||||
resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1");
|
resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1");
|
||||||
this.contextMenuStrip1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.contextMenuStrip1_MouseClick);
|
this.contextMenuStrip1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.contextMenuStrip1_MouseClick);
|
||||||
//
|
//
|
||||||
// toolStripMenuItem1
|
// toolStripMenuItem_New
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
this.toolStripMenuItem_New.Name = "toolStripMenuItem_New";
|
||||||
resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1");
|
resources.ApplyResources(this.toolStripMenuItem_New, "toolStripMenuItem_New");
|
||||||
//
|
//
|
||||||
// toolStripMenuItem2
|
// toolStripMenuItem_Modify
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
|
this.toolStripMenuItem_Modify.Name = "toolStripMenuItem_Modify";
|
||||||
resources.ApplyResources(this.toolStripMenuItem2, "toolStripMenuItem2");
|
resources.ApplyResources(this.toolStripMenuItem_Modify, "toolStripMenuItem_Modify");
|
||||||
|
//
|
||||||
|
// toolStripMenuItem_Delete
|
||||||
|
//
|
||||||
|
this.toolStripMenuItem_Delete.Name = "toolStripMenuItem_Delete";
|
||||||
|
resources.ApplyResources(this.toolStripMenuItem_Delete, "toolStripMenuItem_Delete");
|
||||||
//
|
//
|
||||||
// toolStripSeparator1
|
// toolStripSeparator1
|
||||||
//
|
//
|
||||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
|
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
|
||||||
//
|
//
|
||||||
// toolStripMenuItem3
|
// toolStripMenuItem_Refresh
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
|
this.toolStripMenuItem_Refresh.Name = "toolStripMenuItem_Refresh";
|
||||||
resources.ApplyResources(this.toolStripMenuItem3, "toolStripMenuItem3");
|
resources.ApplyResources(this.toolStripMenuItem_Refresh, "toolStripMenuItem_Refresh");
|
||||||
//
|
//
|
||||||
// toolStripSeparator2
|
// toolStripSeparator2
|
||||||
//
|
//
|
||||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||||
resources.ApplyResources(this.toolStripSeparator2, "toolStripSeparator2");
|
resources.ApplyResources(this.toolStripSeparator2, "toolStripSeparator2");
|
||||||
//
|
//
|
||||||
// toolStripMenuItem4
|
// toolStripMenuItem_About
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
|
this.toolStripMenuItem_About.Name = "toolStripMenuItem_About";
|
||||||
resources.ApplyResources(this.toolStripMenuItem4, "toolStripMenuItem4");
|
resources.ApplyResources(this.toolStripMenuItem_About, "toolStripMenuItem_About");
|
||||||
//
|
//
|
||||||
// PortProxyGUI
|
// PortProxyGUI
|
||||||
//
|
//
|
||||||
|
@ -144,15 +153,16 @@
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader1;
|
private System.Windows.Forms.ColumnHeader columnHeader1;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader2;
|
private System.Windows.Forms.ColumnHeader columnHeader2;
|
||||||
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
|
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_New;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_Delete;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader3;
|
private System.Windows.Forms.ColumnHeader columnHeader3;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_Refresh;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader4;
|
private System.Windows.Forms.ColumnHeader columnHeader4;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_About;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader5;
|
private System.Windows.Forms.ColumnHeader columnHeader5;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_Modify;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,12 +10,15 @@ namespace PortProxyGUI
|
||||||
{
|
{
|
||||||
public partial class PortProxyGUI : Form
|
public partial class PortProxyGUI : Form
|
||||||
{
|
{
|
||||||
public NewProxy NewProxyForm;
|
public SetProxyForm SetProxyForm;
|
||||||
public About AboutForm;
|
public About AboutForm;
|
||||||
|
private ListViewColumnSorter lvwColumnSorter;
|
||||||
|
|
||||||
public PortProxyGUI()
|
public PortProxyGUI()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
lvwColumnSorter = new ListViewColumnSorter();
|
||||||
|
listView1.ListViewItemSorter = lvwColumnSorter;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PortProxyGUI_Load(object sender, EventArgs e)
|
private void PortProxyGUI_Load(object sender, EventArgs e)
|
||||||
|
@ -34,10 +37,23 @@ namespace PortProxyGUI
|
||||||
var listenPort = subItems[2].Text;
|
var listenPort = subItems[2].Text;
|
||||||
var output = CmdRunner.Execute($"netsh interface portproxy delete {type} listenaddress={listenOn} listenport={listenPort}");
|
var output = CmdRunner.Execute($"netsh interface portproxy delete {type} listenaddress={listenOn} listenport={listenPort}");
|
||||||
}
|
}
|
||||||
|
|
||||||
RefreshProxyList();
|
RefreshProxyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SetProxyForUpdate(SetProxyForm form)
|
||||||
|
{
|
||||||
|
var item = listView1.SelectedItems.OfType<ListViewItem>().FirstOrDefault();
|
||||||
|
{
|
||||||
|
var subItems = item.SubItems.OfType<ListViewSubItem>().ToArray();
|
||||||
|
var type = subItems[0].Text;
|
||||||
|
var listenOn = subItems[1].Text;
|
||||||
|
var listenPort = subItems[2].Text;
|
||||||
|
var connectTo = subItems[3].Text;
|
||||||
|
var connectPort = subItems[4].Text;
|
||||||
|
form.UseUpdateMode(type, listenOn, listenPort, connectTo, connectPort);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void RefreshProxyList()
|
public void RefreshProxyList()
|
||||||
{
|
{
|
||||||
var output = CmdRunner.Execute("netsh interface portproxy show all");
|
var output = CmdRunner.Execute("netsh interface portproxy show all");
|
||||||
|
@ -88,19 +104,22 @@ namespace PortProxyGUI
|
||||||
|
|
||||||
switch (selected.Text)
|
switch (selected.Text)
|
||||||
{
|
{
|
||||||
case string s when s == toolStripMenuItem1.Text:
|
case string s when s == toolStripMenuItem_New.Text:
|
||||||
if (NewProxyForm == null)
|
if (SetProxyForm == null) SetProxyForm = new SetProxyForm(this);
|
||||||
{
|
SetProxyForm.UseNormalMode();
|
||||||
NewProxyForm = new NewProxy(this);
|
SetProxyForm.Show();
|
||||||
NewProxyForm.Show();
|
|
||||||
}
|
|
||||||
else NewProxyForm.Show();
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case string s when s == toolStripMenuItem3.Text: RefreshProxyList(); break;
|
case string s when s == toolStripMenuItem_Modify.Text:
|
||||||
case string s when s == toolStripMenuItem2.Text: DeleteSelectedProxies(); break;
|
if (SetProxyForm == null) SetProxyForm = new SetProxyForm(this);
|
||||||
|
SetProxyForUpdate(SetProxyForm);
|
||||||
|
SetProxyForm.Show();
|
||||||
|
break;
|
||||||
|
|
||||||
case string s when s == toolStripMenuItem4.Text:
|
case string s when s == toolStripMenuItem_Refresh.Text: RefreshProxyList(); break;
|
||||||
|
case string s when s == toolStripMenuItem_Delete.Text: DeleteSelectedProxies(); break;
|
||||||
|
|
||||||
|
case string s when s == toolStripMenuItem_About.Text:
|
||||||
if (AboutForm == null)
|
if (AboutForm == null)
|
||||||
{
|
{
|
||||||
AboutForm = new About(this);
|
AboutForm = new About(this);
|
||||||
|
@ -116,10 +135,50 @@ namespace PortProxyGUI
|
||||||
{
|
{
|
||||||
if (sender is ListView _sender)
|
if (sender is ListView _sender)
|
||||||
{
|
{
|
||||||
if (e.Button == MouseButtons.Right && _sender.SelectedItems.OfType<ListViewItem>().Any())
|
var selectAny = e.Button == MouseButtons.Right && _sender.SelectedItems.OfType<ListViewItem>().Any();
|
||||||
toolStripMenuItem2.Enabled = true;
|
toolStripMenuItem_Delete.Enabled = selectAny;
|
||||||
else toolStripMenuItem2.Enabled = false;
|
toolStripMenuItem_Modify.Enabled = selectAny;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void listView1_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is ListView _sender)
|
||||||
|
{
|
||||||
|
var selectAny = _sender.SelectedItems.OfType<ListViewItem>().Any();
|
||||||
|
if (selectAny)
|
||||||
|
{
|
||||||
|
if (SetProxyForm == null) SetProxyForm = new SetProxyForm(this);
|
||||||
|
SetProxyForUpdate(SetProxyForm);
|
||||||
|
SetProxyForm.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
|
||||||
|
{
|
||||||
|
// Determine if clicked column is already the column that is being sorted.
|
||||||
|
if (e.Column == lvwColumnSorter.SortColumn)
|
||||||
|
{
|
||||||
|
// Reverse the current sort direction for this column.
|
||||||
|
if (lvwColumnSorter.Order == SortOrder.Ascending)
|
||||||
|
{
|
||||||
|
lvwColumnSorter.Order = SortOrder.Descending;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lvwColumnSorter.Order = SortOrder.Ascending;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Set the column number that is to be sorted; default to ascending.
|
||||||
|
lvwColumnSorter.SortColumn = e.Column;
|
||||||
|
lvwColumnSorter.Order = SortOrder.Ascending;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Perform the sort with these new sort options.
|
||||||
|
listView1.Sort();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,8 +149,44 @@
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="toolStripMenuItem_New.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>180, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_New.Text" xml:space="preserve">
|
||||||
|
<value>New</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Modify.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>180, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Modify.Text" xml:space="preserve">
|
||||||
|
<value>Modify</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Delete.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>180, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Delete.Text" xml:space="preserve">
|
||||||
|
<value>Delete</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>177, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Refresh.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>180, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Refresh.Text" xml:space="preserve">
|
||||||
|
<value>Refresh</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>177, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_About.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>180, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_About.Text" xml:space="preserve">
|
||||||
|
<value>About</value>
|
||||||
|
</data>
|
||||||
<data name="contextMenuStrip1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="contextMenuStrip1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>121, 104</value>
|
<value>181, 148</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>contextMenuStrip1.Name" xml:space="preserve">
|
<data name=">>contextMenuStrip1.Name" xml:space="preserve">
|
||||||
<value>contextMenuStrip1</value>
|
<value>contextMenuStrip1</value>
|
||||||
|
@ -186,36 +222,6 @@
|
||||||
<data name=">>listView1.ZOrder" xml:space="preserve">
|
<data name=">>listView1.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>120, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem1.Text" xml:space="preserve">
|
|
||||||
<value>New</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>120, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem2.Text" xml:space="preserve">
|
|
||||||
<value>Delete</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>117, 6</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem3.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>120, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem3.Text" xml:space="preserve">
|
|
||||||
<value>Refresh</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>117, 6</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem4.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>120, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem4.Text" xml:space="preserve">
|
|
||||||
<value>About</value>
|
|
||||||
</data>
|
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
@ -2422,16 +2428,22 @@
|
||||||
<data name=">>columnHeader5.Type" xml:space="preserve">
|
<data name=">>columnHeader5.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem1.Name" xml:space="preserve">
|
<data name=">>toolStripMenuItem_New.Name" xml:space="preserve">
|
||||||
<value>toolStripMenuItem1</value>
|
<value>toolStripMenuItem_New</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem1.Type" xml:space="preserve">
|
<data name=">>toolStripMenuItem_New.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem2.Name" xml:space="preserve">
|
<data name=">>toolStripMenuItem_Modify.Name" xml:space="preserve">
|
||||||
<value>toolStripMenuItem2</value>
|
<value>toolStripMenuItem_Modify</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem2.Type" xml:space="preserve">
|
<data name=">>toolStripMenuItem_Modify.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>toolStripMenuItem_Delete.Name" xml:space="preserve">
|
||||||
|
<value>toolStripMenuItem_Delete</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>toolStripMenuItem_Delete.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripSeparator1.Name" xml:space="preserve">
|
<data name=">>toolStripSeparator1.Name" xml:space="preserve">
|
||||||
|
@ -2440,10 +2452,10 @@
|
||||||
<data name=">>toolStripSeparator1.Type" xml:space="preserve">
|
<data name=">>toolStripSeparator1.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem3.Name" xml:space="preserve">
|
<data name=">>toolStripMenuItem_Refresh.Name" xml:space="preserve">
|
||||||
<value>toolStripMenuItem3</value>
|
<value>toolStripMenuItem_Refresh</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem3.Type" xml:space="preserve">
|
<data name=">>toolStripMenuItem_Refresh.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripSeparator2.Name" xml:space="preserve">
|
<data name=">>toolStripSeparator2.Name" xml:space="preserve">
|
||||||
|
@ -2452,10 +2464,10 @@
|
||||||
<data name=">>toolStripSeparator2.Type" xml:space="preserve">
|
<data name=">>toolStripSeparator2.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem4.Name" xml:space="preserve">
|
<data name=">>toolStripMenuItem_About.Name" xml:space="preserve">
|
||||||
<value>toolStripMenuItem4</value>
|
<value>toolStripMenuItem_About</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem4.Type" xml:space="preserve">
|
<data name=">>toolStripMenuItem_About.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
|
|
@ -164,7 +164,7 @@
|
||||||
<data name="listView1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="listView1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem2.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_Delete.Text" xml:space="preserve">
|
||||||
<value>删除</value>
|
<value>删除</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
@ -179,7 +179,7 @@
|
||||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
<value>3, 2, 3, 2</value>
|
<value>3, 2, 3, 2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem1.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_New.Text" xml:space="preserve">
|
||||||
<value>新建</value>
|
<value>新建</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem1.Type" xml:space="preserve">
|
<data name=">>toolStripMenuItem1.Type" xml:space="preserve">
|
||||||
|
@ -191,7 +191,7 @@
|
||||||
<data name=">>columnHeader1.Name" xml:space="preserve">
|
<data name=">>columnHeader1.Name" xml:space="preserve">
|
||||||
<value>columnHeader1</value>
|
<value>columnHeader1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem3.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_Refresh.Text" xml:space="preserve">
|
||||||
<value>刷新</value>
|
<value>刷新</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
@ -243,7 +243,7 @@
|
||||||
<data name=">>toolStripSeparator1.Type" xml:space="preserve">
|
<data name=">>toolStripSeparator1.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem4.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_About.Text" xml:space="preserve">
|
||||||
<value>关于</value>
|
<value>关于</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem2.Name" xml:space="preserve">
|
<data name=">>toolStripMenuItem2.Name" xml:space="preserve">
|
||||||
|
@ -309,4 +309,7 @@
|
||||||
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib">
|
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib">
|
||||||
<value>zh-Hans</value>
|
<value>zh-Hans</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Modify.Text" xml:space="preserve">
|
||||||
|
<value>修改</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
|
||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("1.0.3.0")]
|
[assembly: AssemblyVersion("1.0.5.0")]
|
||||||
[assembly: AssemblyFileVersion("1.0.3.0")]
|
[assembly: AssemblyFileVersion("1.0.5.0")]
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
namespace PortProxyGUI
|
namespace PortProxyGUI
|
||||||
{
|
{
|
||||||
partial class NewProxy
|
partial class SetProxyForm
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Required designer variable.
|
/// Required designer variable.
|
||||||
|
@ -28,14 +28,14 @@
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(NewProxy));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SetProxyForm));
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
this.textBox_listenOn = new System.Windows.Forms.TextBox();
|
this.textBox_listenOn = new System.Windows.Forms.TextBox();
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
this.textBox_connectTo = new System.Windows.Forms.TextBox();
|
this.textBox_connectTo = new System.Windows.Forms.TextBox();
|
||||||
this.textBox_connectPort = new System.Windows.Forms.TextBox();
|
this.textBox_connectPort = new System.Windows.Forms.TextBox();
|
||||||
this.label3 = new System.Windows.Forms.Label();
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
this.button1 = new System.Windows.Forms.Button();
|
this.button_submit = new System.Windows.Forms.Button();
|
||||||
this.label4 = new System.Windows.Forms.Label();
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
this.label5 = new System.Windows.Forms.Label();
|
this.label5 = new System.Windows.Forms.Label();
|
||||||
this.textBox_listenPort = new System.Windows.Forms.TextBox();
|
this.textBox_listenPort = new System.Windows.Forms.TextBox();
|
||||||
|
@ -72,12 +72,12 @@
|
||||||
resources.ApplyResources(this.label3, "label3");
|
resources.ApplyResources(this.label3, "label3");
|
||||||
this.label3.Name = "label3";
|
this.label3.Name = "label3";
|
||||||
//
|
//
|
||||||
// button1
|
// button_submit
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.button1, "button1");
|
resources.ApplyResources(this.button_submit, "button_submit");
|
||||||
this.button1.Name = "button1";
|
this.button_submit.Name = "button_submit";
|
||||||
this.button1.UseVisualStyleBackColor = true;
|
this.button_submit.UseVisualStyleBackColor = true;
|
||||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
this.button_submit.Click += new System.EventHandler(this.button_submit_Click);
|
||||||
//
|
//
|
||||||
// label4
|
// label4
|
||||||
//
|
//
|
||||||
|
@ -106,16 +106,16 @@
|
||||||
resources.GetString("comboBox_type.Items4")});
|
resources.GetString("comboBox_type.Items4")});
|
||||||
this.comboBox_type.Name = "comboBox_type";
|
this.comboBox_type.Name = "comboBox_type";
|
||||||
//
|
//
|
||||||
// NewProxy
|
// SetProxyForm
|
||||||
//
|
//
|
||||||
this.AcceptButton = this.button1;
|
this.AcceptButton = this.button_submit;
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.Controls.Add(this.comboBox_type);
|
this.Controls.Add(this.comboBox_type);
|
||||||
this.Controls.Add(this.textBox_listenPort);
|
this.Controls.Add(this.textBox_listenPort);
|
||||||
this.Controls.Add(this.label5);
|
this.Controls.Add(this.label5);
|
||||||
this.Controls.Add(this.label4);
|
this.Controls.Add(this.label4);
|
||||||
this.Controls.Add(this.button1);
|
this.Controls.Add(this.button_submit);
|
||||||
this.Controls.Add(this.label3);
|
this.Controls.Add(this.label3);
|
||||||
this.Controls.Add(this.textBox_connectPort);
|
this.Controls.Add(this.textBox_connectPort);
|
||||||
this.Controls.Add(this.textBox_connectTo);
|
this.Controls.Add(this.textBox_connectTo);
|
||||||
|
@ -125,10 +125,10 @@
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
this.MaximizeBox = false;
|
this.MaximizeBox = false;
|
||||||
this.MinimizeBox = false;
|
this.MinimizeBox = false;
|
||||||
this.Name = "NewProxy";
|
this.Name = "SetProxyForm";
|
||||||
this.TopMost = true;
|
this.TopMost = true;
|
||||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.NewProxy_FormClosing);
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SetProxyForm_FormClosing);
|
||||||
this.Load += new System.EventHandler(this.NewProxy_Load);
|
this.Load += new System.EventHandler(this.SetProxyForm_Load);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@
|
||||||
private System.Windows.Forms.TextBox textBox_connectTo;
|
private System.Windows.Forms.TextBox textBox_connectTo;
|
||||||
private System.Windows.Forms.TextBox textBox_connectPort;
|
private System.Windows.Forms.TextBox textBox_connectPort;
|
||||||
private System.Windows.Forms.Label label3;
|
private System.Windows.Forms.Label label3;
|
||||||
private System.Windows.Forms.Button button1;
|
private System.Windows.Forms.Button button_submit;
|
||||||
private System.Windows.Forms.Label label4;
|
private System.Windows.Forms.Label label4;
|
||||||
private System.Windows.Forms.Label label5;
|
private System.Windows.Forms.Label label5;
|
||||||
private System.Windows.Forms.TextBox textBox_listenPort;
|
private System.Windows.Forms.TextBox textBox_listenPort;
|
|
@ -6,21 +6,48 @@ using System.Windows.Forms;
|
||||||
|
|
||||||
namespace PortProxyGUI
|
namespace PortProxyGUI
|
||||||
{
|
{
|
||||||
public partial class NewProxy : Form
|
public partial class SetProxyForm : Form
|
||||||
{
|
{
|
||||||
public readonly PortProxyGUI PortProxyGUI;
|
public readonly PortProxyGUI PortProxyGUI;
|
||||||
private string AutoString { get; }
|
public bool UpdateMode { get; private set; }
|
||||||
|
private string AutoTypeString { get; }
|
||||||
|
|
||||||
public NewProxy(PortProxyGUI portProxyGUI)
|
public SetProxyForm(PortProxyGUI portProxyGUI)
|
||||||
{
|
{
|
||||||
PortProxyGUI = portProxyGUI;
|
PortProxyGUI = portProxyGUI;
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
AutoString = comboBox_type.Text = comboBox_type.Items.OfType<string>().First();
|
AutoTypeString = comboBox_type.Text = comboBox_type.Items.OfType<string>().First();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddPortProxy(string type, string listenOn, string listenPort, string connectTo, string connectPort)
|
public void UseNormalMode()
|
||||||
{
|
{
|
||||||
var output = CmdRunner.Execute($"netsh interface portproxy add {type} listenaddress={listenOn} listenport={listenPort} connectaddress={connectTo} connectport={connectPort}");
|
comboBox_type.Enabled = true;
|
||||||
|
textBox_listenOn.Enabled = true;
|
||||||
|
textBox_listenPort.Enabled = true;
|
||||||
|
comboBox_type.Text = AutoTypeString;
|
||||||
|
textBox_listenOn.Text = "*";
|
||||||
|
textBox_listenPort.Text = "";
|
||||||
|
textBox_connectTo.Text = "";
|
||||||
|
textBox_connectPort.Text = "";
|
||||||
|
UpdateMode = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UseUpdateMode(string type, string listenOn, string listenPort, string connectTo, string connectPort)
|
||||||
|
{
|
||||||
|
comboBox_type.Enabled = false;
|
||||||
|
textBox_listenOn.Enabled = false;
|
||||||
|
textBox_listenPort.Enabled = false;
|
||||||
|
comboBox_type.Text = type;
|
||||||
|
textBox_listenOn.Text = listenOn;
|
||||||
|
textBox_listenPort.Text = listenPort;
|
||||||
|
textBox_connectTo.Text = connectTo;
|
||||||
|
textBox_connectPort.Text = connectPort;
|
||||||
|
UpdateMode = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetPortProxy(string type, string action, string listenOn, string listenPort, string connectTo, string connectPort)
|
||||||
|
{
|
||||||
|
var output = CmdRunner.Execute($"netsh interface portproxy {action} {type} listenaddress={listenOn} listenport={listenPort} connectaddress={connectTo} connectport={connectPort}");
|
||||||
Invoke((Action)(() => PortProxyGUI.RefreshProxyList()));
|
Invoke((Action)(() => PortProxyGUI.RefreshProxyList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +67,7 @@ namespace PortProxyGUI
|
||||||
return $"{from}to{to}";
|
return $"{from}to{to}";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void button1_Click(object sender, EventArgs e)
|
private void button_submit_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var type = comboBox_type.Text.Trim();
|
var type = comboBox_type.Text.Trim();
|
||||||
var listenOn = textBox_listenOn.Text.Trim().ToLower();
|
var listenOn = textBox_listenOn.Text.Trim().ToLower();
|
||||||
|
@ -60,7 +87,7 @@ namespace PortProxyGUI
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == AutoString) type = GetPassType(listenOn, connectTo);
|
if (type == AutoTypeString) type = GetPassType(listenOn, connectTo);
|
||||||
|
|
||||||
if (!new[] { "v4tov4", "v4tov6", "v6tov4", "v6tov6" }.Contains(type))
|
if (!new[] { "v4tov4", "v4tov6", "v6tov4", "v6tov6" }.Contains(type))
|
||||||
{
|
{
|
||||||
|
@ -68,16 +95,19 @@ namespace PortProxyGUI
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
AddPortProxy(type, listenOn, listenPort, connectTo, connectPort);
|
SetPortProxy(type, UpdateMode ? "set" : "add", listenOn, listenPort, connectTo, connectPort);
|
||||||
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void NewProxy_Load(object sender, EventArgs e)
|
private void SetProxyForm_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
Top = PortProxyGUI.Top + (PortProxyGUI.Height - Height) / 2;
|
||||||
|
Left = PortProxyGUI.Left + (PortProxyGUI.Width - Width) / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void NewProxy_FormClosing(object sender, FormClosingEventArgs e)
|
private void SetProxyForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
{
|
{
|
||||||
PortProxyGUI.NewProxyForm = null;
|
PortProxyGUI.SetProxyForm = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -285,28 +285,28 @@
|
||||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
<value>5</value>
|
<value>5</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="button1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="button_submit.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>227, 62</value>
|
<value>227, 62</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="button1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="button_submit.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>74, 22</value>
|
<value>74, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="button1.TabIndex" type="System.Int32, mscorlib">
|
<data name="button_submit.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>6</value>
|
<value>6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="button1.Text" xml:space="preserve">
|
<data name="button_submit.Text" xml:space="preserve">
|
||||||
<value>Add</value>
|
<value>Set</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>button1.Name" xml:space="preserve">
|
<data name=">>button_submit.Name" xml:space="preserve">
|
||||||
<value>button1</value>
|
<value>button_submit</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>button1.Type" xml:space="preserve">
|
<data name=">>button_submit.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>button1.Parent" xml:space="preserve">
|
<data name=">>button_submit.Parent" xml:space="preserve">
|
||||||
<value>$this</value>
|
<value>$this</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>button1.ZOrder" xml:space="preserve">
|
<data name=">>button_submit.ZOrder" xml:space="preserve">
|
||||||
<value>4</value>
|
<value>4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
@ -2603,13 +2603,13 @@
|
||||||
<value>3, 2, 3, 2</value>
|
<value>3, 2, 3, 2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||||
<value>CenterScreen</value>
|
<value>Manual</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>New Proxy</value>
|
<value>Set Proxy</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>NewProxy</value>
|
<value>SetProxyForm</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Type" xml:space="preserve">
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
@ -201,8 +201,8 @@
|
||||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
<value>5</value>
|
<value>5</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="button1.Text" xml:space="preserve">
|
<data name="button_submit.Text" xml:space="preserve">
|
||||||
<value>添加</value>
|
<value>设置</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>button1.Name" xml:space="preserve">
|
<data name=">>button1.Name" xml:space="preserve">
|
||||||
<value>button1</value>
|
<value>button1</value>
|
||||||
|
@ -283,7 +283,7 @@
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>新建映射</value>
|
<value>设置映射</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>NewProxy</value>
|
<value>NewProxy</value>
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
|
<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
|
||||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
||||||
<security>
|
<security>
|
||||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
@ -16,35 +16,31 @@
|
||||||
Remove this element if your application requires this virtualization for backwards
|
Remove this element if your application requires this virtualization for backwards
|
||||||
compatibility.
|
compatibility.
|
||||||
-->
|
-->
|
||||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||||
</requestedPrivileges>
|
</requestedPrivileges>
|
||||||
|
<applicationRequestMinimum>
|
||||||
|
<PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
|
||||||
|
<defaultAssemblyRequest permissionSetReference="Custom" />
|
||||||
|
</applicationRequestMinimum>
|
||||||
</security>
|
</security>
|
||||||
</trustInfo>
|
</trustInfo>
|
||||||
|
|
||||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||||
<application>
|
<application>
|
||||||
<!-- A list of the Windows versions that this application has been tested on
|
<!-- A list of the Windows versions that this application has been tested on
|
||||||
and is designed to work with. Uncomment the appropriate elements
|
and is designed to work with. Uncomment the appropriate elements
|
||||||
and Windows will automatically select the most compatible environment. -->
|
and Windows will automatically select the most compatible environment. -->
|
||||||
|
|
||||||
<!-- Windows Vista -->
|
<!-- Windows Vista -->
|
||||||
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
|
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
|
||||||
|
|
||||||
<!-- Windows 7 -->
|
<!-- Windows 7 -->
|
||||||
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
|
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
|
||||||
|
|
||||||
<!-- Windows 8 -->
|
<!-- Windows 8 -->
|
||||||
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
|
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
|
||||||
|
|
||||||
<!-- Windows 8.1 -->
|
<!-- Windows 8.1 -->
|
||||||
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
|
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
|
||||||
|
|
||||||
<!-- Windows 10 -->
|
<!-- Windows 10 -->
|
||||||
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
|
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
</compatibility>
|
</compatibility>
|
||||||
|
|
||||||
<!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
|
<!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
|
||||||
DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need
|
DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need
|
||||||
to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should
|
to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should
|
||||||
|
@ -56,7 +52,6 @@
|
||||||
</windowsSettings>
|
</windowsSettings>
|
||||||
</application>
|
</application>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
|
<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
|
||||||
<!--
|
<!--
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -72,5 +67,4 @@
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
</dependency>
|
</dependency>
|
||||||
-->
|
-->
|
||||||
|
</assembly>
|
||||||
</assembly>
|
|
|
@ -0,0 +1,105 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace PortProxyGUI
|
||||||
|
{
|
||||||
|
public class ListViewColumnSorter : IComparer
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the column to be sorted
|
||||||
|
/// </summary>
|
||||||
|
private int ColumnToSort;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the order in which to sort (i.e. 'Ascending').
|
||||||
|
/// </summary>
|
||||||
|
private SortOrder OrderOfSort;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Case insensitive comparer object
|
||||||
|
/// </summary>
|
||||||
|
private CaseInsensitiveComparer ObjectCompare;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Class constructor. Initializes various elements
|
||||||
|
/// </summary>
|
||||||
|
public ListViewColumnSorter()
|
||||||
|
{
|
||||||
|
// Initialize the column to '0'
|
||||||
|
ColumnToSort = 0;
|
||||||
|
|
||||||
|
// Initialize the sort order to 'none'
|
||||||
|
OrderOfSort = SortOrder.None;
|
||||||
|
|
||||||
|
// Initialize the CaseInsensitiveComparer object
|
||||||
|
ObjectCompare = new CaseInsensitiveComparer();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This method is inherited from the IComparer interface. It compares the two objects passed using a case insensitive comparison.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="x">First object to be compared</param>
|
||||||
|
/// <param name="y">Second object to be compared</param>
|
||||||
|
/// <returns>The result of the comparison. "0" if equal, negative if 'x' is less than 'y' and positive if 'x' is greater than 'y'</returns>
|
||||||
|
public int Compare(object x, object y)
|
||||||
|
{
|
||||||
|
int compareResult;
|
||||||
|
ListViewItem listviewX, listviewY;
|
||||||
|
|
||||||
|
// Cast the objects to be compared to ListViewItem objects
|
||||||
|
listviewX = (ListViewItem)x;
|
||||||
|
listviewY = (ListViewItem)y;
|
||||||
|
|
||||||
|
// Compare the two items
|
||||||
|
compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text, listviewY.SubItems[ColumnToSort].Text);
|
||||||
|
|
||||||
|
// Calculate correct return value based on object comparison
|
||||||
|
if (OrderOfSort == SortOrder.Ascending)
|
||||||
|
{
|
||||||
|
// Ascending sort is selected, return normal result of compare operation
|
||||||
|
return compareResult;
|
||||||
|
}
|
||||||
|
else if (OrderOfSort == SortOrder.Descending)
|
||||||
|
{
|
||||||
|
// Descending sort is selected, return negative result of compare operation
|
||||||
|
return (-compareResult);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Return '0' to indicate they are equal
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the number of the column to which to apply the sorting operation (Defaults to '0').
|
||||||
|
/// </summary>
|
||||||
|
public int SortColumn
|
||||||
|
{
|
||||||
|
set
|
||||||
|
{
|
||||||
|
ColumnToSort = value;
|
||||||
|
}
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return ColumnToSort;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the order of sorting to apply (for example, 'Ascending' or 'Descending').
|
||||||
|
/// </summary>
|
||||||
|
public SortOrder Order
|
||||||
|
{
|
||||||
|
set
|
||||||
|
{
|
||||||
|
OrderOfSort = value;
|
||||||
|
}
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return OrderOfSort;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,6 +10,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)CmdRunner.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)CmdRunner.cs" />
|
||||||
|
<Compile Include="$(MSBuildThisFileDirectory)ListViewColumnSorter.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)PortProxy.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)PortProxy.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)ProxyType.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)ProxyType.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)~extern\NStandard\XString.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)~extern\NStandard\XString.cs" />
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Reflection;
|
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace PortProxyGUI
|
namespace PortProxyGUI
|
||||||
|
|
|
@ -37,12 +37,13 @@
|
||||||
this.columnHeader4 = ((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.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripMenuItem_New = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripMenuItem_Modify = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripMenuItem_Delete = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripMenuItem_Refresh = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripMenuItem_About = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.contextMenuStrip1.SuspendLayout();
|
this.contextMenuStrip1.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
|
@ -61,6 +62,8 @@
|
||||||
this.listView1.Name = "listView1";
|
this.listView1.Name = "listView1";
|
||||||
this.listView1.UseCompatibleStateImageBehavior = false;
|
this.listView1.UseCompatibleStateImageBehavior = false;
|
||||||
this.listView1.View = System.Windows.Forms.View.Details;
|
this.listView1.View = System.Windows.Forms.View.Details;
|
||||||
|
this.listView1.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listView1_ColumnClick);
|
||||||
|
this.listView1.DoubleClick += new System.EventHandler(this.listView1_DoubleClick);
|
||||||
this.listView1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.listView1_MouseUp);
|
this.listView1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.listView1_MouseUp);
|
||||||
//
|
//
|
||||||
// columnHeader1
|
// columnHeader1
|
||||||
|
@ -86,45 +89,51 @@
|
||||||
// contextMenuStrip1
|
// contextMenuStrip1
|
||||||
//
|
//
|
||||||
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.toolStripMenuItem1,
|
this.toolStripMenuItem_New,
|
||||||
this.toolStripMenuItem2,
|
this.toolStripMenuItem_Modify,
|
||||||
|
this.toolStripMenuItem_Delete,
|
||||||
this.toolStripSeparator1,
|
this.toolStripSeparator1,
|
||||||
this.toolStripMenuItem3,
|
this.toolStripMenuItem_Refresh,
|
||||||
this.toolStripSeparator2,
|
this.toolStripSeparator2,
|
||||||
this.toolStripMenuItem4});
|
this.toolStripMenuItem_About});
|
||||||
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
||||||
resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1");
|
resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1");
|
||||||
this.contextMenuStrip1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.contextMenuStrip1_MouseClick);
|
this.contextMenuStrip1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.contextMenuStrip1_MouseClick);
|
||||||
//
|
//
|
||||||
// toolStripMenuItem1
|
// toolStripMenuItem_New
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
this.toolStripMenuItem_New.Name = "toolStripMenuItem_New";
|
||||||
resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1");
|
resources.ApplyResources(this.toolStripMenuItem_New, "toolStripMenuItem_New");
|
||||||
//
|
//
|
||||||
// toolStripMenuItem2
|
// toolStripMenuItem_Modify
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
|
this.toolStripMenuItem_Modify.Name = "toolStripMenuItem_Modify";
|
||||||
resources.ApplyResources(this.toolStripMenuItem2, "toolStripMenuItem2");
|
resources.ApplyResources(this.toolStripMenuItem_Modify, "toolStripMenuItem_Modify");
|
||||||
|
//
|
||||||
|
// toolStripMenuItem_Delete
|
||||||
|
//
|
||||||
|
this.toolStripMenuItem_Delete.Name = "toolStripMenuItem_Delete";
|
||||||
|
resources.ApplyResources(this.toolStripMenuItem_Delete, "toolStripMenuItem_Delete");
|
||||||
//
|
//
|
||||||
// toolStripSeparator1
|
// toolStripSeparator1
|
||||||
//
|
//
|
||||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
|
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
|
||||||
//
|
//
|
||||||
// toolStripMenuItem3
|
// toolStripMenuItem_Refresh
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
|
this.toolStripMenuItem_Refresh.Name = "toolStripMenuItem_Refresh";
|
||||||
resources.ApplyResources(this.toolStripMenuItem3, "toolStripMenuItem3");
|
resources.ApplyResources(this.toolStripMenuItem_Refresh, "toolStripMenuItem_Refresh");
|
||||||
//
|
//
|
||||||
// toolStripSeparator2
|
// toolStripSeparator2
|
||||||
//
|
//
|
||||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||||
resources.ApplyResources(this.toolStripSeparator2, "toolStripSeparator2");
|
resources.ApplyResources(this.toolStripSeparator2, "toolStripSeparator2");
|
||||||
//
|
//
|
||||||
// toolStripMenuItem4
|
// toolStripMenuItem_About
|
||||||
//
|
//
|
||||||
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
|
this.toolStripMenuItem_About.Name = "toolStripMenuItem_About";
|
||||||
resources.ApplyResources(this.toolStripMenuItem4, "toolStripMenuItem4");
|
resources.ApplyResources(this.toolStripMenuItem_About, "toolStripMenuItem_About");
|
||||||
//
|
//
|
||||||
// PortProxyGUI
|
// PortProxyGUI
|
||||||
//
|
//
|
||||||
|
@ -144,15 +153,16 @@
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader1;
|
private System.Windows.Forms.ColumnHeader columnHeader1;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader2;
|
private System.Windows.Forms.ColumnHeader columnHeader2;
|
||||||
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
|
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_New;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_Delete;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader3;
|
private System.Windows.Forms.ColumnHeader columnHeader3;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_Refresh;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader4;
|
private System.Windows.Forms.ColumnHeader columnHeader4;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_About;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader5;
|
private System.Windows.Forms.ColumnHeader columnHeader5;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_Modify;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,12 +10,15 @@ namespace PortProxyGUI
|
||||||
{
|
{
|
||||||
public partial class PortProxyGUI : Form
|
public partial class PortProxyGUI : Form
|
||||||
{
|
{
|
||||||
public NewProxy NewProxyForm;
|
public SetProxyForm SetProxyForm;
|
||||||
public About AboutForm;
|
public About AboutForm;
|
||||||
|
private ListViewColumnSorter lvwColumnSorter;
|
||||||
|
|
||||||
public PortProxyGUI()
|
public PortProxyGUI()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
lvwColumnSorter = new ListViewColumnSorter();
|
||||||
|
listView1.ListViewItemSorter = lvwColumnSorter;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PortProxyGUI_Load(object sender, EventArgs e)
|
private void PortProxyGUI_Load(object sender, EventArgs e)
|
||||||
|
@ -34,10 +37,23 @@ namespace PortProxyGUI
|
||||||
var listenPort = subItems[2].Text;
|
var listenPort = subItems[2].Text;
|
||||||
var output = CmdRunner.Execute($"netsh interface portproxy delete {type} listenaddress={listenOn} listenport={listenPort}");
|
var output = CmdRunner.Execute($"netsh interface portproxy delete {type} listenaddress={listenOn} listenport={listenPort}");
|
||||||
}
|
}
|
||||||
|
|
||||||
RefreshProxyList();
|
RefreshProxyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SetProxyForUpdate(SetProxyForm form)
|
||||||
|
{
|
||||||
|
var item = listView1.SelectedItems.OfType<ListViewItem>().FirstOrDefault();
|
||||||
|
{
|
||||||
|
var subItems = item.SubItems.OfType<ListViewSubItem>().ToArray();
|
||||||
|
var type = subItems[0].Text;
|
||||||
|
var listenOn = subItems[1].Text;
|
||||||
|
var listenPort = subItems[2].Text;
|
||||||
|
var connectTo = subItems[3].Text;
|
||||||
|
var connectPort = subItems[4].Text;
|
||||||
|
form.UseUpdateMode(type, listenOn, listenPort, connectTo, connectPort);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void RefreshProxyList()
|
public void RefreshProxyList()
|
||||||
{
|
{
|
||||||
var output = CmdRunner.Execute("netsh interface portproxy show all");
|
var output = CmdRunner.Execute("netsh interface portproxy show all");
|
||||||
|
@ -88,19 +104,22 @@ namespace PortProxyGUI
|
||||||
|
|
||||||
switch (selected.Text)
|
switch (selected.Text)
|
||||||
{
|
{
|
||||||
case string s when s == toolStripMenuItem1.Text:
|
case string s when s == toolStripMenuItem_New.Text:
|
||||||
if (NewProxyForm == null)
|
if (SetProxyForm == null) SetProxyForm = new SetProxyForm(this);
|
||||||
{
|
SetProxyForm.UseNormalMode();
|
||||||
NewProxyForm = new NewProxy(this);
|
SetProxyForm.Show();
|
||||||
NewProxyForm.Show();
|
|
||||||
}
|
|
||||||
else NewProxyForm.Show();
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case string s when s == toolStripMenuItem3.Text: RefreshProxyList(); break;
|
case string s when s == toolStripMenuItem_Modify.Text:
|
||||||
case string s when s == toolStripMenuItem2.Text: DeleteSelectedProxies(); break;
|
if (SetProxyForm == null) SetProxyForm = new SetProxyForm(this);
|
||||||
|
SetProxyForUpdate(SetProxyForm);
|
||||||
|
SetProxyForm.Show();
|
||||||
|
break;
|
||||||
|
|
||||||
case string s when s == toolStripMenuItem4.Text:
|
case string s when s == toolStripMenuItem_Refresh.Text: RefreshProxyList(); break;
|
||||||
|
case string s when s == toolStripMenuItem_Delete.Text: DeleteSelectedProxies(); break;
|
||||||
|
|
||||||
|
case string s when s == toolStripMenuItem_About.Text:
|
||||||
if (AboutForm == null)
|
if (AboutForm == null)
|
||||||
{
|
{
|
||||||
AboutForm = new About(this);
|
AboutForm = new About(this);
|
||||||
|
@ -116,10 +135,50 @@ namespace PortProxyGUI
|
||||||
{
|
{
|
||||||
if (sender is ListView _sender)
|
if (sender is ListView _sender)
|
||||||
{
|
{
|
||||||
if (e.Button == MouseButtons.Right && _sender.SelectedItems.OfType<ListViewItem>().Any())
|
var selectAny = e.Button == MouseButtons.Right && _sender.SelectedItems.OfType<ListViewItem>().Any();
|
||||||
toolStripMenuItem2.Enabled = true;
|
toolStripMenuItem_Delete.Enabled = selectAny;
|
||||||
else toolStripMenuItem2.Enabled = false;
|
toolStripMenuItem_Modify.Enabled = selectAny;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void listView1_DoubleClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is ListView _sender)
|
||||||
|
{
|
||||||
|
var selectAny = _sender.SelectedItems.OfType<ListViewItem>().Any();
|
||||||
|
if (selectAny)
|
||||||
|
{
|
||||||
|
if (SetProxyForm == null) SetProxyForm = new SetProxyForm(this);
|
||||||
|
SetProxyForUpdate(SetProxyForm);
|
||||||
|
SetProxyForm.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
|
||||||
|
{
|
||||||
|
// Determine if clicked column is already the column that is being sorted.
|
||||||
|
if (e.Column == lvwColumnSorter.SortColumn)
|
||||||
|
{
|
||||||
|
// Reverse the current sort direction for this column.
|
||||||
|
if (lvwColumnSorter.Order == SortOrder.Ascending)
|
||||||
|
{
|
||||||
|
lvwColumnSorter.Order = SortOrder.Descending;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lvwColumnSorter.Order = SortOrder.Ascending;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Set the column number that is to be sorted; default to ascending.
|
||||||
|
lvwColumnSorter.SortColumn = e.Column;
|
||||||
|
lvwColumnSorter.Order = SortOrder.Ascending;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Perform the sort with these new sort options.
|
||||||
|
listView1.Sort();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<PackageTags>portproxy TCP/IP redirector</PackageTags>
|
<PackageTags>portproxy TCP/IP redirector</PackageTags>
|
||||||
<PackageLicenseFile>LICENSE.md</PackageLicenseFile>
|
<PackageLicenseFile>LICENSE.md</PackageLicenseFile>
|
||||||
<Copyright>Copyright © nstandard.net 2020</Copyright>
|
<Copyright>Copyright © nstandard.net 2020</Copyright>
|
||||||
<Version>1.0.3</Version>
|
<Version>1.0.5</Version>
|
||||||
<ApplicationIcon>icon.ico</ApplicationIcon>
|
<ApplicationIcon>icon.ico</ApplicationIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -42,18 +42,18 @@
|
||||||
<Compile Update="About.Designer.cs">
|
<Compile Update="About.Designer.cs">
|
||||||
<DependentUpon>About.cs</DependentUpon>
|
<DependentUpon>About.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Update="NewProxy.cs">
|
|
||||||
<SubType>Form</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Update="NewProxy.Designer.cs">
|
|
||||||
<DependentUpon>NewProxy.cs</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Update="PortProxyGUI.cs">
|
<Compile Update="PortProxyGUI.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Update="PortProxyGUI.Designer.cs">
|
<Compile Update="PortProxyGUI.Designer.cs">
|
||||||
<DependentUpon>PortProxyGUI.cs</DependentUpon>
|
<DependentUpon>PortProxyGUI.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Update="SetProxyForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Update="SetProxyForm.Designer.cs">
|
||||||
|
<DependentUpon>SetProxyForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -63,18 +63,18 @@
|
||||||
<EmbeddedResource Update="About.zh-CN.resx">
|
<EmbeddedResource Update="About.zh-CN.resx">
|
||||||
<DependentUpon>About.cs</DependentUpon>
|
<DependentUpon>About.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Update="NewProxy.resx">
|
|
||||||
<DependentUpon>NewProxy.cs</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Update="NewProxy.zh-CN.resx">
|
|
||||||
<DependentUpon>NewProxy.cs</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Update="PortProxyGUI.resx">
|
<EmbeddedResource Update="PortProxyGUI.resx">
|
||||||
<DependentUpon>PortProxyGUI.cs</DependentUpon>
|
<DependentUpon>PortProxyGUI.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Update="PortProxyGUI.zh-CN.resx">
|
<EmbeddedResource Update="PortProxyGUI.zh-CN.resx">
|
||||||
<DependentUpon>PortProxyGUI.cs</DependentUpon>
|
<DependentUpon>PortProxyGUI.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Update="SetProxyForm.resx">
|
||||||
|
<DependentUpon>SetProxyForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Update="SetProxyForm.zh-CN.resx">
|
||||||
|
<DependentUpon>SetProxyForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<Import Project="..\PortProxyGUI.Shared\PortProxyGUI.Shared.projitems" Label="Shared" />
|
<Import Project="..\PortProxyGUI.Shared\PortProxyGUI.Shared.projitems" Label="Shared" />
|
||||||
|
|
|
@ -149,8 +149,44 @@
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="toolStripMenuItem_New.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>180, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_New.Text" xml:space="preserve">
|
||||||
|
<value>New</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Modify.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>180, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Modify.Text" xml:space="preserve">
|
||||||
|
<value>Modify</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Delete.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>180, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Delete.Text" xml:space="preserve">
|
||||||
|
<value>Delete</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>177, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Refresh.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>180, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Refresh.Text" xml:space="preserve">
|
||||||
|
<value>Refresh</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>177, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_About.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>180, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="toolStripMenuItem_About.Text" xml:space="preserve">
|
||||||
|
<value>About</value>
|
||||||
|
</data>
|
||||||
<data name="contextMenuStrip1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="contextMenuStrip1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>121, 104</value>
|
<value>181, 148</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>contextMenuStrip1.Name" xml:space="preserve">
|
<data name=">>contextMenuStrip1.Name" xml:space="preserve">
|
||||||
<value>contextMenuStrip1</value>
|
<value>contextMenuStrip1</value>
|
||||||
|
@ -186,36 +222,6 @@
|
||||||
<data name=">>listView1.ZOrder" xml:space="preserve">
|
<data name=">>listView1.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>120, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem1.Text" xml:space="preserve">
|
|
||||||
<value>New</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>120, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem2.Text" xml:space="preserve">
|
|
||||||
<value>Delete</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>117, 6</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem3.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>120, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem3.Text" xml:space="preserve">
|
|
||||||
<value>Refresh</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>117, 6</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem4.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>120, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="toolStripMenuItem4.Text" xml:space="preserve">
|
|
||||||
<value>About</value>
|
|
||||||
</data>
|
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
@ -2422,16 +2428,22 @@
|
||||||
<data name=">>columnHeader5.Type" xml:space="preserve">
|
<data name=">>columnHeader5.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem1.Name" xml:space="preserve">
|
<data name=">>toolStripMenuItem_New.Name" xml:space="preserve">
|
||||||
<value>toolStripMenuItem1</value>
|
<value>toolStripMenuItem_New</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem1.Type" xml:space="preserve">
|
<data name=">>toolStripMenuItem_New.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem2.Name" xml:space="preserve">
|
<data name=">>toolStripMenuItem_Modify.Name" xml:space="preserve">
|
||||||
<value>toolStripMenuItem2</value>
|
<value>toolStripMenuItem_Modify</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem2.Type" xml:space="preserve">
|
<data name=">>toolStripMenuItem_Modify.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>toolStripMenuItem_Delete.Name" xml:space="preserve">
|
||||||
|
<value>toolStripMenuItem_Delete</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>toolStripMenuItem_Delete.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripSeparator1.Name" xml:space="preserve">
|
<data name=">>toolStripSeparator1.Name" xml:space="preserve">
|
||||||
|
@ -2440,10 +2452,10 @@
|
||||||
<data name=">>toolStripSeparator1.Type" xml:space="preserve">
|
<data name=">>toolStripSeparator1.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem3.Name" xml:space="preserve">
|
<data name=">>toolStripMenuItem_Refresh.Name" xml:space="preserve">
|
||||||
<value>toolStripMenuItem3</value>
|
<value>toolStripMenuItem_Refresh</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem3.Type" xml:space="preserve">
|
<data name=">>toolStripMenuItem_Refresh.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripSeparator2.Name" xml:space="preserve">
|
<data name=">>toolStripSeparator2.Name" xml:space="preserve">
|
||||||
|
@ -2452,10 +2464,10 @@
|
||||||
<data name=">>toolStripSeparator2.Type" xml:space="preserve">
|
<data name=">>toolStripSeparator2.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem4.Name" xml:space="preserve">
|
<data name=">>toolStripMenuItem_About.Name" xml:space="preserve">
|
||||||
<value>toolStripMenuItem4</value>
|
<value>toolStripMenuItem_About</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem4.Type" xml:space="preserve">
|
<data name=">>toolStripMenuItem_About.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
|
|
@ -164,7 +164,7 @@
|
||||||
<data name="listView1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="listView1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem2.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_Delete.Text" xml:space="preserve">
|
||||||
<value>删除</value>
|
<value>删除</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
@ -179,7 +179,7 @@
|
||||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
<value>3, 2, 3, 2</value>
|
<value>3, 2, 3, 2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem1.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_New.Text" xml:space="preserve">
|
||||||
<value>新建</value>
|
<value>新建</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem1.Type" xml:space="preserve">
|
<data name=">>toolStripMenuItem1.Type" xml:space="preserve">
|
||||||
|
@ -191,7 +191,7 @@
|
||||||
<data name=">>columnHeader1.Name" xml:space="preserve">
|
<data name=">>columnHeader1.Name" xml:space="preserve">
|
||||||
<value>columnHeader1</value>
|
<value>columnHeader1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem3.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_Refresh.Text" xml:space="preserve">
|
||||||
<value>刷新</value>
|
<value>刷新</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
@ -243,7 +243,7 @@
|
||||||
<data name=">>toolStripSeparator1.Type" xml:space="preserve">
|
<data name=">>toolStripSeparator1.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem4.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_About.Text" xml:space="preserve">
|
||||||
<value>关于</value>
|
<value>关于</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>toolStripMenuItem2.Name" xml:space="preserve">
|
<data name=">>toolStripMenuItem2.Name" xml:space="preserve">
|
||||||
|
@ -309,4 +309,7 @@
|
||||||
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib">
|
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib">
|
||||||
<value>zh-Hans</value>
|
<value>zh-Hans</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="toolStripMenuItem_Modify.Text" xml:space="preserve">
|
||||||
|
<value>修改</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -1,4 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Threading;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace PortProxyGUI
|
namespace PortProxyGUI
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
namespace PortProxyGUI
|
namespace PortProxyGUI
|
||||||
{
|
{
|
||||||
partial class NewProxy
|
partial class SetProxyForm
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Required designer variable.
|
/// Required designer variable.
|
||||||
|
@ -28,14 +28,14 @@
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(NewProxy));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SetProxyForm));
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
this.textBox_listenOn = new System.Windows.Forms.TextBox();
|
this.textBox_listenOn = new System.Windows.Forms.TextBox();
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
this.textBox_connectTo = new System.Windows.Forms.TextBox();
|
this.textBox_connectTo = new System.Windows.Forms.TextBox();
|
||||||
this.textBox_connectPort = new System.Windows.Forms.TextBox();
|
this.textBox_connectPort = new System.Windows.Forms.TextBox();
|
||||||
this.label3 = new System.Windows.Forms.Label();
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
this.button1 = new System.Windows.Forms.Button();
|
this.button_submit = new System.Windows.Forms.Button();
|
||||||
this.label4 = new System.Windows.Forms.Label();
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
this.label5 = new System.Windows.Forms.Label();
|
this.label5 = new System.Windows.Forms.Label();
|
||||||
this.textBox_listenPort = new System.Windows.Forms.TextBox();
|
this.textBox_listenPort = new System.Windows.Forms.TextBox();
|
||||||
|
@ -72,12 +72,12 @@
|
||||||
resources.ApplyResources(this.label3, "label3");
|
resources.ApplyResources(this.label3, "label3");
|
||||||
this.label3.Name = "label3";
|
this.label3.Name = "label3";
|
||||||
//
|
//
|
||||||
// button1
|
// button_submit
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.button1, "button1");
|
resources.ApplyResources(this.button_submit, "button_submit");
|
||||||
this.button1.Name = "button1";
|
this.button_submit.Name = "button_submit";
|
||||||
this.button1.UseVisualStyleBackColor = true;
|
this.button_submit.UseVisualStyleBackColor = true;
|
||||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
this.button_submit.Click += new System.EventHandler(this.button_submit_Click);
|
||||||
//
|
//
|
||||||
// label4
|
// label4
|
||||||
//
|
//
|
||||||
|
@ -106,16 +106,16 @@
|
||||||
resources.GetString("comboBox_type.Items4")});
|
resources.GetString("comboBox_type.Items4")});
|
||||||
this.comboBox_type.Name = "comboBox_type";
|
this.comboBox_type.Name = "comboBox_type";
|
||||||
//
|
//
|
||||||
// NewProxy
|
// SetProxyForm
|
||||||
//
|
//
|
||||||
this.AcceptButton = this.button1;
|
this.AcceptButton = this.button_submit;
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.Controls.Add(this.comboBox_type);
|
this.Controls.Add(this.comboBox_type);
|
||||||
this.Controls.Add(this.textBox_listenPort);
|
this.Controls.Add(this.textBox_listenPort);
|
||||||
this.Controls.Add(this.label5);
|
this.Controls.Add(this.label5);
|
||||||
this.Controls.Add(this.label4);
|
this.Controls.Add(this.label4);
|
||||||
this.Controls.Add(this.button1);
|
this.Controls.Add(this.button_submit);
|
||||||
this.Controls.Add(this.label3);
|
this.Controls.Add(this.label3);
|
||||||
this.Controls.Add(this.textBox_connectPort);
|
this.Controls.Add(this.textBox_connectPort);
|
||||||
this.Controls.Add(this.textBox_connectTo);
|
this.Controls.Add(this.textBox_connectTo);
|
||||||
|
@ -125,10 +125,10 @@
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
this.MaximizeBox = false;
|
this.MaximizeBox = false;
|
||||||
this.MinimizeBox = false;
|
this.MinimizeBox = false;
|
||||||
this.Name = "NewProxy";
|
this.Name = "SetProxyForm";
|
||||||
this.TopMost = true;
|
this.TopMost = true;
|
||||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.NewProxy_FormClosing);
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SetProxyForm_FormClosing);
|
||||||
this.Load += new System.EventHandler(this.NewProxy_Load);
|
this.Load += new System.EventHandler(this.SetProxyForm_Load);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@
|
||||||
private System.Windows.Forms.TextBox textBox_connectTo;
|
private System.Windows.Forms.TextBox textBox_connectTo;
|
||||||
private System.Windows.Forms.TextBox textBox_connectPort;
|
private System.Windows.Forms.TextBox textBox_connectPort;
|
||||||
private System.Windows.Forms.Label label3;
|
private System.Windows.Forms.Label label3;
|
||||||
private System.Windows.Forms.Button button1;
|
private System.Windows.Forms.Button button_submit;
|
||||||
private System.Windows.Forms.Label label4;
|
private System.Windows.Forms.Label label4;
|
||||||
private System.Windows.Forms.Label label5;
|
private System.Windows.Forms.Label label5;
|
||||||
private System.Windows.Forms.TextBox textBox_listenPort;
|
private System.Windows.Forms.TextBox textBox_listenPort;
|
|
@ -6,21 +6,48 @@ using System.Windows.Forms;
|
||||||
|
|
||||||
namespace PortProxyGUI
|
namespace PortProxyGUI
|
||||||
{
|
{
|
||||||
public partial class NewProxy : Form
|
public partial class SetProxyForm : Form
|
||||||
{
|
{
|
||||||
public readonly PortProxyGUI PortProxyGUI;
|
public readonly PortProxyGUI PortProxyGUI;
|
||||||
private string AutoString { get; }
|
public bool UpdateMode { get; private set; }
|
||||||
|
private string AutoTypeString { get; }
|
||||||
|
|
||||||
public NewProxy(PortProxyGUI portProxyGUI)
|
public SetProxyForm(PortProxyGUI portProxyGUI)
|
||||||
{
|
{
|
||||||
PortProxyGUI = portProxyGUI;
|
PortProxyGUI = portProxyGUI;
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
AutoString = comboBox_type.Text = comboBox_type.Items.OfType<string>().First();
|
AutoTypeString = comboBox_type.Text = comboBox_type.Items.OfType<string>().First();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddPortProxy(string type, string listenOn, string listenPort, string connectTo, string connectPort)
|
public void UseNormalMode()
|
||||||
{
|
{
|
||||||
var output = CmdRunner.Execute($"netsh interface portproxy add {type} listenaddress={listenOn} listenport={listenPort} connectaddress={connectTo} connectport={connectPort}");
|
comboBox_type.Enabled = true;
|
||||||
|
textBox_listenOn.Enabled = true;
|
||||||
|
textBox_listenPort.Enabled = true;
|
||||||
|
comboBox_type.Text = AutoTypeString;
|
||||||
|
textBox_listenOn.Text = "*";
|
||||||
|
textBox_listenPort.Text = "";
|
||||||
|
textBox_connectTo.Text = "";
|
||||||
|
textBox_connectPort.Text = "";
|
||||||
|
UpdateMode = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UseUpdateMode(string type, string listenOn, string listenPort, string connectTo, string connectPort)
|
||||||
|
{
|
||||||
|
comboBox_type.Enabled = false;
|
||||||
|
textBox_listenOn.Enabled = false;
|
||||||
|
textBox_listenPort.Enabled = false;
|
||||||
|
comboBox_type.Text = type;
|
||||||
|
textBox_listenOn.Text = listenOn;
|
||||||
|
textBox_listenPort.Text = listenPort;
|
||||||
|
textBox_connectTo.Text = connectTo;
|
||||||
|
textBox_connectPort.Text = connectPort;
|
||||||
|
UpdateMode = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetPortProxy(string type, string action, string listenOn, string listenPort, string connectTo, string connectPort)
|
||||||
|
{
|
||||||
|
var output = CmdRunner.Execute($"netsh interface portproxy {action} {type} listenaddress={listenOn} listenport={listenPort} connectaddress={connectTo} connectport={connectPort}");
|
||||||
Invoke((Action)(() => PortProxyGUI.RefreshProxyList()));
|
Invoke((Action)(() => PortProxyGUI.RefreshProxyList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +67,7 @@ namespace PortProxyGUI
|
||||||
return $"{from}to{to}";
|
return $"{from}to{to}";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void button1_Click(object sender, EventArgs e)
|
private void button_submit_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var type = comboBox_type.Text.Trim();
|
var type = comboBox_type.Text.Trim();
|
||||||
var listenOn = textBox_listenOn.Text.Trim().ToLower();
|
var listenOn = textBox_listenOn.Text.Trim().ToLower();
|
||||||
|
@ -60,7 +87,7 @@ namespace PortProxyGUI
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == AutoString) type = GetPassType(listenOn, connectTo);
|
if (type == AutoTypeString) type = GetPassType(listenOn, connectTo);
|
||||||
|
|
||||||
if (!new[] { "v4tov4", "v4tov6", "v6tov4", "v6tov6" }.Contains(type))
|
if (!new[] { "v4tov4", "v4tov6", "v6tov4", "v6tov6" }.Contains(type))
|
||||||
{
|
{
|
||||||
|
@ -68,16 +95,19 @@ namespace PortProxyGUI
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
AddPortProxy(type, listenOn, listenPort, connectTo, connectPort);
|
SetPortProxy(type, UpdateMode ? "set" : "add", listenOn, listenPort, connectTo, connectPort);
|
||||||
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void NewProxy_Load(object sender, EventArgs e)
|
private void SetProxyForm_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
Top = PortProxyGUI.Top + (PortProxyGUI.Height - Height) / 2;
|
||||||
|
Left = PortProxyGUI.Left + (PortProxyGUI.Width - Width) / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void NewProxy_FormClosing(object sender, FormClosingEventArgs e)
|
private void SetProxyForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
{
|
{
|
||||||
PortProxyGUI.NewProxyForm = null;
|
PortProxyGUI.SetProxyForm = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -285,28 +285,28 @@
|
||||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
<value>5</value>
|
<value>5</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="button1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="button_submit.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>227, 62</value>
|
<value>227, 62</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="button1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="button_submit.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>74, 22</value>
|
<value>74, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="button1.TabIndex" type="System.Int32, mscorlib">
|
<data name="button_submit.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>6</value>
|
<value>6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="button1.Text" xml:space="preserve">
|
<data name="button_submit.Text" xml:space="preserve">
|
||||||
<value>Add</value>
|
<value>Set</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>button1.Name" xml:space="preserve">
|
<data name=">>button_submit.Name" xml:space="preserve">
|
||||||
<value>button1</value>
|
<value>button_submit</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>button1.Type" xml:space="preserve">
|
<data name=">>button_submit.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>button1.Parent" xml:space="preserve">
|
<data name=">>button_submit.Parent" xml:space="preserve">
|
||||||
<value>$this</value>
|
<value>$this</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>button1.ZOrder" xml:space="preserve">
|
<data name=">>button_submit.ZOrder" xml:space="preserve">
|
||||||
<value>4</value>
|
<value>4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
@ -2603,13 +2603,13 @@
|
||||||
<value>3, 2, 3, 2</value>
|
<value>3, 2, 3, 2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||||
<value>CenterScreen</value>
|
<value>Manual</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>New Proxy</value>
|
<value>Set Proxy</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>NewProxy</value>
|
<value>SetProxyForm</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Type" xml:space="preserve">
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
@ -201,8 +201,8 @@
|
||||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
<value>5</value>
|
<value>5</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="button1.Text" xml:space="preserve">
|
<data name="button_submit.Text" xml:space="preserve">
|
||||||
<value>添加</value>
|
<value>设置</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>button1.Name" xml:space="preserve">
|
<data name=">>button1.Name" xml:space="preserve">
|
||||||
<value>button1</value>
|
<value>button1</value>
|
||||||
|
@ -283,7 +283,7 @@
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>新建映射</value>
|
<value>设置映射</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>NewProxy</value>
|
<value>NewProxy</value>
|
BIN
docs/ui.png
BIN
docs/ui.png
Binary file not shown.
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Loading…
Reference in New Issue