From d77c510423b9b9e20f6a714b8ed9d355fd37da4b Mon Sep 17 00:00:00 2001 From: zmjack Date: Mon, 5 Dec 2022 21:05:36 +0800 Subject: [PATCH] v1.3.1 --- .../PortProxyGUI - Core31.csproj | 85 -------- PortProxyGUI - Core31/Program.cs | 24 --- PortProxyGUI - Core31/app.manifest | 76 ------- PortProxyGUI - Core31/icon.ico | Bin 129212 -> 0 bytes .../PortProxyGUI - NET35 - UI.csproj | 178 ----------------- PortProxyGUI - NET35/Program.cs | 24 --- .../Properties/AssemblyInfo.cs | 35 ---- .../Properties/Resources.Designer.cs | 63 ------ .../Properties/Resources.resx | 117 ----------- .../Properties/Settings.Designer.cs | 26 --- .../Properties/Settings.settings | 7 - PortProxyGUI - NET35/app.config | 4 - PortProxyGUI - NET35/app.manifest | 70 ------- PortProxyGUI - NET35/icon.ico | Bin 129212 -> 0 bytes PortProxyGUI - NET35/packages.config | 8 - .../PortProxyGUI - NET45.csproj | 186 ------------------ PortProxyGUI - NET45/Program.cs | 23 --- .../Properties/AssemblyInfo.cs | 35 ---- .../Properties/Resources.Designer.cs | 63 ------ .../Properties/Resources.resx | 117 ----------- .../Properties/Settings.Designer.cs | 26 --- .../Properties/Settings.settings | 7 - PortProxyGUI - NET45/app.config | 6 - PortProxyGUI - NET45/app.manifest | 70 ------- PortProxyGUI - NET45/icon.ico | Bin 129212 -> 0 bytes PortProxyGUI - NET45/packages.config | 9 - PortProxyGUI.Shared/PortProxy.cs | 15 -- .../PortProxyGUI.Shared.projitems | 23 --- .../PortProxyGUI.Shared.shproj | 13 -- PortProxyGUI.sln | 51 ----- .../About.Designer.cs | 0 .../About.cs | 0 .../About.resx | 0 .../About.zh-CN.resx | 0 .../Data/ApplicationDbMigrationUtil.cs | 0 .../Data/ApplicationDbScope.cs | 0 .../Data/Migration.cs | 0 .../Data/MigrationKey.cs | 0 .../Data/Rule.cs | 22 +++ .../PortProxyGUI.Designer.cs | 0 .../PortProxyGUI.cs | 4 +- PortProxyGUI/PortProxyGUI.csproj | 33 +--- .../PortProxyGUI.resx | 0 .../PortProxyGUI.zh-CN.resx | 0 PortProxyGUI/Program.cs | 9 + .../SetProxy.Designer.cs | 6 +- .../SetProxy.cs | 0 .../SetProxy.resx | 174 ++++++---------- .../SetProxy.zh-CN.resx | 118 +++++------ .../~DS}/CmdRunner.cs | 0 .../~DS}/CmdUtil.cs | 47 +++-- .../~DS}/ListViewColumnSorter.cs | 0 .../~DS}/ProxyType.cs | 0 .../~DS}/Util.cs | 2 +- README.md | 2 + 55 files changed, 191 insertions(+), 1587 deletions(-) delete mode 100644 PortProxyGUI - Core31/PortProxyGUI - Core31.csproj delete mode 100644 PortProxyGUI - Core31/Program.cs delete mode 100644 PortProxyGUI - Core31/app.manifest delete mode 100644 PortProxyGUI - Core31/icon.ico delete mode 100644 PortProxyGUI - NET35/PortProxyGUI - NET35 - UI.csproj delete mode 100644 PortProxyGUI - NET35/Program.cs delete mode 100644 PortProxyGUI - NET35/Properties/AssemblyInfo.cs delete mode 100644 PortProxyGUI - NET35/Properties/Resources.Designer.cs delete mode 100644 PortProxyGUI - NET35/Properties/Resources.resx delete mode 100644 PortProxyGUI - NET35/Properties/Settings.Designer.cs delete mode 100644 PortProxyGUI - NET35/Properties/Settings.settings delete mode 100644 PortProxyGUI - NET35/app.config delete mode 100644 PortProxyGUI - NET35/app.manifest delete mode 100644 PortProxyGUI - NET35/icon.ico delete mode 100644 PortProxyGUI - NET35/packages.config delete mode 100644 PortProxyGUI - NET45/PortProxyGUI - NET45.csproj delete mode 100644 PortProxyGUI - NET45/Program.cs delete mode 100644 PortProxyGUI - NET45/Properties/AssemblyInfo.cs delete mode 100644 PortProxyGUI - NET45/Properties/Resources.Designer.cs delete mode 100644 PortProxyGUI - NET45/Properties/Resources.resx delete mode 100644 PortProxyGUI - NET45/Properties/Settings.Designer.cs delete mode 100644 PortProxyGUI - NET45/Properties/Settings.settings delete mode 100644 PortProxyGUI - NET45/app.config delete mode 100644 PortProxyGUI - NET45/app.manifest delete mode 100644 PortProxyGUI - NET45/icon.ico delete mode 100644 PortProxyGUI - NET45/packages.config delete mode 100644 PortProxyGUI.Shared/PortProxy.cs delete mode 100644 PortProxyGUI.Shared/PortProxyGUI.Shared.projitems delete mode 100644 PortProxyGUI.Shared/PortProxyGUI.Shared.shproj rename {PortProxyGUI - NET35 => PortProxyGUI}/About.Designer.cs (100%) rename {PortProxyGUI - NET35 => PortProxyGUI}/About.cs (100%) rename {PortProxyGUI - NET35 => PortProxyGUI}/About.resx (100%) rename {PortProxyGUI - NET35 => PortProxyGUI}/About.zh-CN.resx (100%) rename {PortProxyGUI.Shared => PortProxyGUI}/Data/ApplicationDbMigrationUtil.cs (100%) rename {PortProxyGUI.Shared => PortProxyGUI}/Data/ApplicationDbScope.cs (100%) rename {PortProxyGUI.Shared => PortProxyGUI}/Data/Migration.cs (100%) rename {PortProxyGUI.Shared => PortProxyGUI}/Data/MigrationKey.cs (100%) rename {PortProxyGUI.Shared => PortProxyGUI}/Data/Rule.cs (67%) rename {PortProxyGUI - NET35 => PortProxyGUI}/PortProxyGUI.Designer.cs (100%) rename {PortProxyGUI - NET35 => PortProxyGUI}/PortProxyGUI.cs (98%) rename {PortProxyGUI - NET35 => PortProxyGUI}/PortProxyGUI.resx (100%) rename {PortProxyGUI - NET35 => PortProxyGUI}/PortProxyGUI.zh-CN.resx (100%) rename {PortProxyGUI - NET35 => PortProxyGUI}/SetProxy.Designer.cs (98%) rename {PortProxyGUI - NET35 => PortProxyGUI}/SetProxy.cs (100%) rename {PortProxyGUI - NET35 => PortProxyGUI}/SetProxy.resx (96%) rename {PortProxyGUI - NET35 => PortProxyGUI}/SetProxy.zh-CN.resx (98%) rename {PortProxyGUI.Shared => PortProxyGUI/~DS}/CmdRunner.cs (100%) rename {PortProxyGUI.Shared => PortProxyGUI/~DS}/CmdUtil.cs (58%) rename {PortProxyGUI.Shared => PortProxyGUI/~DS}/ListViewColumnSorter.cs (100%) rename {PortProxyGUI.Shared => PortProxyGUI/~DS}/ProxyType.cs (100%) rename {PortProxyGUI.Shared => PortProxyGUI/~DS}/Util.cs (78%) diff --git a/PortProxyGUI - Core31/PortProxyGUI - Core31.csproj b/PortProxyGUI - Core31/PortProxyGUI - Core31.csproj deleted file mode 100644 index ac879a3..0000000 --- a/PortProxyGUI - Core31/PortProxyGUI - Core31.csproj +++ /dev/null @@ -1,85 +0,0 @@ - - - - WinExe - netcoreapp3.1 - true - app.manifest - zmjack - nstandard.net - A manager of the netsh interface portproxy which is to evaluate TCP/IP port redirect on windows. - https://github.com/zmjack/PortProxyGUI - https://github.com/zmjack/PortProxyGUI - git - portproxy TCP/IP redirector - LICENSE.md - Copyright © nstandard.net 2020 - 1.3.0 - icon.ico - PortProxyGUI - PortProxyGUI - - - - none - false - AnyCPU - - - - AnyCPU - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - - - - - - - - - - - - - - - Form - - - - - - Designer - - - - - - \ No newline at end of file diff --git a/PortProxyGUI - Core31/Program.cs b/PortProxyGUI - Core31/Program.cs deleted file mode 100644 index 02d1d48..0000000 --- a/PortProxyGUI - Core31/Program.cs +++ /dev/null @@ -1,24 +0,0 @@ -using PortProxyGUI.Data; -using System; -using System.Windows.Forms; - -namespace PortProxyGUI -{ - static class Program - { - public static readonly ApplicationDbScope SqliteDbScope = ApplicationDbScope.UseDefault(); - - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - SqliteDbScope.Migrate(); - Application.SetHighDpiMode(HighDpiMode.SystemAware); - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new PortProxyGUI()); - } - } -} diff --git a/PortProxyGUI - Core31/app.manifest b/PortProxyGUI - Core31/app.manifest deleted file mode 100644 index 169e618..0000000 --- a/PortProxyGUI - Core31/app.manifest +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PortProxyGUI - Core31/icon.ico b/PortProxyGUI - Core31/icon.ico deleted file mode 100644 index a4316bc8f72a18ee39b46e6a2f6d54e16a412283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129212 zcmeI52Uru$*2fo6Q7njx4GUsJv3HTCQbZI`q$nW0iHINwf4{xFLdxI~zilZ^3g)q0Q>e_NPXNd2m%a3_C2*wu%^ z$56M}npr<=-thVj{(Q((NM`>R=pNL*2x07c0y2_akC+R%4M>1aF&(*noJkvMx3@Ij zi7_tF*jR==HsKJ=UitSSvlGqQHvn% zBBdlnWB;8sn+>qUi;g^xYX6h^kQ%CRe?xN`Pp(H>*;F^t%QB=GD84!673a||sba`x z&9U@_Z!PSfEhXQOR73IXwAruGTwk~9*4f>Y-z9t|*fn{CI--z3VXwyxzmcC6C4=Y(KZ;FP@EN|T|jj(ZKD__P8ecGG2|EA}IW zD1I+WS}+g4;mxV$Gm7u|IqarGce|u|;(Y@@TiE_}#O178 z#P44;pFKUF7tsMphpZ~S2ko&%9Quf6KBOkQN3-*4&P!;S?Uhy9{d6=gX(uf zY9cCv`q^rYCcw+4(2o+@8)7&KWIa1!u49%nM3y_TsZWWPXMzq-o;_V1iqsE^W8z-3 z!h#uUHn$2~Zfg8)iyNBRQoE*SFVu5Vz~;1}^?uU>B&1k2GsW4?zvL}E&ar%smv-pY1ENe>i=(9Y?Oo;{ zJ8$qEdZ#VmF2SR_P0+JG1LV9UUbcUp{>v_CnW_(bVMc73ifCF#wy{FxRn4u7o-91ZU4D$I z`9Mdhuw(sa=pATdNFYt^& z)FzNLi;{y>5vyq^vxu5on=jMeIThkA9+3CfE?>>Z3)dAs=E+@GSi9)bb*NsvC{3At ziXb14v;KETx0n8cn=9pieKgb{%rs$p}i&bJqVVWjjtlqG+k|0hgwgXv~$rG34vvN%bu}_964}~ z=RYCZzG~mQst-73CC+1<2;l`{8x}O|g!J1n#oeKv$TwTptbSKuP!~{CP?vTmJ1C$6 z9c7POKPO>l(rKozN1cME!VpjX$SbnUt$KT$Q=7TqKk%6@^G}ef2gw zn43jpAL0e1sWrzm3vxw9MY&AYW-GAj&ehj*HJf8QLud87VCXm`Af#oh5q&4Sq(Xd+ z#D_#%PHu~iD9u&eGchMgGa4*ESzca9AU|(^T>-^sl?Vzn*NPI~c7)qp4tZ8RCBU|_ zoVXiueXCjZ{l=|tuk}Uuhq*v&wyd=12;Oe`>}KY>_4B5feSz9p@^5_E&L%v!K_2?- znT~M-8TM)&e|P9z*e#I{K6hT1H0c&^klDe{&Sv*AFu;XZdpY7>vi!|l&W7EPteTgf zI}!T?c9FDLGHoIAHq)nTfz9K8zs0>Z!hGu!xHH~ zdEYuVHU1NjK&SocqI*}%bhD5Bh%Xo5y{uoy!kZrE0TGMlnoNh1t&u%mc+)INmZrC} z-7c+C*Nts_=I6FQO@BRNrEKbYf$e*RB&Hy8Ya^E(^m+H-V@Fh1#8n&e%-I4$PzJcz zb-m55Y2WUUakC}&n@h6dxh~?5YTjafmzkDfjfYNggzL+Rz23acB}B)AQ|4aOB6bLu z^TcgN#JvOeq&=9c64+E(&AlI5Df>_6!9TeaW(u_%*_8MjUwy-QeaXE^GY-CJdb&C4 zxnjLT!left2AgtSPK63VbI))#v_a=Tn^whkx*O$8DLuF*#028tzHplO?#`vjd%-)g z^gU==os;9B(vLk^Cmg^i_ccd2jhKsg3k*=m{m=!%!Z{kliLQZ;Rx|(I`$`+oUeb8lPT#U_U zE3UPRuWw!22`MpO^T;YK6@I#Rw{R8+%=sO5mxMRk#BLX9Kjt~Ln$lF-{jIWCZ=UgI zU-)>=WaciY{AJEAq`GZsHd*_96L+`1Cv?`uhn<`J<^7brxhC6z1)pz)SubnIY*RH} zrm=*-RIc})b?E{6?xgd}MAjf?K_{U?W9OGi%#dK7{F|0Qz88ybGAH@%nXJBKO5Me5 zCTy)eN9FqVBdG# z%==NJUeg+z?W8XH%f403m3S3W9FVs({RIZrZK_{Ak2{5s8w=)E1#j}G;m zd!?>=oLBbDd2mFpw3>Y9Yev*3E@z2V`R)YmDMg|x>k6;E@M&VoSDTeu^Le?|f<%_O znTI~@ypZZ0ank4M>P5~Hdy)*6Kr+l9rkh)JYI59(1-t_ufPy9miwnIGnR`VJUNapB(Vh&n_vIavLU zwWWv669RgKNo@4oXWk9f6hTU`+=GQJ$fu_^h`F8f=CWl;PCnYo+Hy|L&1anq^E}xF zcRKTvHP`I~b>)P@?LD}{CRY^IaWn88mRUtpa1@YwL9Xhc0D__A;fKdmd{N)x4j?dXXzOj*;5>Chiuqlk~OD2TiX0e6dUJQHuq+3 z)DBJ20A-TkDK72hz%$IjeR*l#c9r4=2P(y_3+wA6yId@0}i;I=dNy!g=StdfZ*7app{gnnj9*D$6|VENu+>9>Yg9YPhM2RhuhRznq@{ zTO8W-Nc_XRj1=Q`HD*ZrGbiD>$m+#kDA#j-H7$dio(+*in+UPvM@%0IW^XR22o>XSj+Sh|C)>e?}nP)^oiE&sl&pJVLI9@zJZO*He=g!OgFaaMauRXnz%M49l zx3yU{PN{fPJTp;{7`<*od41BWBIpo%Wk9pt+yPqMWl}R!{dy5n#e5St2f>|3 z?`^&ub8j=b=7I12#V=G=eer3soeX)Kwy8kvk|N$8G#b`J1`0{VmQiWd`Yn`_)@{9H zKTpW8;l=fnp_G!+<@Bm>YYTNnDsnsxE;e_)^xV+)c-Nt05nQXx(`z@oR=a+W-!6ne zCz{9Ga*EvF5Po*kfknDlcESND(0&`)e?B3s@)htwLCvS=R+3$!mBH~uE6FAma}2+r z?WGIbX3x}_cS6fPNEFE75A*UIY6RQz7p=m%Uz;1WJ0bBW}Fg zw8Kk=1it2e%4je@>Z3)-la{RdcwLg~!#<`}>h-%61lo_@v4PC?w%qf9XQ_1Ft@AK2 zX{QKq`XvzIxUuZkX(GFv>|sxc4KhQlWlAbME7IrzO51<*c5vO**N#;mqe(5tOLbnc zB|o!me$Gq)5njSN+dbJnYon&I`RyV&#dnWz1M*;@RmGC=TA90-JY9ux^lJV*_6kl70778lG~tefC^hWv$>N)M=}EkxZ~ddbGXp zjPtwHE#+XH^`hAu3cV^7B;?FJlIjw(D7HXJ#~aMHAx`kJ!g-JYyX$g+Y1ag1O}ZtL z^6lPc4`pXJGVaX}=}1YXwIwS46^)NvfVj`y*hTJ(ACjpgz0PAP+->U-tejKX+?lmP z!+FOh6KCH;0yfhi?M3Lqy|82Oyf7wFM5RKQb;`HcbKt%D^~tBzU!PcBxI0_xB^#m$ zn&B23YAr=7lK&RV?!mqfE;YV+%`eg6nt7sX;TP{*{GBjTQ^FO=$I&;6pdeX!j|&nl z8fCk|n^ej0)$1Rz7Y(;ucqfwo67le`s=A!>%Px0^F!x#eu%M_w&@h5dW!(WqS(Usv z%lT?8E05$hVFgIzL*);j@0~xISnWK+JpFPO1S(*J9o8L#UVLIltYoqmcYcDLENj)~ zF>4>YJaR94N7f44Z$_p;rzE>Ssj-4Kc8Bmu^6gbV<`=K{pIqc}TIb)j)pCvq@M~>~ zQ7qp%&yTm%w4&~*t<+%^klJ?5U_He4T$Fb$lesO4qS#h!}}YFb>JfeOd1 zn^H2Y&KL{VeUh@f**19#aux@YMI=R|EKA-1PEGQ zV$G39`HjWRA}DVZTO@Dvy+}BBh3(yq>uv9TxR-7{Epk?+1Kxxw`biL^$8rPVzDrM8 z{#Dg2pR?JEmCdpjJ8CtqbaJen@j;63Vfj@D7e~tqD_fmcKJVRgQnr$WAOvcse{%cI z#P#6H{;{$Yp)IL#y9he+**oT>d`c~USzQY%#UERwAZ5Y2eeJg8O)8VsC!fb9V@vTX z3cVsP>Z!_Oqw4B&K%#Qg&PV*5$f=+`1Q6F41Vtg%$Y#`L%cay-g3ERG8D)j+GX}aK zhO^b5vLOPY8|I>-Yr$39SO?pbDzqf%3Np$0uVH0=h zR32773+lZ^_oWab{0o$v+m*x9dTE~uteR2L8J;)GJ^hKlft+GSa)#CBTQRS{N!&;* zn&jGw@YwqLHOrPcgk@0Mfpsn0nUY!BGb8YO@kY`JQ+0)~pba zVXnLrAjs3R7P8!@!pgT#b-|5Xop`4w{vX!y8L61QVh-A|lIgwnN!913kCxReI@E1< zYV|t|Pux~xH;=d8Nja9^W*$9h@M;M*@zcF>g&#=n~q-@Jqn2KDF072P8*Cp*T zQ2TTQ=GLaP1-YBr@UFTmqL%bXt=OOD)s?%+VzM^+w7^bp=JaX#Sde7-Rh#;#ZF}-u zt_JN;Wctn><>??1IDe~b3Sk`w_}TB{5VjtZ-JN^R!VV$S=C1uht7qMgav^KacTs}X zg$u7JB$S-nS)ad_jZLs8l^OF~QTp}HwYzg)&b=;`7LqdSD%aAruBYP^qdH>{rhdEThkVg9Wnzh0LnC%Y3gaRGEc;OK4Wf_xg)i zR_2aHX@{ShtXhAo8=7ZXTEl`mB8J3r5ctq0sS!}_yjLmmCd=m@b3QnG<2%gkFbxjy z19l@vn7kP_@Jsnc54nd&#hxatT-GQm@@c*k=jHX799*HOtD^Pt=PmiHvMV%iKa`xU zI(<|5H=jE;b{*TDjC*$cV0MK(0;QCfi=e(0=Jkz>e`S+v{en3*(8EJd3+A#f zSom^k!WJc_@~;-Js=5pE#6CDLax?3u~F4PjOvN*f_;aOvBw6 z+x4U%uVgtN0xHj{?K$z(Bop+@1bDF%inSNn&0$Y-3{SZdaYBh{(xJSI&w|UB@J7Ed z5QI9dZL)F%A2f7s>_}Y&$&qw(xgH$3z7_#hW)+-c-BSAWvPZ%f*@fFeULwrQZT4li zY^#q1Nh_e_)nRJ$OkVFd;9$z1#?9Mlf#PCP(OxZLRVa^`ofsILGb6vGTqjita=9H7 zIIrO%$KKucS8pjYUHxo#v+MI7j@br!t(;fNE8jgk)%5P!$tLKt$J7P4o}ZOHJWumf zt@R@xri1dZw8bTOR@*+%C-yd?*^oKW?}cwN{|c)w<~&o<4ri|_yuc$p!&U+O%&XIz zJiGB;otaB@UPbK|&=a}Q>JE$gWc34&pPnjOyU{O{1tovB^NB;7W4OoeNzk5XHg56~ zkdz;vRKwNdJTD@hb@qxic>S1{z`$I4&ixM^e7dU-aJ;Kw0^bzsM89<9H#pbczZ+|R z+&zNy2S~tljavNT6;K0jSFZjXV#=|%$Qq~dUi%D$7heZ zdJCQARD3PcP=JcVByWaU1QqlUKoi&ke%E}DniOH0HwoKfJ0q6=L>liaf#zk}7oG2e zhG=M(SkY1ZA-HB2KYJpp9!uiPMVn8qk@=x)9HO3w!0al};<-1=R>5o~Mu{oDr8Bpp zVsFLyG~j{(_=b=eY#Fi5=&JV7uqP|oE{GN9IZB!fMzSGxfOG~z6=rq@X3NZMfCJ2$ z0WpuZpY|?Q|G}fQTGM_1x`)ei?t3wFJKNMXS_WER^0tExGkyhV-n^o-PbEULzTRhk zzG|1?W=&s^v_7XOb3K&%>E#V`d}!JvSFPe~G^gyW&goF@&216-n-K<3ti7Ggev8PG zOJY$yWY+hFrua~cd60Olv-Kp@Nfv$os z&&U^cy zaZ8q@_sa{WAUeY<46rEQ+EQke!{S6BXw@zNf2eDzi=0|=TH@tyNl2 zmCh~qA#G!~U&)r{@cf+Y;Tu)mte|!)Vx2Cz$2ncf1)Z%v>dPT9-vp@*?DtM;UYbhS zsF|e6p+&BqbFov2N%jN3a%o5Tkr!d0J>Ga|0=i`=RlRFV+@=#fM{2|O*GBC>918rQ zh>t9RbuYwT>K^xIc70%R@mX2)am$`C zS6Py_{qaP1Y4FJ#C)6$MyMx4r2+GY+)hW@lxRkqou{&2(b=Jn!HkvJTzIjfY{GV(3CyIrO-k67OFUCFikV1;VCWeAc3G^kBC(_nb}1Da%;mZIWJB zpVUlZ0(Xi@ESA#=OCbygIqOx;;!9&=P0m}*`og(l)U`?{LN^?E?bl5Wn%u$AWW3IGx^-#Iy6wHbWwzS#EHL zo$Xt_VBM;cRok9`9N(axxX&R^_45;Tkk3R_Ru!Tk8}ez6ojJ_pGvKTX+Q7)< zTioj4efA*%4X@t^iNxi0l&UWwL-jDzR|(~d?YD{Sz$r*lOj`8&0rjiAU>iIL0UlZS z?^6!o1rh;IN>Km7FbvU3YisK?Ki}&%zMhL4yggMv)0&TxE-1)D!P{$NzOOe2{QvaO zl0PjiZmXBK6w%k86Q*XM{MFT!oL+wCU-|_sCHn<%!Ts^8{2^h!GRWYKb^bxz@IdtD z_q+Mr@tdq!0@2-DwWp_t$=ycH!(v}v?YdrRrQKF zm4FPn%!1zncno&uOyYDaKEU^kde2qzpSpTyb9V#3zG>3+2xt|#6DfGGrDP|6QMdMo@YZGXq{cQ1X8G(Fl7;QGXd@*eFk&99D8 zUk~Wrr(9>a0U`j((^r%~1m(g*_4h0LgLyn59wUzO6^QozKD#RbB|$7M&f^};@_$uU zK|$tfG*aH%$8#3kmjH|e@mF~U<9K6Z!z_G&^(}v&`R%@5v*DkaLmmt})Ma#ccQXeE zyJ}+4Ys-Co=D-6%o%e6|Q&K_%(AWdfzJBvyTKHRgz4^<^3YVfV+HQWR1w8^j3YSMA#pq{e%Qq@z5JlL@t)>!2A=XYu#sL2lEAd%+4B)d#-(Y}(n`Ihm3c8~DZm8OaL|7S#69{CaK39a=CoC|UFLSZt6K z<(h_$luALx@WF!twSCksO?V)%XRiBaCns$WioR=)N!;0rO4tPd4b=A0d)49Jff3N^ z#5ugUmz$ZqB{2TH2RdnM4*>oXsO@6})L>c(JaV=&=;JrN8Z1Qc2>f6T#}JLHkThB2x|LyNkw>2&^(vY*w8R5E;&F7 zo34Gq?I{fw>cY+=kAMJF7a;@)sp0XWu;ut&_gs7ZsEY8ngL0$gu_Jb8= z;J+o@+B_&bHFe|fZ1s1Zq$~~pDUs(i3nGwyiv5*K>#>m2M__sh)0S%qc6nh(?{BOA zdu83V`18oFfD}J7(}PVL<;q@`_5q&|iJly-M zCgnHAK;``Dxrj4|$PotOFg1}zQthEG4{uSfX@6QaE%{;`&k-XH#o)e#-Mi>rl$*1f zmi&L4rlhcdJLa|#G0IrHE9#m~baGgb_}`XEOMa^EfMMUI^izNVVURlDpMDB3GK~6< zmb#2Y8p``2Hu{ww4!JSM&vR~jXpj^xFE@^+{-u%dx7TKKbJL87aL?m7jChdGchEo5 z2dqDDQCuuavN!E$dL@&|EGa2OVLu-QFO=W%8lNBRaDNc+GMLfiH^mo9KPf5r(p`U_ z1#Lg~3H`gD$j_UzW3>2RSy{F)i1yC z{!3bXedogTFp~aPRTV8E5Knp0(wFwDG{fyb;b@k%W(Ohmlwa45F(i7hg}5vAqS74^q-=4R#w91z+juZXu`U> z{_X?*?XjWqzpAQiAqIEjDj`fL!ymu22LSqE2cMzvzpyw|C@^eao<9Nf;SMo_>3>;S z(UQOrQ)mC66+HlO|99vaO#cId>>W`dyd6l=N_e>Vo&SXy+3S3qTrZ-XKc6ixELk>C zdVDm0>0tGJ(^}52{ORcEm=bi$#SzVaw#k314om?fVAK$D!{vTfLdsUkdFs5Vi1l5_ zh_&!=LhVEEe*71dHfoQ4J90bd@23JKeK9lezN>vxLj!wnddh21;-O4b)H--L>1)65 zcA%7bA#w-seE_h+M)mP%qD*gp0U`A9C2-%MXE5#^&{{@cpZjj3c53wi;NOASr`HyI z@u6FMXoO&Cap7`o@YQ?xB%z9dp8XiibA5g8yN%in?v>C1Uh;fd0K(~cPD=8&)Qk{e zV!W{jCUJW^8r(w}O8WZTcN@J&1O5{N4j44XefHI-^ee|E`^g2Q>}^6PZ2|XRhK9aA z_uWSGgL_4PL6H7cLKG5rtfs1TNnph78|ZkcY;+2E7HE*^>vP|2TJJLrlnyU>rUq?# z{YL^RL^Lxib{8q>+GAY0U=t>72RvBx^||jhR_HW5Sl~ppS|c91+@kz8&&-M2flg3J zp!FWs@6z@4x$ic1Ke*R6$dFXbGD%-NwMq(e)&$4AzJO0V8IR56@9g_r7`@wleeSy* za1h+98v^iBn$7rgwgFM7fMbP)8S8`Moa}Hp2OBZjd%^uY`swR)-))@ODR`&}wRZ5V zE-T||XsG3gD>L)K=I-kr=zd^-=lc5GcN;Hp5*`jhlno0*-+eZreD+1edn)78b%JsE z``iBatYGgmgZ;nu^||kMAh_2#Y#dhV4!HgBQBzaXjLNFAMWon|1_7B08Q20rcp&hF z;*EWM?z-C|jxq&^U#_<)npW4%VPnG&LuF}G%H$C+$L0TR> z*Ex*HDw2tQ{>Q2PNJ=Liz^9n~z!i(PV2gy|Uhp}pNl9s8g4F4I_Xq1fF|FkUE1YZ% z#bS^2+VA^XTUR|dCJ8O$8+`4tdw}^zeDqV>?A*kyl)lHl>H2O5$sLD>6Z{#2H-7i#B`L|kLrtifLUZ)PJ8x2AqW28c7J7Z6 z=aqB{_&JG-UBlOlY96amsr$nDutc><}XGVEmfL^tieQQM_{9*D6& zyb4gB(^3Zz0RKFv1!nA~{-cf?W1seMytUQgd!xfoe?fY2)%$##*@O07Q4tfN`LVV- zV$V>07oX_yX=!Pik(Y}Vj|i3b@%5bD<@0?ecoy#8`2CpI789xYF()T!!$j9>Fza7Y zp0+M7TK6s5kEf#V_{?8z2V!@m=H-U|(+@V7zD%UDT3ef^XQtn>{*}%H9VZdRgR81a z7fmF+2CJ@hbyf39i+{)k6GTIOJZE?Nc!FnF>BP@#ep^BQJI%rJX`+;qpNAKX3_t1R z=e@Ai=f`aD%A$qu*9VNT7zQSizQ3w#b93En zBJsXCF-R!E&wpX(uf~B4#qnSHG*OP%)y3>05CxKkLR(tOoG3c?ttaLFOIca$j-=#^ zPyA8KTBzrp8_xZ{eoch!mX_K%K|u%yJYi>!9~jp)(o6)+DRrcblPWFyp@772x6nGb z)o`R6@A|j2G*6F>C5lAHYJ5YYm$nawru5ht&-#~@r)&rbGj_%X@>Tj_z<9<{$avJh zyPM3CoBzV(zjN9R-Z;|19Fy8x)_BstrKNFZRJ5mjNaWE_dgl=wsr2JPf68ZTb`J4C zWc+DgG!cwJ#)0{W#|UFx|DK+1=H&Ftk5PD@c7Gh0$8wA@R`mz>?iME`z172q?8zUB zG3&!s=2+9etE+QzLeh7|@Hlw_Drj}9KVcade?N8^OZvCA6)lfURP!I|`3{D&{L!vI zWxPgVVdk3bf~S_au$`s;L@;OnIAXNxpPAz;M~ah<@(%{{WQ;>bv;Gw|_{09etH}Pr zV6N(M%4pR;zc6ASm}jLO3FZkO&x}U>o0}VF21TCzj0{}`k9S6+{u!C^TZyp;vuK@P zXDp}t8~tl4sumReAZbJ!J9!1{H?8#Fq6_AOInz!&W}BLN>&yN0kQkA!|DSiC9y=jn zNGWv0#+I?HE3LlMqf6hk`O(SzVOqC{sNDu_y>mBFz4qY5%}U}gJHIVW&Dqp9@9(w) ziJm9G{7yZ?ImgpT+4`Lp{hiNAN#783+$I&dO$V$q@q4gB=j!r4VvYMNtG{D`#2<3V z$aUR=wMNBgE~mfx4|I$&ek0EEr5i1}Q>O`2yBV5+3^~zQSI;q!jkx$=VSF5a1uBXc z%o8@g8Aylz&eg_e@uT>E7bEc1G_N$Sj&)>vVhQu9dsH>mdTd(wd-;+^=dIU_y9`ZQ4ELF0D-6l2n2CNGv#72G$yZhZ4n+eFzD@I>IpRr}wze`?J-JKI^~GJc$ntujLgm&q66iVt=M6pO&P zVzKt%GKGS;Dht2tQoJm6K6>_pj?2Llfv`_*1780J(u~r-nw%E3Cn(fUHZa&ro)nIh zPDzj6O*uYLK3dKN$pQT*0M!M*{{BOYPD7O@=mc1EaXce0*PZj$^{4OuL!~FZqAnG#*yw) ztoOg3e;&-bkA||sG^F6sMzo1)NwAaS^SZK<5nIcBxMCBgbr>Es=p5zkXk73KdK|2Uj= z9}Tv`b%FjPfxc8%p4-z$g=s1OjQ<@CdJMM@;kt)_{=-Ys^>dMJl_mcg|32LH9xe7F z^bWzpg2Cagq-%z;xu~z_8XM}_M@#)j+K&i*33#Z9y?C;;#Q&33abE5}^Ph}#y+@1v z2m_%15R&%L65CKw_Rsu3qov-X#Sfr;&!FpXDA|>I{~|6oB;a53UyYVJk0w82FUnU& zo)L!!i$r^!aU{D-5d&ZEhf z#++pSDC5Izk%nR*2J{nSCR>;J!p^fWDdv~+e~za5jy7K?&y8lkx$YKu7HCf=DR<6= z=7t8GXsoXraQ@rTR_D>?Pi{u)hNNqnsZmB^FfGJhl&vcd{7&=y&!errqtTzDlsNvh z2PVX56UnwHBT*2CpXiCVRxHVV=kT^7H-oPE&qrf@N25=*Rh0{>!jKx7FKxWyF3D9! zofGW=@n}!Fu9;f!?dkoj*ziA^|9>>rb+~%NAv&-?a=OhzB9Pxaxhr&4hivv6BOke0ebunjcGxy^eQx zcTJ+VTt<5OV=-S?`o6mO;^8vu2H)U6r2Z#@+e+*kg(|#yxLg(kc z(M9{NsPy?h3&fpv(o*dIcx);ooA_)<3{P8}XAm)EaTFTXH^w?yi9r?Jo zH0N_iN2q=I)0k7|D=$MyG2%M%as6Eky1JUDr>9=K>gP4T&Bv1+yypi89C~v$<2&K# zjX&i+Kyi`#DJ+V&*yjg``4CW2?8&$v4CcD|-FtAj&)3z)>%{@$ zK3vQt4_6%-cKUB;Wu?Bd_<*h1zTP0_BLE{V{l{gfb!lu&;|mWxhV}KH1L8h%40Syj z<^Q{Vb#&CuNlG+#^7WZV_VodAA7L2r`FDJVN)O6!?Yz8KhG-N|t*_5q5cko+P}P@F z?*H0VRTV*$K;TdI^#w5>WiaCOzc>xH7R}AME2E-Re)#&$gGVcaU1vslVD99urkQDJ zR~-EO7j=x*xcBj!PcY*D z>-cwfcTUdDe_?_STvP9d1#usTFyh~T{41((l7tX}3_t8*5cly5BmV!6e^Ybz+Q>K+ zf4=}Ocp|`v|9|7(+10?Fl8LzIk6+g1hXb*nAWZc5Q~GQRir?!61Z}GH$1Q;;8WTDG zHFe=a!4cx|{`jTvL}enzzooU1J2qM0-9He-eS$NQ;@?GXnVyk*=PHW0y3L=k3}&zl zg#X{)f5+oKWh_lex#uZd=&oXa!g3II2E7`L$9VUxQ(a^H&d}Inq5ec}n8D8)^wnxS zZMSz+b0(x;aP<%3?g79I`qyAQ#k{vJ)pa2U0>XDx_y@0m84RpJuV&-rwW0=p7)e^w z=^xAkV$a}r8jP2?Q|i&&n!5%Q%GZn}@xTmd(_lQsKO$KfhYVQ>GoW3A@e=>q#@M~c z&{Z%4`ZO3X@lVOU@)#Mm8fHMB21615?k@7AvVfT5ahG0y43xZ-=f6#l?7u}9#t0bK zhiTjj%63LtwpG?I8cf^4@rRQbv8ONg6ukyB29&ZYLsP^FN3FB{x9Y+Jf!ckhE%mPZ z-Ok3=L0S6<6~Whm3||8?pihIria(`~HRFk=z5iAn5O>-M*l$u<@Rg|B)7{PdH@+Yv z*1``$HE7Fx z_Ty?-Yx{Is{YWjae~gM+2jb6w9t~*K_gCr4uu<~J?b;yrgAe|YS#b$6{1oN8#jou5 z9O=ogI@jq^fk`%`4{945c?q{OyfpqeRA&3-}xAsp@Boi@WBjd*Wh=W z{_cFB)Ww3KjD4T7dlC_ET-vMZ7yinp=C-^w*!UgIs8~>c1~h5#D=ld~j@qqFM(xys zhYPIGnWh|9e~a#pPS*Z>tgI&r?r0TTatE$XQ_mu6E?vNe%65AcvGhz@!0oi ze*vOrYYRMZhLk>uzJ5}EKbF?|Dic!0iqVOiVFv%xps!AUvW?!O36C~NCod;gN2G{S z*Qcwyb$V8rlRY+RR~tHU3up%ns5PQ@AH7Ed#D8=WYyR*@OHsv2>N>S{lyJuvn7gBs zK>Q~-)Y{OykKPMnKZ?N!YIkHjad+ryZkc?p^z+vcy#hsc%nkB3BCJheh~jL zK%kUyd9iP>I`w_#|IFD~^HmR@cAyfSybZL2i3Pp!rcRI9rw)%L!nLkM)+J{0Q`e)D z+{m6@cIO@@WoH*U1+;+)0<{kG?vJI|_w_Xq@%&?3Wi1zVeVg0!*2WYV`J+>}!xI7O z`qR6Q5l{oq^^Hve4(hbzxcsmow|7jVu6Jbg;u5V`lyq>Nblaqj}Ljn)$)#rafnsj${O{UhQyfHvNC`USfJhTDoy3xCj6;Xx9Ga)MG8CBu& zlGM78yW6JaRKKkd!Mltlpn>syCR2iP=Bwc;z-da}q)0m}}&Z3oZWfng$IsBjvj83TIN$);R z48)%S9C%p0Eyva4D!H}or!h;_t&yUkMas$8Tz+`8L2taN)8oWX!3_SVLGVe#;xZiR zr!h;QFL_d7!&k$={6n?a++np48hd57bDLaqF<_Ul{Fmh1) zMejcT5Qsg40W}C#)T^kCOFqz_wiPWzSyHh=HZ~u$ff1lTpXfOjD5(T9_`L>%Bg&oC zk+FyS)3&>(gEg=Ig9W}oya}5x2-?ALAx!SiA9{`j9tL%1K$8Zz%LS3dP#6g~Fg63=X7{li8F$iC@{J^*BKq)SUrc z8bqGGkVLD#z3E!JO1TrN?Y>}(K>P=Rs@71c-m?GZl^`PzGoVicqTI=jKh?apJzglR zTr>V}+CWzQt80I1pE@5A#Ge8E8c^#<&pu_$Qc;t)E}=xG5?dq!t_QS}UH{simie@3 z^@k{X0%ky;20P3#%(wiozyH${i;+khBnRrwfG!Oh($jzY`+p>2`6o7mP8^3B(5^uO z!uGfQe}58(k;)S!59-cds(54Z?NQE9#OG`n~@@(((IS`@xE`pzaKQp+Qf^lZURI4fQ`g|MR!H zkCyx-C0Urk&l)7yScEoaXa4m3-)M>3VEI8hDFZY3p9YaR*N3Ce@n$2wTC8j5mA zr$F5qz#(cU+Vb5$*pu6Se*S+bbRR8cl9WOGCpc*j9o^e1%YPdGGg@LalzxP$NW&AA zIIDB<^=U~zjsF`;y+>Qw6EXG?1}c?hIOI>`e@9zvhQpr_)uZr)K~1JB_rt4uT`kQ& zjsG7Gtw*Dc(9=iZi9qTdJO9?wqMzpf7>zL*PM<>6j=dlYdaR~g=t8^ z?1>c+<$Zah@t^YNebR4U` zgzFvx@gJRJJVE?ut1S6x{lBrQ^=R}vLhlef+DJs`CfBFNijGFT#+y&0DfZDOCu++B zy$yTFLo?QGyv1%X>JyB<`$J?l9*T#j&4n`dqW&C*?i8MS!jyxj{4;RrU(oLo4&lcUC z9juJF{dwF5OS^b$<$_^~eNWE2+b*5;H46vJcSbpX-+r=QU;7ei2;TogNXi}K(58H_ z@FM*8{xZrKTn%eti1Lw!Vj%v5Pn?xfadjl_r@8bQF&x|&{*9iL-`WX?)7g<{LHq}a zsPl*0ihNzKk~`Yi{>C>(-r;E{bxGk;gBANMXZtVh)nyZMEX`PMuf;xZu0)>XeaKHTxBK6SC@J%y|JvtME1QtElND`ifVS$ zInV|MAlg*2t?>J^yIrk}u{7hYy->ar*2V`N&v|>}V*)}sFUnY)Olb?T7iH?x9-I#< l#kg5^)K@PWZ}lFJ^??|F3 - - - - Debug - AnyCPU - {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F} - WinExe - PortProxyGUI - PortProxyGUI - v3.5 - 512 - true - false - - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - true - true - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - none - true - bin\Release\ - TRACE;NET35 - prompt - 4 - - - app.manifest - - - icon.ico - - - BEF27898E4C102E806F3241497048E740EC39033 - - - PortProxyGUI - NET_TemporaryKey.pfx - - - false - - - false - - - LocalIntranet - - - - ..\packages\NStandard.0.6.7.1\lib\net35\NStandard.dll - - - ..\packages\SQLib.0.8.6\lib\net35\SQLib.dll - - - ..\packages\SQLib.Sqlite.0.8.6\lib\net35\SQLib.Sqlite.dll - - - - - ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net20\System.Data.SQLite.dll - - - - - - - - - - - - - Form - - - About.cs - - - Form - - - PortProxyGUI.cs - - - - - Form - - - SetProxy.cs - - - About.cs - - - About.cs - - - PortProxyGUI.cs - - - PortProxyGUI.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SetProxy.cs - - - SetProxy.cs - - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - False - .NET Framework 3.5 SP1 - true - - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - \ No newline at end of file diff --git a/PortProxyGUI - NET35/Program.cs b/PortProxyGUI - NET35/Program.cs deleted file mode 100644 index 8a8a627..0000000 --- a/PortProxyGUI - NET35/Program.cs +++ /dev/null @@ -1,24 +0,0 @@ -using PortProxyGUI.Data; -using System; -using System.Drawing; -using System.Windows.Forms; - -namespace PortProxyGUI -{ - static class Program - { - public static readonly ApplicationDbScope SqliteDbScope = ApplicationDbScope.UseDefault(); - - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - SqliteDbScope.Migrate(); - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new PortProxyGUI()); - } - } -} diff --git a/PortProxyGUI - NET35/Properties/AssemblyInfo.cs b/PortProxyGUI - NET35/Properties/AssemblyInfo.cs deleted file mode 100644 index 4e0baa1..0000000 --- a/PortProxyGUI - NET35/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PortProxyGUI - NET")] -[assembly: AssemblyDescription("A manager of the netsh interface portproxy which is to evaluate TCP/IP port redirect on windows.")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("nstandard.net")] -[assembly: AssemblyProduct("PortProxyGUI - NET")] -[assembly: AssemblyCopyright("Copyright © nstandard.net 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("1b166039-e98c-404a-89a5-c981364b5546")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] diff --git a/PortProxyGUI - NET35/Properties/Resources.Designer.cs b/PortProxyGUI - NET35/Properties/Resources.Designer.cs deleted file mode 100644 index 0edb72f..0000000 --- a/PortProxyGUI - NET35/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PortProxyGUI.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PortProxyGUI.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PortProxyGUI - NET35/Properties/Resources.resx b/PortProxyGUI - NET35/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/PortProxyGUI - NET35/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PortProxyGUI - NET35/Properties/Settings.Designer.cs b/PortProxyGUI - NET35/Properties/Settings.Designer.cs deleted file mode 100644 index 62dbe99..0000000 --- a/PortProxyGUI - NET35/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PortProxyGUI.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.6.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PortProxyGUI - NET35/Properties/Settings.settings b/PortProxyGUI - NET35/Properties/Settings.settings deleted file mode 100644 index 3964565..0000000 --- a/PortProxyGUI - NET35/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PortProxyGUI - NET35/app.config b/PortProxyGUI - NET35/app.config deleted file mode 100644 index c5c407b..0000000 --- a/PortProxyGUI - NET35/app.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/PortProxyGUI - NET35/app.manifest b/PortProxyGUI - NET35/app.manifest deleted file mode 100644 index f6a3bf4..0000000 --- a/PortProxyGUI - NET35/app.manifest +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PortProxyGUI - NET35/icon.ico b/PortProxyGUI - NET35/icon.ico deleted file mode 100644 index a4316bc8f72a18ee39b46e6a2f6d54e16a412283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129212 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 l#kg5^)K@PWZ}lFJ^??|F3 - - - - - - - \ No newline at end of file diff --git a/PortProxyGUI - NET45/PortProxyGUI - NET45.csproj b/PortProxyGUI - NET45/PortProxyGUI - NET45.csproj deleted file mode 100644 index 5509a2b..0000000 --- a/PortProxyGUI - NET45/PortProxyGUI - NET45.csproj +++ /dev/null @@ -1,186 +0,0 @@ - - - - - Debug - AnyCPU - {1B166039-E98C-404A-89A5-C981364B5546} - WinExe - PortProxyGUI - PortProxyGUI - v4.5 - 512 - true - false - - - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - true - true - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - AnyCPU - none - true - bin\Release\ - TRACE;NET45 - prompt - 4 - false - - - app.manifest - - - icon.ico - - - BEF27898E4C102E806F3241497048E740EC39033 - - - PortProxyGUI - NET_TemporaryKey.pfx - - - false - - - false - - - LocalIntranet - - - - ..\packages\NStandard.0.6.7.1\lib\net45\NStandard.dll - - - ..\packages\SQLib.0.8.6\lib\net45\SQLib.dll - - - ..\packages\SQLib.Sqlite.0.8.6\lib\net45\SQLib.Sqlite.dll - - - - - - - ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net45\System.Data.SQLite.dll - - - - - - - - - - - - - About.cs - Form - - - About.Designer.cs - - - PortProxyGUI.cs - Form - - - PortProxyGUI.Designer.cs - - - SetProxy.cs - Form - - - SetProxy.Designer.cs - - - - - About.resx - - - About.zh-CN.resx - - - PortProxyGUI.resx - - - PortProxyGUI.zh-CN.resx - - - SetProxy.resx - - - SetProxy.zh-CN.resx - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - False - .NET Framework 3.5 SP1 - true - - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - \ No newline at end of file diff --git a/PortProxyGUI - NET45/Program.cs b/PortProxyGUI - NET45/Program.cs deleted file mode 100644 index 2e2c332..0000000 --- a/PortProxyGUI - NET45/Program.cs +++ /dev/null @@ -1,23 +0,0 @@ -using PortProxyGUI.Data; -using System; -using System.Windows.Forms; - -namespace PortProxyGUI -{ - static class Program - { - public static readonly ApplicationDbScope SqliteDbScope = ApplicationDbScope.UseDefault(); - - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - SqliteDbScope.Migrate(); - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new PortProxyGUI()); - } - } -} diff --git a/PortProxyGUI - NET45/Properties/AssemblyInfo.cs b/PortProxyGUI - NET45/Properties/AssemblyInfo.cs deleted file mode 100644 index 4e0baa1..0000000 --- a/PortProxyGUI - NET45/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PortProxyGUI - NET")] -[assembly: AssemblyDescription("A manager of the netsh interface portproxy which is to evaluate TCP/IP port redirect on windows.")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("nstandard.net")] -[assembly: AssemblyProduct("PortProxyGUI - NET")] -[assembly: AssemblyCopyright("Copyright © nstandard.net 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("1b166039-e98c-404a-89a5-c981364b5546")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.3.0.0")] -[assembly: AssemblyFileVersion("1.3.0.0")] diff --git a/PortProxyGUI - NET45/Properties/Resources.Designer.cs b/PortProxyGUI - NET45/Properties/Resources.Designer.cs deleted file mode 100644 index 0edb72f..0000000 --- a/PortProxyGUI - NET45/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PortProxyGUI.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PortProxyGUI.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PortProxyGUI - NET45/Properties/Resources.resx b/PortProxyGUI - NET45/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/PortProxyGUI - NET45/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PortProxyGUI - NET45/Properties/Settings.Designer.cs b/PortProxyGUI - NET45/Properties/Settings.Designer.cs deleted file mode 100644 index 7085b3e..0000000 --- a/PortProxyGUI - NET45/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PortProxyGUI.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PortProxyGUI - NET45/Properties/Settings.settings b/PortProxyGUI - NET45/Properties/Settings.settings deleted file mode 100644 index 3964565..0000000 --- a/PortProxyGUI - NET45/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PortProxyGUI - NET45/app.config b/PortProxyGUI - NET45/app.config deleted file mode 100644 index c81d505..0000000 --- a/PortProxyGUI - NET45/app.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PortProxyGUI - NET45/app.manifest b/PortProxyGUI - NET45/app.manifest deleted file mode 100644 index f6a3bf4..0000000 --- a/PortProxyGUI - NET45/app.manifest +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PortProxyGUI - NET45/icon.ico b/PortProxyGUI - NET45/icon.ico deleted file mode 100644 index a4316bc8f72a18ee39b46e6a2f6d54e16a412283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129212 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 l#kg5^)K@PWZ}lFJ^??|F3 - - - - - - - - \ No newline at end of file diff --git a/PortProxyGUI.Shared/PortProxy.cs b/PortProxyGUI.Shared/PortProxy.cs deleted file mode 100644 index ef9fc6c..0000000 --- a/PortProxyGUI.Shared/PortProxy.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace PortProxyGUI -{ - public class PortProxy - { - public string Type { get; set; } - - public string ListenOn { get; set; } - public string ListenPort { get; set; } - - public string ConnectTo { get; set; } - public string ConnectPort { get; set; } - - } - -} diff --git a/PortProxyGUI.Shared/PortProxyGUI.Shared.projitems b/PortProxyGUI.Shared/PortProxyGUI.Shared.projitems deleted file mode 100644 index ff4625d..0000000 --- a/PortProxyGUI.Shared/PortProxyGUI.Shared.projitems +++ /dev/null @@ -1,23 +0,0 @@ - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - true - b38ef2b9-e38d-4d6d-bf0d-7c1934d6cfdc - - - PortProxyGUI - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PortProxyGUI.Shared/PortProxyGUI.Shared.shproj b/PortProxyGUI.Shared/PortProxyGUI.Shared.shproj deleted file mode 100644 index f04ef6e..0000000 --- a/PortProxyGUI.Shared/PortProxyGUI.Shared.shproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - b38ef2b9-e38d-4d6d-bf0d-7c1934d6cfdc - 14.0 - - - - - - - - diff --git a/PortProxyGUI.sln b/PortProxyGUI.sln index 5023366..1aa68ce 100644 --- a/PortProxyGUI.sln +++ b/PortProxyGUI.sln @@ -5,32 +5,17 @@ VisualStudioVersion = 17.1.32210.238 MinimumVisualStudioVersion = 15.0.26124.0 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PortProxyGUI", "PortProxyGUI\PortProxyGUI.csproj", "{7459E9F4-8B98-42D6-92CF-E90961E05C90}" EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "PortProxyGUI.Shared", "PortProxyGUI.Shared\PortProxyGUI.Shared.shproj", "{B38EF2B9-E38D-4D6D-BF0D-7C1934D6CFDC}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{E48EF63C-74A5-42B5-BFC5-20652E856B1F}" ProjectSection(SolutionItems) = preProject docs\ui.png = docs\ui.png EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortProxyGUI - NET45", "PortProxyGUI - NET45\PortProxyGUI - NET45.csproj", "{1B166039-E98C-404A-89A5-C981364B5546}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortProxyGUI - NET35 - UI", "PortProxyGUI - NET35\PortProxyGUI - NET35 - UI.csproj", "{56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PortProxyGUI - Core31", "PortProxyGUI - Core31\PortProxyGUI - Core31.csproj", "{2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{444021F3-829E-4682-ACD5-B57FA46CC534}" ProjectSection(SolutionItems) = preProject README.md = README.md EndProjectSection EndProject Global - GlobalSection(SharedMSBuildProjectFiles) = preSolution - PortProxyGUI.Shared\PortProxyGUI.Shared.projitems*{1b166039-e98c-404a-89a5-c981364b5546}*SharedItemsImports = 4 - PortProxyGUI.Shared\PortProxyGUI.Shared.projitems*{2a54c624-1c2f-4ed7-b201-0e2981fb9cd9}*SharedItemsImports = 5 - PortProxyGUI.Shared\PortProxyGUI.Shared.projitems*{56fb1cbc-bd89-47d7-a9d5-86f02eef480f}*SharedItemsImports = 4 - PortProxyGUI.Shared\PortProxyGUI.Shared.projitems*{7459e9f4-8b98-42d6-92cf-e90961e05c90}*SharedItemsImports = 5 - PortProxyGUI.Shared\PortProxyGUI.Shared.projitems*{b38ef2b9-e38d-4d6d-bf0d-7c1934d6cfdc}*SharedItemsImports = 13 - EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 @@ -52,42 +37,6 @@ Global {7459E9F4-8B98-42D6-92CF-E90961E05C90}.Release|x64.Build.0 = Release|Any CPU {7459E9F4-8B98-42D6-92CF-E90961E05C90}.Release|x86.ActiveCfg = Release|Any CPU {7459E9F4-8B98-42D6-92CF-E90961E05C90}.Release|x86.Build.0 = Release|Any CPU - {1B166039-E98C-404A-89A5-C981364B5546}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1B166039-E98C-404A-89A5-C981364B5546}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1B166039-E98C-404A-89A5-C981364B5546}.Debug|x64.ActiveCfg = Debug|Any CPU - {1B166039-E98C-404A-89A5-C981364B5546}.Debug|x64.Build.0 = Debug|Any CPU - {1B166039-E98C-404A-89A5-C981364B5546}.Debug|x86.ActiveCfg = Debug|Any CPU - {1B166039-E98C-404A-89A5-C981364B5546}.Debug|x86.Build.0 = Debug|Any CPU - {1B166039-E98C-404A-89A5-C981364B5546}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1B166039-E98C-404A-89A5-C981364B5546}.Release|Any CPU.Build.0 = Release|Any CPU - {1B166039-E98C-404A-89A5-C981364B5546}.Release|x64.ActiveCfg = Release|Any CPU - {1B166039-E98C-404A-89A5-C981364B5546}.Release|x64.Build.0 = Release|Any CPU - {1B166039-E98C-404A-89A5-C981364B5546}.Release|x86.ActiveCfg = Release|Any CPU - {1B166039-E98C-404A-89A5-C981364B5546}.Release|x86.Build.0 = Release|Any CPU - {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Debug|x64.ActiveCfg = Debug|Any CPU - {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Debug|x64.Build.0 = Debug|Any CPU - {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Debug|x86.ActiveCfg = Debug|Any CPU - {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Debug|x86.Build.0 = Debug|Any CPU - {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Release|Any CPU.Build.0 = Release|Any CPU - {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Release|x64.ActiveCfg = Release|Any CPU - {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Release|x64.Build.0 = Release|Any CPU - {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Release|x86.ActiveCfg = Release|Any CPU - {56FB1CBC-BD89-47D7-A9D5-86F02EEF480F}.Release|x86.Build.0 = Release|Any CPU - {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Debug|x64.ActiveCfg = Debug|Any CPU - {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Debug|x64.Build.0 = Debug|Any CPU - {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Debug|x86.ActiveCfg = Debug|Any CPU - {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Debug|x86.Build.0 = Debug|Any CPU - {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Release|Any CPU.Build.0 = Release|Any CPU - {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Release|x64.ActiveCfg = Release|Any CPU - {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Release|x64.Build.0 = Release|Any CPU - {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Release|x86.ActiveCfg = Release|Any CPU - {2A54C624-1C2F-4ED7-B201-0E2981FB9CD9}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/PortProxyGUI - NET35/About.Designer.cs b/PortProxyGUI/About.Designer.cs similarity index 100% rename from PortProxyGUI - NET35/About.Designer.cs rename to PortProxyGUI/About.Designer.cs diff --git a/PortProxyGUI - NET35/About.cs b/PortProxyGUI/About.cs similarity index 100% rename from PortProxyGUI - NET35/About.cs rename to PortProxyGUI/About.cs diff --git a/PortProxyGUI - NET35/About.resx b/PortProxyGUI/About.resx similarity index 100% rename from PortProxyGUI - NET35/About.resx rename to PortProxyGUI/About.resx diff --git a/PortProxyGUI - NET35/About.zh-CN.resx b/PortProxyGUI/About.zh-CN.resx similarity index 100% rename from PortProxyGUI - NET35/About.zh-CN.resx rename to PortProxyGUI/About.zh-CN.resx diff --git a/PortProxyGUI.Shared/Data/ApplicationDbMigrationUtil.cs b/PortProxyGUI/Data/ApplicationDbMigrationUtil.cs similarity index 100% rename from PortProxyGUI.Shared/Data/ApplicationDbMigrationUtil.cs rename to PortProxyGUI/Data/ApplicationDbMigrationUtil.cs diff --git a/PortProxyGUI.Shared/Data/ApplicationDbScope.cs b/PortProxyGUI/Data/ApplicationDbScope.cs similarity index 100% rename from PortProxyGUI.Shared/Data/ApplicationDbScope.cs rename to PortProxyGUI/Data/ApplicationDbScope.cs diff --git a/PortProxyGUI.Shared/Data/Migration.cs b/PortProxyGUI/Data/Migration.cs similarity index 100% rename from PortProxyGUI.Shared/Data/Migration.cs rename to PortProxyGUI/Data/Migration.cs diff --git a/PortProxyGUI.Shared/Data/MigrationKey.cs b/PortProxyGUI/Data/MigrationKey.cs similarity index 100% rename from PortProxyGUI.Shared/Data/MigrationKey.cs rename to PortProxyGUI/Data/MigrationKey.cs diff --git a/PortProxyGUI.Shared/Data/Rule.cs b/PortProxyGUI/Data/Rule.cs similarity index 67% rename from PortProxyGUI.Shared/Data/Rule.cs rename to PortProxyGUI/Data/Rule.cs index 7b0d953..a777399 100644 --- a/PortProxyGUI.Shared/Data/Rule.cs +++ b/PortProxyGUI/Data/Rule.cs @@ -14,6 +14,28 @@ namespace PortProxyGUI.Data public string Comment { get; set; } public string Group { get; set; } + public bool Valid => ListenPort > 0 && ConnectPort > 0; + + private string _realListenPort; + /// + /// Not mapped + /// + public string RealListenPort + { + get => ListenPort > 0 ? ListenPort.ToString() : _realListenPort; + set => _realListenPort = value; + } + + private string _realConnectPort; + /// + /// Not mapped + /// + public string RealConnectPort + { + get => ConnectPort > 0 ? ConnectPort.ToString() : _realConnectPort; + set => _realConnectPort = value; + } + public bool Equals(Rule other) { return Id == other.Id diff --git a/PortProxyGUI - NET35/PortProxyGUI.Designer.cs b/PortProxyGUI/PortProxyGUI.Designer.cs similarity index 100% rename from PortProxyGUI - NET35/PortProxyGUI.Designer.cs rename to PortProxyGUI/PortProxyGUI.Designer.cs diff --git a/PortProxyGUI - NET35/PortProxyGUI.cs b/PortProxyGUI/PortProxyGUI.cs similarity index 98% rename from PortProxyGUI - NET35/PortProxyGUI.cs rename to PortProxyGUI/PortProxyGUI.cs index 5f88365..636a17e 100644 --- a/PortProxyGUI - NET35/PortProxyGUI.cs +++ b/PortProxyGUI/PortProxyGUI.cs @@ -181,8 +181,8 @@ namespace PortProxyGUI proxy.Id = matchedRule?.Id; } - var pendingAdds = proxies.Where(x => x.Id == null); - var pendingUpdates = proxies.Where(x => x.Id != null && !x.Equals(rules.First(r => r.Id == x.Id))); + var pendingAdds = proxies.Where(x => x.Valid && x.Id == null); + var pendingUpdates = proxies.Where(x => x.Valid && x.Id != null && !x.Equals(rules.First(r => r.Id == x.Id))); Program.SqliteDbScope.AddRange(pendingAdds); Program.SqliteDbScope.UpdateRange(pendingUpdates); diff --git a/PortProxyGUI/PortProxyGUI.csproj b/PortProxyGUI/PortProxyGUI.csproj index 6f38aa3..0a05177 100644 --- a/PortProxyGUI/PortProxyGUI.csproj +++ b/PortProxyGUI/PortProxyGUI.csproj @@ -2,7 +2,7 @@ WinExe - net6.0-windows + net6.0-windows;netcoreapp3.1;net35;net451 true app.manifest zmjack @@ -14,8 +14,11 @@ portproxy TCP/IP redirector LICENSE.md Copyright © nstandard.net 2020 - 1.3.0 + 1.3.1 icon.ico + Microsoft Sans Serif, 8pt + PPGUI + preview @@ -28,24 +31,6 @@ AnyCPU - - - - - - - - - - - - - - - - - - True @@ -57,12 +42,4 @@ - - - Form - - - - - \ No newline at end of file diff --git a/PortProxyGUI - NET35/PortProxyGUI.resx b/PortProxyGUI/PortProxyGUI.resx similarity index 100% rename from PortProxyGUI - NET35/PortProxyGUI.resx rename to PortProxyGUI/PortProxyGUI.resx diff --git a/PortProxyGUI - NET35/PortProxyGUI.zh-CN.resx b/PortProxyGUI/PortProxyGUI.zh-CN.resx similarity index 100% rename from PortProxyGUI - NET35/PortProxyGUI.zh-CN.resx rename to PortProxyGUI/PortProxyGUI.zh-CN.resx diff --git a/PortProxyGUI/Program.cs b/PortProxyGUI/Program.cs index 42277c3..0670b84 100644 --- a/PortProxyGUI/Program.cs +++ b/PortProxyGUI/Program.cs @@ -18,7 +18,16 @@ namespace PortProxyGUI // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. +#if NET6_0_OR_GREATER ApplicationConfiguration.Initialize(); +#elif NETCOREAPP3_1_OR_GREATER + Application.SetHighDpiMode(HighDpiMode.SystemAware); + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); +#else + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); +#endif Application.Run(new PortProxyGUI()); } } diff --git a/PortProxyGUI - NET35/SetProxy.Designer.cs b/PortProxyGUI/SetProxy.Designer.cs similarity index 98% rename from PortProxyGUI - NET35/SetProxy.Designer.cs rename to PortProxyGUI/SetProxy.Designer.cs index 1864433..6176392 100644 --- a/PortProxyGUI - NET35/SetProxy.Designer.cs +++ b/PortProxyGUI/SetProxy.Designer.cs @@ -115,10 +115,10 @@ resources.ApplyResources(this.label_Comment, "label_Comment"); this.label_Comment.Name = "label_Comment"; // - // textBox_Note + // textBox_Comment // - resources.ApplyResources(this.textBox_Comment, "textBox_Note"); - this.textBox_Comment.Name = "textBox_Note"; + resources.ApplyResources(this.textBox_Comment, "textBox_Comment"); + this.textBox_Comment.Name = "textBox_Comment"; // // label_Group // diff --git a/PortProxyGUI - NET35/SetProxy.cs b/PortProxyGUI/SetProxy.cs similarity index 100% rename from PortProxyGUI - NET35/SetProxy.cs rename to PortProxyGUI/SetProxy.cs diff --git a/PortProxyGUI - NET35/SetProxy.resx b/PortProxyGUI/SetProxy.resx similarity index 96% rename from PortProxyGUI - NET35/SetProxy.resx rename to PortProxyGUI/SetProxy.resx index a5a6423..e5cf25b 100644 --- a/PortProxyGUI - NET35/SetProxy.resx +++ b/PortProxyGUI/SetProxy.resx @@ -1,64 +1,4 @@ - - - + @@ -117,18 +57,18 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + True - + Microsoft YaHei UI, 9pt - 14, 57 + 14, 62 - + 4, 0, 4, 0 @@ -145,7 +85,7 @@ label_ListenOn - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -157,7 +97,7 @@ Microsoft YaHei UI, 9pt - 97, 54 + 97, 58 4, 3, 4, 3 @@ -178,7 +118,7 @@ textBox_ListenOn - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.TextBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -193,7 +133,7 @@ Microsoft YaHei UI, 9pt - 14, 86 + 14, 93 4, 0, 4, 0 @@ -211,7 +151,7 @@ label_ConnectTo - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -223,7 +163,7 @@ Microsoft YaHei UI, 9pt - 97, 83 + 97, 90 4, 3, 4, 3 @@ -232,7 +172,7 @@ 146, 23 - 3 + 2 Center @@ -241,7 +181,7 @@ textBox_ConnectTo - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.TextBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -253,7 +193,7 @@ Microsoft YaHei UI, 9pt - 299, 83 + 299, 90 4, 3, 4, 3 @@ -262,7 +202,7 @@ 84, 23 - 4 + 3 Center @@ -271,7 +211,7 @@ textBox_ConnectPort - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.TextBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -286,7 +226,7 @@ Microsoft YaHei UI, 9pt - 251, 86 + 251, 93 4, 0, 4, 0 @@ -304,7 +244,7 @@ label_ConnectPort - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -316,16 +256,16 @@ Microsoft YaHei UI, 9pt - 258, 122 + 260, 134 - 4, 4, 4, 4 + 4, 5, 4, 5 - 125, 32 + 125, 31 - 6 + 7 Set @@ -334,7 +274,7 @@ button_Set - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Button, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -349,7 +289,7 @@ Microsoft YaHei UI, 9pt - 14, 15 + 14, 16 4, 0, 4, 0 @@ -367,7 +307,7 @@ label_Type - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -382,7 +322,7 @@ Microsoft YaHei UI, 9pt - 251, 57 + 251, 62 4, 0, 4, 0 @@ -400,7 +340,7 @@ label_ListenPort - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -412,7 +352,7 @@ Microsoft YaHei UI, 9pt - 299, 54 + 299, 58 4, 3, 4, 3 @@ -421,7 +361,7 @@ 84, 23 - 2 + 1 Center @@ -430,7 +370,7 @@ textBox_ListenPort - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.TextBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -457,7 +397,7 @@ v6tov6 - 97, 12 + 97, 13 4, 3, 4, 3 @@ -472,7 +412,7 @@ comboBox_Type - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ComboBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -490,7 +430,7 @@ NoControl - 14, 130 + 14, 141 4, 0, 4, 0 @@ -508,7 +448,7 @@ label_Comment - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -516,34 +456,34 @@ 3 - + Microsoft YaHei UI, 9pt - - 97, 127 + + 97, 138 - + 4, 3, 4, 3 - + 146, 23 - - 8 + + 4 - + Center - - textBox_Note + + textBox_Comment - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.TextBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - + 2 @@ -556,7 +496,7 @@ NoControl - 251, 15 + 251, 16 4, 0, 4, 0 @@ -574,7 +514,7 @@ label_Group - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -586,7 +526,7 @@ Microsoft YaHei UI, 9pt - 299, 12 + 299, 13 4, 3, 4, 3 @@ -595,13 +535,13 @@ 84, 25 - 10 + 6 comboBox_Group - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ComboBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -609,14 +549,14 @@ 0 - + True - 6, 12 + 6, 13 - 398, 169 + 398, 183 @@ -2789,6 +2729,6 @@ SetProxy - System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Form, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 \ No newline at end of file diff --git a/PortProxyGUI - NET35/SetProxy.zh-CN.resx b/PortProxyGUI/SetProxy.zh-CN.resx similarity index 98% rename from PortProxyGUI - NET35/SetProxy.zh-CN.resx rename to PortProxyGUI/SetProxy.zh-CN.resx index 10b6dad..7f44441 100644 --- a/PortProxyGUI - NET35/SetProxy.zh-CN.resx +++ b/PortProxyGUI/SetProxy.zh-CN.resx @@ -112,23 +112,23 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + True - + Microsoft YaHei UI, 9pt - 14, 57 + 14, 62 - + 4, 0, 4, 0 @@ -145,7 +145,7 @@ label_ListenOn - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -157,7 +157,7 @@ Microsoft YaHei UI, 9pt - 97, 54 + 97, 58 4, 3, 4, 3 @@ -178,7 +178,7 @@ textBox_ListenOn - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.TextBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -193,7 +193,7 @@ Microsoft YaHei UI, 9pt - 14, 86 + 14, 93 4, 0, 4, 0 @@ -205,13 +205,13 @@ 0 - 转发地址 + 连接地址 label_ConnectTo - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -223,7 +223,7 @@ Microsoft YaHei UI, 9pt - 97, 83 + 97, 90 4, 3, 4, 3 @@ -232,7 +232,7 @@ 146, 23 - 3 + 2 Center @@ -241,7 +241,7 @@ textBox_ConnectTo - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.TextBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -253,7 +253,7 @@ Microsoft YaHei UI, 9pt - 299, 83 + 299, 90 4, 3, 4, 3 @@ -262,7 +262,7 @@ 84, 23 - 4 + 3 Center @@ -271,7 +271,7 @@ textBox_ConnectPort - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.TextBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -286,7 +286,7 @@ Microsoft YaHei UI, 9pt - 251, 86 + 251, 93 4, 0, 4, 0 @@ -304,7 +304,7 @@ label_ConnectPort - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -316,16 +316,16 @@ Microsoft YaHei UI, 9pt - 258, 122 + 260, 134 - 4, 4, 4, 4 + 4, 5, 4, 5 - 125, 32 + 125, 31 - 6 + 7 设置 @@ -334,7 +334,7 @@ button_Set - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Button, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -349,7 +349,7 @@ Microsoft YaHei UI, 9pt - 14, 15 + 14, 16 4, 0, 4, 0 @@ -367,7 +367,7 @@ label_Type - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -382,7 +382,7 @@ Microsoft YaHei UI, 9pt - 251, 57 + 251, 62 4, 0, 4, 0 @@ -400,7 +400,7 @@ label_ListenPort - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -412,7 +412,7 @@ Microsoft YaHei UI, 9pt - 299, 54 + 299, 58 4, 3, 4, 3 @@ -421,7 +421,7 @@ 84, 23 - 2 + 1 Center @@ -430,7 +430,7 @@ textBox_ListenPort - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.TextBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -442,7 +442,7 @@ Microsoft YaHei UI, 9pt - (自动) + (自动) v4tov4 @@ -457,7 +457,7 @@ v6tov6 - 97, 12 + 97, 13 4, 3, 4, 3 @@ -472,7 +472,7 @@ comboBox_Type - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ComboBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -490,7 +490,7 @@ NoControl - 14, 130 + 14, 141 4, 0, 4, 0 @@ -508,7 +508,7 @@ label_Comment - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -516,34 +516,34 @@ 3 - + Microsoft YaHei UI, 9pt - - 97, 127 + + 97, 138 - + 4, 3, 4, 3 - + 146, 23 - - 8 + + 4 - + Center - - textBox_Note + + textBox_Comment - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.TextBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - + 2 @@ -556,7 +556,7 @@ NoControl - 251, 15 + 251, 16 4, 0, 4, 0 @@ -574,7 +574,7 @@ label_Group - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Label, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -586,7 +586,7 @@ Microsoft YaHei UI, 9pt - 299, 12 + 299, 13 4, 3, 4, 3 @@ -595,13 +595,13 @@ 84, 25 - 10 + 6 comboBox_Group - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.ComboBox, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 $this @@ -613,10 +613,10 @@ True - 6, 12 + 6, 13 - 398, 169 + 398, 183 @@ -2789,6 +2789,6 @@ SetProxy - System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Form, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089 \ No newline at end of file diff --git a/PortProxyGUI.Shared/CmdRunner.cs b/PortProxyGUI/~DS/CmdRunner.cs similarity index 100% rename from PortProxyGUI.Shared/CmdRunner.cs rename to PortProxyGUI/~DS/CmdRunner.cs diff --git a/PortProxyGUI.Shared/CmdUtil.cs b/PortProxyGUI/~DS/CmdUtil.cs similarity index 58% rename from PortProxyGUI.Shared/CmdUtil.cs rename to PortProxyGUI/~DS/CmdUtil.cs index f883825..fbab17d 100644 --- a/PortProxyGUI.Shared/CmdUtil.cs +++ b/PortProxyGUI/~DS/CmdUtil.cs @@ -22,6 +22,8 @@ namespace PortProxyGUI ["ipv6 to ipv6"] = GetRegex("ipv6", "ipv6"), }; + private static readonly Regex LineRegex = new(@"^(.*?)\s{1,}(.*?)\s{1,}(.*?)\s{1,}(.*?)$"); + public static Rule[] GetProxies() { var output = CmdRunner.Execute("netsh interface portproxy show all"); @@ -33,26 +35,39 @@ namespace PortProxyGUI new ProxyType("ipv6", "ipv6"), }; - var proxies = types.SelectMany(type => + var list = new List(); + foreach (var type in types) { var regex = RegexList[$"{type.From} to {type.To}"]; - var typeProxies = output.ExtractFirst(regex) - ?.Split(new[] { Environment.NewLine }, StringSplitOptions.None) - .Select(line => + var settings = output.ExtractFirst(regex); + var lines = settings?.Split(new[] { Environment.NewLine }, StringSplitOptions.None); + + if (lines is not null) + { + foreach (var line in lines) { - var parts = line.Resolve(new Regex(@"^([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)$")); - return new Rule + if (line.TryResolve(LineRegex, out var parts)) { - Type = type.Type, - ListenOn = parts[1].First(), - ListenPort = int.Parse(parts[2].First()), - ConnectTo = parts[3].First(), - ConnectPort = int.Parse(parts[4].First()), - }; - }); - return typeProxies ?? new Rule[0]; - }); - return proxies.ToArray(); + var realListenPort = parts[2].First(); + var realConnectPort = parts[4].First(); + + _ = int.TryParse(realListenPort, out var listenPort); + _ = int.TryParse(realConnectPort, out var connectPort); + + list.Add(new Rule + { + Type = type.Type, + ListenOn = parts[1].First(), + ListenPort = listenPort, + ConnectTo = parts[3].First(), + ConnectPort = connectPort, + }); + } + } + } + } + + return list.ToArray(); } public static void AddOrUpdateProxy(Rule rule) diff --git a/PortProxyGUI.Shared/ListViewColumnSorter.cs b/PortProxyGUI/~DS/ListViewColumnSorter.cs similarity index 100% rename from PortProxyGUI.Shared/ListViewColumnSorter.cs rename to PortProxyGUI/~DS/ListViewColumnSorter.cs diff --git a/PortProxyGUI.Shared/ProxyType.cs b/PortProxyGUI/~DS/ProxyType.cs similarity index 100% rename from PortProxyGUI.Shared/ProxyType.cs rename to PortProxyGUI/~DS/ProxyType.cs diff --git a/PortProxyGUI.Shared/Util.cs b/PortProxyGUI/~DS/Util.cs similarity index 78% rename from PortProxyGUI.Shared/Util.cs rename to PortProxyGUI/~DS/Util.cs index 008347f..28307d6 100644 --- a/PortProxyGUI.Shared/Util.cs +++ b/PortProxyGUI/~DS/Util.cs @@ -11,7 +11,7 @@ namespace PortProxyGUI /// Compatibility between .NET Framework and .NET Core. /// /// - public static readonly Font UiFont = new Font(new FontFamily("Microsoft Sans Serif"), 8f); + public static readonly Font UiFont = new(new FontFamily("Microsoft Sans Serif"), 8f); } } diff --git a/README.md b/README.md index 3918126..b54547a 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ A manager for netsh interface portproxy, which is to evaluate TCP/IP port redire ## Upgrade +- **v1.3.1** + - Fix program crash caused by wrong rules. - **v1.3.0** - Update display, provide comments and grouping. - Fix the problem that the window size is not the same in different runtimes.