From 86f95b930ff1b549a46a5319261c01ae1ffc61e7 Mon Sep 17 00:00:00 2001 From: wisdomwei201804 Date: Mon, 28 Dec 2020 19:46:53 +0800 Subject: [PATCH] add image of new UI & update aliyun net sdk core --- README.md | 6 +- images/aliddns1.png | Bin 0 -> 26562 bytes images/aliddns2.png | Bin 0 -> 26251 bytes images/aliddns3.png | Bin 0 -> 20463 bytes images/aliddns4.png | Bin 0 -> 20605 bytes .../net.nutcore.aliddns/AppConfigHelper.cs | 38 +-- .../net.nutcore.aliddns/Form_main.Designer.cs | 182 +++++++++------ .../net.nutcore.aliddns/Form_main.cs | 219 ++++++++++++------ .../Form_tunnelEdit.Designer.cs | 24 +- .../aliyun-net-sdk-Core.dll | Bin 0 -> 84480 bytes .../net.nutcore.aliddns.csproj | 8 +- .../net.nutcore.aliddns/packages.config | 4 +- 12 files changed, 295 insertions(+), 186 deletions(-) create mode 100644 images/aliddns1.png create mode 100644 images/aliddns2.png create mode 100644 images/aliddns3.png create mode 100644 images/aliddns4.png create mode 100644 net.nutcore.aliddns/net.nutcore.aliddns/aliyun-net-sdk-Core.dll diff --git a/README.md b/README.md index 5e0faf7..36bcada 100644 --- a/README.md +++ b/README.md @@ -19,5 +19,7 @@ accessKeySecret
实现Ngrok网络穿透,微信开发、APP开发、无公网IP实现外网访问利器。
# 程序界面 -![AliDDNS-UI-01.jpg](/images/AliDDNS-UI-01.JPG "AilDDNS")  
-![AliDDNS-UI-02.jpg](/images/AliDDNS-UI-02.JPG "AliDDNS") +![image](images/aliddns1.png "AilDDNS")
+![image](images/aliddns2.png "AliDDNS")
+![image](images/aliddns3.png "AliDDNS")
+![image](images/aliddns4.png "AliDDNS")
diff --git a/images/aliddns1.png b/images/aliddns1.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd6700a5219caa2e9ee0798e7ec29c1253d0627 GIT binary patch literal 26562 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

%MvCrvoofBokPj^7dH8T&k|LUzT+oDb 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 literal 0 HcmV?d00001 diff --git a/images/aliddns3.png b/images/aliddns3.png new file mode 100644 index 0000000000000000000000000000000000000000..255f97d0134f63a8e3e582d39e0f4e87aa0c4f82 GIT binary patch literal 20463 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 be*Dj~Vw$6<(CP&|q>sVV)z4*}Q$iB}QapX4 literal 0 HcmV?d00001 diff --git a/images/aliddns4.png b/images/aliddns4.png new file mode 100644 index 0000000000000000000000000000000000000000..e28a583b98bb74442922ef5b1646642c930c4649 GIT binary patch literal 20605 zcmZsC1z1#F*ETIBDP2PtbR!{+(v5V(&^?5-pui~7-65S0Jv34hLr61}AcK-3%@F^f z@ArPs_gp{MaKW6t&pvyvz4p5A73ZCnhT?sET6{D#wEN0R3OZ-uVMJzJ9OZmw#KqD`3H4xd< ziuAvfJP_LoUOm#DF%drtM(%C?)RbP``Ux5f9AFGNCl&O2_8aU!m9^3rcHa^W2lX)? z>8`Z6b~>ss=orox^|bEc*9R9+d~R;v3{*Hz zp^!ym%-?=mnkD)Pov<5?u)F&U-zUTuyrXSm(`gvlpo_0Vvr=uFjo>|z*XY!!549MM zo8&xc{}}SUnQYL_#TM*@lgYxvrQ^6BF^|2KrF#(E_UhR!ax3FaG_MG!o2ienWJt$V z$Hdq?W+3VTA2={quY0<(qC>Yj5Y=6mO!s`}PhHw-V4}*25kQI?A2pHfN+AbWWwGS>)bg?H@Pzdk*Dg>E<}Q zU2vya@EgRL*k7KUAh>OqgwhtJmd=ep1M{K6q23!op~oj4#7*HSxrLSRSw=Vp^vc`a z64wadbIX+6-C6i3>VA9Bnaln3Y>_>1?cN-0ZpweTdK_B%$`xL}*D7+^W|j-!vFKQS zFo+?$i<_JA%sK?>hiH2@xN_KrxRAbh>wj?$sgdbC-`k%B>u%1|d$&5bJYs z8IZG}5zeFP8o*64_tEvZ5BA~ufyCyZ_}M5!{U+j4!lbl9P5a==FzxpG9&CO`+P+iV zAa8FZDA4^Pu(ZnNJ~T`*LPIO@)_wH)1B+DdXKuS!u5k-T2BD`%h;Zq4 z+x<_WaA(L->C97;aZt{!D@uaRd7(!i9)q7QBOBO>3`kt<&ewY|5f_@~E*g6al1Zew zx3M*%xh=nlTW@cF7ZQ)YTOT4=5xkS+*~#zmthtVx`v@N!CV@1uy=Cu%`-tk&oce1h zJgA5@-@U`D)BUO0ML~_|Sl-B!qujBM+S_*Muq%A_so&UXZ!P?waw-kmX6?%HC?bt!2=!$zNY`4P-F~8ByGiJo^eY?=r<-d?vBXhZRHZN|s!?AxbD{WGH zr%acXyt~I(hX`Q_b#blpCJH+JweBaLUrU> z1fu?Q5tinM4MARp1;P|1XqMq=V`r`IgxLVHX72W8d8@u^d zYDT%=?$tp$#qIewngZVecli0%xZz|r_l6m0u-`e)eS! z)Qo9gxm&EB)I7~-8{47JnF~F-Icl?R2|U}MA_`nFKS*u#fiW&4+kCvYGbQn5y|;eE zHT#FZLM~dQuX{-A9epm&6R`^zeik~U2pd7>2_{AJ3MJ*W%(r`;$NPVS&t)1sBFZ8k z^CK(ez3MiVJn{*dYq#ksm5J8$44Dt=gx7RPAunfneX%_eSF}fm^#h|4o#Ly_ZaEfv z;CUkpp^*UgDc4fnGvrchyKn0?e#621a3fu9F!J!J8VUjWXg-CvTu0Vs%}`yreLv6H zzvwdamNg*E3%UFWWj$`@rmA%=xqr78Icb_wKk?S%m=;~%_uek{54oGpTyIDGw0+Ne zvzeEXCSlRY$G{x4xfTNYj(K4AD=bs;_H2A>JEQWbB3gW5_Bq03HW%?_kP`UNFe93=0@5*dkACvG7-8s>kbdOJxh_5L)s2K^AU^DnxMP+6)@tke zGj|q@_i5GBsIDu2(6e6+nToY-jy1W3oxGi0tl|e<{GK;2j>ckfLncqZHSuN$M$ZvT zTS_gE_FWtR#=vvJ8Wy36+K3#BET#>$Rl6O(?e-Fqp@k2p$AMSk=Wt-u+%GgtzIs~x9t5x+583TdkiP&Pt_)=yhv>1{9f6oEAGvUcYzW4-09)LB(>DbVZiImoBwZ{y5f+yg3Sedb@IQ@~&69%kO`f$`vdZaO2V& z()&N052wHTWc9-6tTY|xA`sjp39peD@N@kwrC0B@f&SlKFJi*{q!2*x?diPiKQA`B z9%FgVlz9H1YY)O5x;E@@jWFr=t}?Oz%ikz)s!ns-tXj`ICBj8H$X5?M&7s~Ij#HEF zf!flAn3%oxXtHeN`y(2!DSDf(>TP9)A_1df9TJIBx<1Jh&iFw_-(z|u~rA6*^xTvJ0 zYo_;k_}8LNc&A9mZ4H2ug?gAen%L`NPHv0p*}UXAxwYUyn87u%Y*j6$ylHwC2aODg zGsm$jnSyeD&|&nuq8CENO$~Eqq>3b-tuMvRwkvowIb?$l`>9~l(|R9?;9J%s5ZHC| zI%#Is{6%4vcgNhttR2`mYXkdYt$msIX$48Be<+g6^=C^ z`SkQQQyjhUSKHIe_Td-Q>bS24RpXN--bAy9`)Pn(?Dj-OabIR^Z&ZL1U+i#75};(G`8~@9qH5R^LBAW%pPg# zlA&_#hunx`_2w4Qhj&dh3jCd5s;eWSN^Mo>2mk~__P%CU@s_&q!pnk&z4^v)OXG5) zV6Tly{C4N9u6o6b)=g2PhN=2Q);Nz}geN+U?8QkC1;z>SsQY()up`X8L0*G)Vj6$G zFD+pLj(oQTcYbn=&@id_K%L0Eo*lK9?HKxtumal?dAc_sT_w*kmJ+Qx+?~t;0e7x9n5F1rAe9&Rc9y= zh*$>IZZeu{iYyHjD9l2xep>!Sale@+GiuUZrGx8-sCK+$K#z+n<7Yu>L4G zNoLm4QB&-^BoJYq#eAwdQBjpf=-HxypU{2t##)9Oob}XQL|r^c)Fd5Er|pd@5+X$5Dq$J6=f*%xiEDdQ3P86JHSMCq09c>V`^EN8?*3 zm>u3)h5|d)PxlA)5q#S&Q`vl!vqxouTIcavB#96DtVEd>`!N3cu@l4uEfNNjcr5I} zk~#s1F#kU|5QOu798)imSpfZl{59+o&7Fff{RSQD&_VK1ICjr7)YtBA51O(Fz~VtW z6mTAjjDIj!>~-3?)EeC+)S zyE_N4j2Kg%yie;z+0fO}DEA}tkknENF?P=68cg5dZabcIl$RK0iWA8LW`-oziJk?h z6nSB*k&P`~dOd#go6GW#Q_P4dPt~VaLcPc_)A`sCoYlZ!jOb8(&A|9+o)O-QMtB?@ zR)AOdhz|6eyD4XTE{WBHzeoL~+JaoRgUjpB2t0R_h^Kb6oUjAmG*upl*f?d)hHC0e zX$})ox$MSWTcP22(fnuwxCNhzZ7_vUrX?k$P$!HJB zR{v26Fvfg)L$Q#4E0y=inGny~1unEjUe3Is#8mim5OiEd{x^Pb>5g8h*|~a<1)#Kk z0<_c7fAp^CRJWwS3*s_GrPHLg5Rf2>5dY9EQ&0VAeJk3U8;c)DCl;(sV?GuLF83|2 zN_ak5^}HvD--3@XlW_Ct}9tsxK zEzxAZr*Ufpl0)&WW-E&}lt!be+*N%$hhDJ1|a* zZP@GRCq=NC`fW3sXz~U-g~NWbVwh53#!xC4oa4Vyit|kBJU)CmJlhrL_~mEM@K4cEC1 zFrx0%g~9BsHB7}VY(;Avl1Z_Yy(t%;=9HgU4_zd((zh@?uhx&_*`Uz_q{a8?H9}ioy*g}HcGo8>8T@VCHnygF0WD>{vo&4 z-=t~dbHTD_=UIMwEdyX15c4sBfW5FM$B&oPN=J7%>ZY{XzWI;Atz+&v{yf7a?Yog^ z=9n*yoy;sX#xl#Hl{$PZv~bJ!c;e0Zzi=oZ($Q(ziT8fcW*~ZlEc*|(uI*+&hf+76Aq&S zp0|)8!f6$f<-O0-l*MeB1ui^~LdrjI>T9Z0$?Yi_nR1P&<2Bhi3k%zEH{AFFGd`4% zXq>HRoo+; zz>IiKtY9)vaCeRuN6=_k5||U1{{$M*XsiQS843*%ly_~vsR8nA0&D_r{{$HU@}tp= z;HFPhcRd@@&;=A&1W?cM)D zBP~pVw{=~e1T5|<&1dS4h*W3<%J7h5;<5xH8{u&GDGVDfTpU87D0D1RSp^c5Wk#(4 z=a7+QQX5prig*u2*(quu&KHt*gzpIdwxa&WQ52)K-Tg(3$;TIez+AKR>jQK*)d%rr z)e!bSUVu~o>zUFNlfipO{a5#zHPZ*r)aTaVkG#?U+Uif;as-CKv}J$+#^7ENZ1{t_ zT|mPG(!BZ>K{c8y88~`#jfC~}z0JtZHuabf*c0ozDKBRiL{aX6!NIm|FyJ>r%sm%{ zN8K_XQKTBZWfCnd1`8U;g@I$)ZJ*y5E{g2?wV%{0yf#o_-yu zyf%)Y=&c_U-x1QT$^n!psFAg_xNaV%N;P6G`)<{X8duFSW;vVfx3+uM=so^T0*VWuG~p@rB#vjad_SVLA~PzKxBI zfg2O3Pf(cT9+WeUXUDw$R!(;GKL@4XMq#iOdr$f7#VrD*ehQpyIu$%RpHt__P}82K z{zOwq(c2MtmYMWebBv+?jQH`RN23Mu61@pQ0G_(>CAh&(BWh?LctXW@hk5 z9Kwx$Wz?27q@coP1{T357|hwZ`&V`S(|TLTC`DMVR>N+=WLvp@gz7oYWr(N>Nhcb3z5M3~k>EN*@UUW9c)5qKGxqb0qvST;aJQn$Mus ztl^sJQH;14Vz!z4FI+TLSP{?X~HFYW0G-Ie+Q&fX~9dSY#H($U!2J9 z7ZFaD&Cw(NiC3~*+19)-(&(L^>`aLx4ZA8HC@B9L2AgnXjY1mPVs$7hAQl>-Pom#M zqK?vC|0<_It`wvGMO-oDL~1^78Go49PBdOe@`B?Y^Gp(%wmJ?~zyW_VOwZqye%4L*%z4z;Wrw{aYv$nJWwvK^MORp0%ozN&akoB=HU?&i|MT2&N57+y=XB)x7cW=-4JIz#i&ns(7IEDz_qTyoKEH4 zC<~6_1qNr1K1%K>-cK5M{0@>l8PO-M7!*v(YqOQCw2{8Om!8gqu%{*zx;Z0}mm?7< zdVyxWpynx+ns5OxDEKf6lWVk2aC+L`o8AHv@T0JS>J@AHHh!S^A}m7 ze$);)m@!m+Az`Ux6X~F|>=2FAB(j<0HRsC`QUZ2)LRV)e3{rJVvf+G?YblLQ*L=Z> zov1Y8o&Rst!LZMBDjZ6e(-3R$c_Ox9i1YZ}^9pnI+dv<*@MK!4%q%m;|kGOPQ^}oA?s>F81Mn5qC7mYsk`v7s#q*FQ<(R5|nI^`~Hw^dXh z*u6)lgIu(fsY{q9nu8x)Wo%4sQOiES;`iGTnCrQZsWMa^*~Ik_@->!~tp;k;#HR4o z$1g}nCTUni{_Hf99eJvZmldc^_rPJGGDmfoITOXB4#U&E@S#Z$#aLk{RtgCIQU=g` zdG!~q+segowUfs)kE`p?BAz|e;1}`g)58zZ$?(ybt-f!mvoU8{$?;>z%r9BdaOX1$ z_4pf4Qf=1Kaf`Mm#M`n%j&<~RgluTSeXFiLGBf>?1+oe)G68_6pAxW)$R_C_b9S}N zVX6zbvI^b-hrA!Xc*Cg|1ZKp=V#sN+)Qn{b@r+df)DDw2BK5Pj`UL_IBpW}` z!a!reG?Vfdo0F(TTo`1!Q+ieGnq6XWDe7D#CF})3VFNHlf}M7YEP7NoI3YWj!YGS~}sq{`J_P*C1o!3~0U5Rl53S!yFAX2B+ob1kAtZSKp4PoX_I8*nzdoj-d zxjxqU6yfPf49Y|;Wva$kiR32{TysVdZ}}cRDGw>d(i#TH(ExeJ1Rl^kAb1~2(T2^< zTMXx3yNIPqI=|H+>nr5Vv{b?WDs=r0TN5g)mXl2vEb9WIacBpqd`{Vz7!f7flT4IP zQ&8PF7GmKLyVjB}<{wzR-(y&E6OX1E7UN!<3{dG&SHpd1GN8acZLStC)HL@gf$X5J zFl)!;sYiYfT0+XxWIWQHe6h4hDCZT)T$)Xmu7^`P^j%2A7w)lF zKvOTBR}ko>U_b|c>w*x>|Hj{^4z7&PkHR26GgUdZ39q~_;uX&L4!wr;gAWj;7*C!z z8!P5hROlf{LHo?;9t<|S0V;r?tu2WcU1P}%Y>L|wy>%>P^_~?s$t{~$56dkd`>5A@ zG+GxpDsr%zrC|^%Hx%#C25RB-ICG%f&Ay758cz{^*-@xL5~-e~h{Xr%U?n^)4G&UO zi0+!UAQdA+Z|xf#U_j{gR*O#It-{LqdtDc$y_PVYT_5TBj~WVfcqm#>Z_)NkkgIy? zo!Im0dhZ;w8u>AFE4x!zPfB;U3Cdn*6^ERgI$ZvMk2b%2 zPm_1A+F^74`H1g=7(%MAwj4Fy*cnNd_`74edsuf2qC@aCfCU^GF^!b_963*dlR1tS z4n|%1%P$yEe4i470R4{cqFi{FkoV&v_d$PL_8C5zNF`e(+rR$1Or)W@o~(By!yWm} zzaWffCZi#vxubSysQ*Qz3z<29M1R_7|HYCk-*JG)KC#|)6w3Q2??*?)C>4biibwx= z4|=`-bR}f61pBh{ejbK;DU!QxPBUHNF{#rfmp|I>jh!b&r67A{I0Y4cD(VFH9_yGN z(M3X5H>cD{fQDc0mc>VnW6TatTvMKVn2=Ocy0*7zPT6lsiS0Wub{EkQGA6lp9htAq zb6(pA66ooMLbxlrRiTrn@uLz)M3}uc`IF&4qSd&NiFI}6O=_UG8r$~>tX>hI!)*dl z-pVYlwTcTHvmA*LuIL{J26X^h^GLW~?>BdE&NAyWHvk=cn=zHm78W&VfTT$B?k zc*ulU@CiQYn}c7t~|g-Ti}a0$&zueiA(uYFC32-(^2q_!n}HS8~{Q^6Hk! z%F~;w#SIU5r}0O&IscM-li)CO0MPud4e)Q-Ug3t95oDndy<0|t=Ks24F80at$HVP+ zyC);{fB2>?_<|Hmn@Z%(onPiF@P9R6e(Xuqj}(8D=kz)(=wG``^@3zyQ_?ZyNbB<3 zHxAYY*`^uiuD}Zj!W@pcxhkX1vJ#|Dw|Y%D`Hql4asNi7@OBZ~KAuJROH+j*J!Fl= zM+$gW64QlGr*lsZ8}khiWvUEQ>bE6zwM z_Gb%}zCqRWgs0aRZ%2ncviZ#roMKV}g(r#?CU6F^n-Fr!@1|AXgZy&9yhn_AVqtW;yD0+q$_Bof9M>!G3F%~SkJB99re!hJ zowzy(S71`s7*r!#I^ks$KeIcXvH45KLQ?MIIX)2_UHI+t^&AN_*zRBGl?g==2-a~v zLLeukS^?H%TMKwJ61&I11MY^ z+k{?rHSMMIAwi^-yguerx6?dtMNDQ>o#`w-+zVsGx+57vw70=sC`dUVb;>ygJn|=T zJ&zTCL~;|D3aOG1p@Kjhb{R4?W6p~Q$QJQuPx&9ZEr#5;c5}q!r=|F#E~7ktzvaeE z1IAUII>ESjSwi;Eqi@kJY5-kXgE2{+TWGAz=WaP1T5hn8 ze!Rqjv8*?P$qye6Ry<&KV#`1siDOW~F1L?nRr|o<7H%P2qZU1)#J${-RZ(wb`XfUg z(=&&+n!Pb4ANok=NXN9T?uf#$i;z)VUio<;1&D*)J{!dSs6y(k@m4MAPeV#F0s%Q9 z3AS+N9^wVT6zqt)UQ??Cm&XgwL{^et57aG^NJD!Jls-IcvN;mu7>n^_`3@x%GADUh z8vlMfxb%la&-^NFPx${J?0fhicYBbICh)3)Nqo{0+Dx znbZ+c02W-JA;V@MYJG`-mRN-yu1b$Je$vw%!<6uptiu#`raCK*r1!vpaxT@WS^?m2 zQ#pm!(7PgpF{i1{>(t@a;u}wf!?$6SLBrF2hB}l9UM2iJiFK?N3O190YFcuex{ z5^kMg`SQ9#S29uNV$KF5fsC)3PpOcC;F*`eNJal+{X7v+vVu>tVbxS?KJOkr4@qBl zy_#-@=_r3OR{qcE7ha2yQSp=*=vh%6=dH0-C_5d;ROu48qAL?yuAFaTxRCS{+!S|l zzvC`5>#4UF3M8z=XKtUrPb$*m+yR8%;2oILQtJ5-;G0;hQakXVyj#?jzqss8ErS9n zF04OMHgqfqv|JJ{Fv{@f#(xLy8Yi(QX;1HBbzz8qoBbuF$S29rKak+`FC?iFX$2Vf z=KgWYP5%W6S#(1r5dwa9ZCc#_LYbKtR0_`X*gR+@K$K#Ay|0Tx>@ zEXEcrmmzW2R+jotei9~P54N$fDG?RY){`D-^VvF9o^l`7qhq$#+{L?#jG-t9r#R2_ z&8pO|j^woMCRfMdPq>PHqylH7lBld!m_B|X3PgOAyNh;ouDdOW&ok~JP)w^Ect_Z(Eb}D!m9}o~Sn7-upxUR{In7fG>q!%3I(~`z9 zW(5}z*S%elS97f-`uHrmFeEx$%u2)3Qi#SO0)TPg@Oh+N@BlUNOM%yb-*54Awb1XT z!8d_;JflY=tVN~$bo}Ye{IxuAxtB4@8T2V9 zzkA2}-L0(c7slps>3Uv|qR|wR(@>5<&&~QKZh7=@3klOv&WP)>bAND1{QBxR%Xk*% zZbXMAU`&P+3&LULh0TwMe<({I*-Lc&$rJx_>Gw-+fGZ9Utkk=s;zoyf9Ub#yzsv?U zL}hE=9=xBL4cFirIc)xg^Rop6=cs>~0e>-?(YKv&Sp-}1wEno+m+p>eS@lEQ>yU%RLwH~c%!gZb!QQ^Emr9~lyXC%7t>aQXd z$)1<%6vOYYclF7Xnql+EpsyFxEk*oDq8G!oHeoNerG{`sp_3k7qk>0Oz&rM^@c=YD z(4;6FYhv(~!s zcCnR~D0j{i54rd$X@KF0l z7Gy2Itz(fU$Hyz4wNlN{Go#XR>#{M)EK!k8+9_w@2iI z?|3yD&a0NE38a&MwEV6T>7UjE_n*lR7E)5}|Ma5AbjiTLB>L-Cz2??!QkmyK<#ACa z#&RSX3@-bl`O4J7&v}YX4(bxEIXfCJVDjyFv0eDrF9& zd4hE~Q6O*UQl)x zTzYfMyLS>kp;4AaV^>Mt-<@>jeEQ60c0YH$8|Uv%H`-cSh8x;hqzAr|{;TnphJ?p^ z-&T5QN%rc}Q4>LZhWSv)@+gpV#g-RS`fN=IwKP-IF+*kB{^kdNpxWz53~~PsiOT}V zcA>e0ax}ux{}YFJ4fto=;eWMil)pQbop0?w^#$_+z{Z&aK zzv{|}8B`Yeyr=N5R-%rQ3)Ls!9~|PFh$5bu-b{=Cd5`jMIx$Ruvc>CX9TYAX_W6Gj zk}fWzj5f=k?=q4Zk3r3zhdpicxen! zCGlrXeY)}Ye7$%V_9GDd(H3i9xDb^SL(NErB8n z*pkm#Fe0k?n)83k1s&Kh^#^^QweeD;l?nDO2M)k`dKD|LXmNe4{szSbtro_e5R6)g~NxEcyEP-x1 z_E*cjjJ0Po*FZUhb|i8#bVt4+TX7Bb@?u;h%`&biSh;#%*42U_;%pAWf1m!5sFAL+ zwBknZr6!ln`x#V?Wbw8pUNW!Ob0cL_o3n_;-~EF2D|;e8YeNZ8z;9T4iCx1;aBLTb zsz~7aTD#rO7Fn*w`iQGjH0maGJ4GO6{bng(Nk(o;v)b_FE0Zf7BwuluFt}h2*V?I4 zuPr8^pB4O#uWzF10wNIzid>4pCh0@NOk7hM<2Pt&T+gS-H@x*4Eav7-Q3YD*ki?Vy z()0ask0%i@;F5*^TF$rg7ZH}HVfZ<`d2IqB<4##t3>e7HA2=+b&)YdJB9v#Op2i`(6rdByLx*V7`B+mEl>8_*hn}7Wu=jkGWt9N2owbNhD-&4|n|&)?wE&8;ocU zBD08*2w+5+T9nQGJb$~anMw3rw>Ml5u=j^1%_PzC#`_Fj z7h2im;Xaq6u6TF)#wc%M zX8gF+(L|uNgh)NKqT+GWN$Jlw4<6_}JcdZMer6aRw%Hr3+n!Ii@!7KNaz15wbxroH zd}XIusWNfLFyA!N5d6*A{D>AbCbpFx&C}`-_T=;>i7pZ6_iWIJs#dbkFP(uD6L*ur zO*s1_)0=0Gd!(6BdUPQo<**Mno4d0)-`k<))iLI0k~ZeAl#Lfqs&o;4H>L&B7_{QQ zmGMwDHN99hEt9jR#aiQT+93^$!(=)c@)beDYy~cWWHE;wT-UjaEgd4!K_Yfp9>JRU z*J(fFgrwAQDuz~c&=r+PgctlO+{`mpArTYZ@yd=wHwe}--gH>P~y5~ zEV_Pu9!;4s!qYaoerGnK8g86K*O zuFK?}(ep^D2W~G08*M>cnamwW;Sx*@7rkRhlTi4D%8S}K?v0xWk!zJL&sVmQ>V|u; zA2v!P(S(!u7C$~QeUc@~;_r&t0dnjNQ%vYRVr)x=hink4MM2Og!NxL|$?W3-*tubb zfQJg@)oWU_hR>sfuM-x(eOu`O_C4z}VfnE0(gaPmYO!#-wC;7oN%=LJdPVke=f~+u zbA^PcK!aOG4&uX9@Mb_QWmz>~V5PZyJ80MgQZ2R@W%a)5p`O&)b=lIP2+%adj_PtE z`ZTyBK4uuVhArPX?EANsnP{uS0v5*g<;sz*n`CS!cJLyx?Dr4{xs3^H76h$!#pC8% z2wp`6qd~sz2K97{+(ydcnArdjoBwJ4uaP52!n`4C7lb?7b)t1tQ7GW!PDdT({HGTyk~0@*qwM61Mh?`^%xS-1k*Ys zHnAFB^X0ChXU1Q&odjhs)f6oUm@;mo4C!1|ylrwznk^n%M z&F1E{llp(7=0U(he8|&Q(V|)RnxfBVXEuX^Q$O9gw&S#61C{FA$*sR_8?0_#aT0Nv zx4f&@P~Uy!yBcnvLpd&K_Lt1GB2OS={IlFHnythy8f*OyGRmK97CkIY4V1K_ca3~V z(`<2_uBiO=@C0KZ8N>h^PyY^VpdUv5`Y;eI>z-b&*x zDH;9#UAx|X9K?XWoyWEX$Tl`5}2JXQ#pEjJCMBKXMJr3Do|-V6r+m%;DNBu zEg4N%_PIa&ci4u@es(R$Z{t zPAj?5GAkHm(@T2`TnMl>0`9joz*8aq2?LK|^0hRDh!Evn(4}GW=C_q=^5-a(9I040 zAHt{sFiMBCA1O8c6ytyP>R0?i)3sy0&yKF$R0%g?Qt@dxLY5VEuLHN@aw9i(gzJ^(*jM=w;0}=9P}{p=)InkfG_Q5-1%|wav+AxVvc8 zkenqlIDHsE6<`E8qtChn7k5`fKOKc-1>2qNcOVw* z{rsBMhe!e&#n1e>eT%@ z^`dW3+U=&|=t#5w@T4{vc6F{OEg<3h>}R5iKD zv-o1;qFB-`$$b2}_i9-+mjZsl4q4F5SR|gAKO?CInEx)<%s2=>YePJiz8G5aJX`k5 zQe^bE^$4e4T;veI3XQHBy+{U4g*V0-{waT1-2)nh28h>TQo_46d3pc7-&&2FyPMU)JqEk|~jhl3%iQn@Mom;t+{ywAO zGM%}R)6!Mz^tQ(BdwS3e=d+7q+o$vS4+%f~uD5oE0y8pJF~+kmu-97*&oc{D}zEeEEJ zW0Tc_-}B{75{oCY6SWs-R*f3IXr6H0q&F*pB$vn9lAHVl9}pU+L0-C=6Xz1Lwr z!aX&QeDTIBagk8b;MS3s8L|qsu(U6r2jh=&Arnn-|^sDI!NB&o`vFg?8 zgFy+>c5RaP+B6$8S;aG7S9X|XuXcDtp-778zz1Q%7S0j7u4|-z@(4Gt zdMOG#59V+KxT3#i&*3^7$@;=;zm7pMiWqFZ%w`g5lTQ>OuDgPmwCO2&9F9cC&&{_g z@9`=#*8G`PW`O%x2SQx>Hg`f8CWM%+T_)n1$}^QHYLXfG!1;h$&v7exJ{3=8DbTvM zc&#W++}vk|c}3M_=rK2(D_|LN=+K@||LccHjEYW)7lBgvW3w~?dy9FUo`@{T(xx(D zBaS#{x}_xjR~72+O^C@?rGcba5HADGh(v5QEA~Flh8T9&#(^d^U6aB^HN)*@A-5VE zbS^D-)WJH*%}e;1^TMU!z)Igrs9ZXcPxWl;Slh&aqwS=*RQNg$8(%Egul^t#*>`6mu-uF$8YjpGcS8W@<3_M8^h3O&y+?`th&u-<^_(K=46J4aHS?6Y?c8< zB||xo=?jcjj%;bSuZ^I_b54VkfPvC!|qWB@=}ZwPT8TeNKM~TIQ6$ z5xu@Ff~E|sVlc;yQ%xFP)Pc5<;%PqWCY^>`ADRuc=c=e;%&Gt@K}WEhyjP3x3utNi z0@FPy7a|7nB^a6Ce$ar+!Ijdlrag&KT}@Oa&a=bhg}P0=qhGx{qrW#tB!B~LFcd&q zC~C#!`c^Fpxs5IJEngSs{l&-2h(F+HOT9W#9x=fw#1EN4({8$jynBzHg2DYV%{%XV za>cIZ@P$Kn%5XAGrSBC_9P?w6^~TX~bv(P8qgcw(biQQV2GiI&i;52nm_rnr57k9d(H{eL~S) z8;9qf3s2L^i8&+vmVFG6SlZ!&A{p#G$yjE_mWyaI7;;`pz*^O_V#>T(W>q4<^gT!I z&G%j^SZrZRVni`-;?FsH)2HpCBe9ySG6npq z&gQH*H->DCHrJ@a$g()GBfy2JV@})L!$3pXrFwf!`)Kd3jP!KAq@*MQqO30qpb$Cx z`k|jcf8O9)6LQ3C%*Z6|nCf01?j%zBjD0`0j!MT>*3iIs)Pyz?s|wGXUviEBq%jPI z+`L*2>7)P9;88518_WDqBQv1!X#Z4}wQTVu9X==!p3bUY;5k4a^1f%j6&J6g-4r85AD<6HwkZeeH@^^$`p}{*3@ktsOh|~GxkInXKy`rfm>uCKDel< zAy#uc`hnU-@GLG^$eo|jn#j;vRCquuwD_dZ=QF$AL#z7>!kY&b#?ky1bmB}qHcAaa z=EY(JW@mH7eacSvQA`p@9v_C=^UkExR|r z>_22BMmeG6dq=fpyvExi$Jp}(RNSulw+x?$$`SAj*}+(z+_@(P{5*In>?%auWbE@_ zI(Sa_H`#2W`Mu5Szt|M!c@02h@;~K#|2`th#jX|qYSts$tA-r{8f2);vTH98X2UD| z?kp7iu6lWz-Wh}FzBHL)xv!41hK+j+6WCFPNY!n@7{BoQhnAHfg75e$HTfsT=5-z% z0;$;v-wm&y?@RDh3npA@4;T&ZzrzbuDPk+o#3m3s^}|fi$`T9KJTbE7*(@3XM?FAO zB8+ND#3)XeaY{c%X5q(sy%p&%k~pIc1b}Hdwe8j@*fo zwGG@mF_b75{z+i!qz1e=TbShANh|LFs7$2LG%(R@PBY79>rw$xUJ)v=lP`7W%S0CL z8`5$=Pl0@S`k=9BSVcRFw?U^Xh)^g&J9wht@!h*kVZKKBP2q;=&@@8+#t1<1+*gt3 zYP${Bu`{b9O^R(3wnBe;^%&=;qTZOGQ~u)BEH8}w*7?P;N&O+SBFQ}h@#;UJ7PdPF z#0>pwX92@vNHR`dJ&J#fjSk7kvy7*f+eJQka~F1_{($X-dRv2%lI(d5^+os=LG^7& zK{9t_UFUpYtS$Hrdb&QU7b=Qm^yhIhj%@xYxSoMNJF|9#CXjOLFIwO+iuNCs@U{zpbX^#c4`&ZLFXT+92`Iw?6x~P=@X`G zKe?H#McoOZ8{-5b!;KA*LKHl{{v^ZkBwip;T4tzP)ugM*)P>W$&Sd7qz${OwX4-^c ze?L}ao^XMa5;qMmy!c{GobnT;49PdkHOgNMIsdPZv;Sv$@8kGUlbhr)CU>!zyWBN5 zyO6uN$)+WZLZQx_35{fokd8ubHaE4(-9e0*a14`C(rGsLWR9|Q=&*9RsU#6;=ey2z zuE*nCKU{yo=l%FR9`DcN{dqlKuQxY5qaU>|FDvb&JuN6>^mb=WRAkZA=F3FuPYbN% z2oKILoeJn7GtXM`M5vK|%(PCy#vh4W;_}JvUx9&C#mmrTIKZ2|jd6bn=N0m`r}wkH z4CrMCxR9JL)?Vg_+$r+m=5P#6Z*M;M74^NJEs2qLN+aSKs`lNO|8|m zw?KKR9W#FFoGE*61I22sU82A@xcL^KT;!gqd-kwV=Bxt8!qVZ?Iy5u&b5sYkrkP5; zHnJ~1AobHepW3q0dR^+ijMDOV&eio6BnLeV6OkAPIN^5VG3gs&k}f{KHyG$z)AD~495b|)>qUv17VJD3a6 zcywW8itJZxOmU^yMwuEIAqN?U^z4~SW*)v+Ij(;%o_1$Rp#3P6AYC~p(QXz{F>$q4 z;=vuVL1<~6rc0EF1$=dXn@}RwgRQVzH)iD|_0^^3LoL-Wu1@CfP-RT3OO*qO;h7|c z6RZNv8(S-+g#4;?pxkHT4IBcB;FegHgI5E!_v{8TYed~&r#{#Y8>uv`pSm9Uxb0$K zBebLKC_WQQ5{B9{6LHHOx&9Fb!d9P3v!OVXUX-LZ{ugv={$a!F3PV;Xtfu->_SzXf z{b}?fxw&4fQ4~x5`_NdvM88>n^SaQkIM9F*2ZF0EAR4K&#vvNZ4n|$rxQ*>SL)ViY ziR}Cc#D!y$Dp8&6fUvscK`r*8vj!?{gF-RAjr1f_<7iXQ6a&NmV=ut);K!vH9M;{vwzg>8@`*8rrB}km?r@zaeTh4@G>@l0<(c9q5n`& zdN}&vhy-PBsd}rrYjd@R<>&eS3*sdr`Ei_Rf~==s0WJ^J4iY!1N4(wPkU8~px52KI z4Vpk2kLYUIBZ+({?e+E{JT-pge2*g}I$V$?gYV77if}py;ELc7%1?RRY#jAO03ZhS z-x#lIa~>?;c_Vb@faDJ_WB~)`vyK z%2Tw>60l!iS%kll4HoD_kBE*%Ykwo-{ANy}>tJ6ZEQcCbFW92R0M2S|g<|X(g%D&~ zs2A-M4UR@IVp3RbRa0U9-yt&&uy@GOFl2YH1*|CBwacoWFww;ZU#1x)-vA#Jwp+ zJw^Nx|0@EU#zJRWX)FfB(xEHLMZUhPI2X7gZA&sb!r!Ir&OWdSlOe;r$C5w0sBfNL za19$mwPjDLBkSqWYxn$E${f`Pz}vuS8vLU`=WA)YR=>s6R`u5&&Cb~J)(zsa`J^rH z(xwhgv3+WVV*#3eoB=w%kZ116_+a$-w_UrKju~9TpZT8*^nJ(duP40Io6le1H}>Fi zH-*WJ`zgSs?IdFNzA`j+7GR+9rTDEX#d+T|fjrn+z+&?DcTe`#QhiKk>n|gzJ8DM@ zU6Dw*Jf%B>u(!h;qRQFahckNz*$v&z-oF8p=Pb2W-Mba!=yo{AN%^dhF$dV4LBI{Q(N+bWT9zJ)r^6%4Qq zgkILOYF&qFq@J{imHoB^)?|pG&V(K6=!-E<_`>K%dR-z;?P|^U@RB2w-VlVWZCnG2 z*8e#d0V8z{!H}^7^d)t0mj4wi#O)=;#rqSEDeS`02+px5EgZ^=E~^X+JZssf@v>ND zkEoh1RN~td1XrSEu1$SCZ~3H+JP?l+VDx`9KqmlBj+wdNr|&@{-0u5Hm4P)WrnDJ@ z*r0(V6GP+S^F5~Ayb+JEw=om>+BDQ+8K4R|qZH_L`cRgVK_!nF!W$ePr!s|NE%5O3 zl_f{w$N8uH+!H0-A+|=%kjd$92)gawCpg1R_`MTx_1@h&}(o=b;OTJApCc z996iVA)rn#A2hAXHyJ$-(vBf?Sq=`_Syj>?dCxcWm^qT^Oz6NnqG9c7q~6+N?U1@; zlYAK&yb}m+&0|83t3TqHJ$n(J>YLFX_Ee`OVFlOnV;>lZR>ZU3nc zfJr2?xQ(oDiINFkDn?YTr<+&>``OdThukr!CK|y;FYrbJnzR~8Z7wo@jvWOb&{pd3 zcCsd+Z~Y+5&6UKx+pqGX2H2X$U<+@b9^718e8U-iOS-W?S6-K_ES@nAf>i+G+MT-d zb#H<0?%xG1MHNHRe)axLXE{Yqf%7#aP7J>e59~;XYT3p1V!XUamQL$7DPP)cFMXgf zMV)UVcZEx~m}}RmH5i?3{cBG0mfHP4YY2l0l9v~ zg5z0}>iKP+@jv? zVgG0WKxWndFR_&_js*30%K%|N!+#)Kz(hR$FWKYTA!$SaX72fifdVj794)TRvWNz@ zk{y)&hZ%@w;dYPucdqj+Rn>+#8*GU{gyz9RL^FT0=c@khQs{7(q4EvUIUPxP!Z+)I eE~i^01)uJ7xO~#R5Lg-b9opT?t /// /// - public void SaveAppSetting(string key, string value) + public void SetAppSetting(string key, string value) { - //在保存key值时必须先删除它,否则改key的值将出现两个,例如:value="oldvalue, newvalue" - configFile.AppSettings.Settings.Remove(key); - configFile.AppSettings.Settings.Add(key, value); + KeyValueConfigurationElement _key = configFile.AppSettings.Settings[key]; + if ( _key == null) + { + configFile.AppSettings.Settings.Add(key, value); + } + else + { + configFile.AppSettings.Settings[key].Value = value; + } configFile.Save(); } @@ -249,16 +254,17 @@ namespace net.nutcore.aliddns /// 判断appSettings中是否有指定键名 /// /// /// 键名 - public bool AppSettingsKeyExists(string strKey) + public bool isKeyExists(string strKey) { - foreach (string key in ConfigurationManager.AppSettings.AllKeys) + KeyValueConfigurationElement _key = configFile.AppSettings.Settings[strKey]; + if ( _key == null ) { - if (key == strKey) - { - return true; - } + return false; + } + else + { + return true; } - return false; } ///

diff --git a/net.nutcore.aliddns/net.nutcore.aliddns/Form_main.Designer.cs b/net.nutcore.aliddns/net.nutcore.aliddns/Form_main.Designer.cs index 96b0622..0e4fa29 100644 --- a/net.nutcore.aliddns/net.nutcore.aliddns/Form_main.Designer.cs +++ b/net.nutcore.aliddns/net.nutcore.aliddns/Form_main.Designer.cs @@ -112,7 +112,10 @@ this.columnHeader_subdomain = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.tabPage_other = new System.Windows.Forms.TabPage(); this.groupBox4 = new System.Windows.Forms.GroupBox(); - this.checkBox_autoCheckUpdate = new System.Windows.Forms.CheckBox(); + this.textBox_upgradeUrl = new System.Windows.Forms.TextBox(); + this.label17 = new System.Windows.Forms.Label(); + this.button_updateTest = new System.Windows.Forms.Button(); + this.checkBox_autoUpgrade = new System.Windows.Forms.CheckBox(); this.label_latestVer = new System.Windows.Forms.Label(); this.label28 = new System.Windows.Forms.Label(); this.label_currentVer = new System.Windows.Forms.Label(); @@ -152,7 +155,7 @@ this.timeSetGroup.Location = new System.Drawing.Point(3, 3); this.timeSetGroup.Name = "timeSetGroup"; this.timeSetGroup.Size = new System.Drawing.Size(427, 85); - this.timeSetGroup.TabIndex = 4; + this.timeSetGroup.TabIndex = 0; this.timeSetGroup.TabStop = false; this.timeSetGroup.Text = "启动设置"; // @@ -162,7 +165,7 @@ this.checkBox_ngrokExists.Location = new System.Drawing.Point(9, 63); this.checkBox_ngrokExists.Name = "checkBox_ngrokExists"; this.checkBox_ngrokExists.Size = new System.Drawing.Size(150, 16); - this.checkBox_ngrokExists.TabIndex = 10; + this.checkBox_ngrokExists.TabIndex = 2; this.checkBox_ngrokExists.Text = "检测ngrok.exe是否存在"; this.checkBox_ngrokExists.UseVisualStyleBackColor = true; this.checkBox_ngrokExists.CheckedChanged += new System.EventHandler(this.checkBox_ngrokExists_CheckedChanged); @@ -173,7 +176,7 @@ this.checkBox_ngrokAuto.Location = new System.Drawing.Point(9, 41); this.checkBox_ngrokAuto.Name = "checkBox_ngrokAuto"; this.checkBox_ngrokAuto.Size = new System.Drawing.Size(102, 16); - this.checkBox_ngrokAuto.TabIndex = 9; + this.checkBox_ngrokAuto.TabIndex = 1; this.checkBox_ngrokAuto.Text = "自动启动ngrok"; this.checkBox_ngrokAuto.UseVisualStyleBackColor = true; this.checkBox_ngrokAuto.CheckedChanged += new System.EventHandler(this.checkBox_ngrokAuto_CheckedChanged); @@ -184,7 +187,7 @@ this.checkBox_logAutoSave.Location = new System.Drawing.Point(258, 41); this.checkBox_logAutoSave.Name = "checkBox_logAutoSave"; this.checkBox_logAutoSave.Size = new System.Drawing.Size(96, 16); - this.checkBox_logAutoSave.TabIndex = 8; + this.checkBox_logAutoSave.TabIndex = 4; this.checkBox_logAutoSave.Text = "日志自动转储"; this.checkBox_logAutoSave.UseVisualStyleBackColor = true; this.checkBox_logAutoSave.CheckedChanged += new System.EventHandler(this.checkBox_logAutoSave_CheckedChanged); @@ -195,7 +198,7 @@ this.checkBox_minimized.Location = new System.Drawing.Point(258, 19); this.checkBox_minimized.Name = "checkBox_minimized"; this.checkBox_minimized.Size = new System.Drawing.Size(96, 16); - this.checkBox_minimized.TabIndex = 7; + this.checkBox_minimized.TabIndex = 3; this.checkBox_minimized.Text = "启动时最小化"; this.checkBox_minimized.UseVisualStyleBackColor = true; this.checkBox_minimized.CheckedChanged += new System.EventHandler(this.checkBox_minimized_CheckedChanged); @@ -206,7 +209,7 @@ this.checkBox_autoBoot.Location = new System.Drawing.Point(9, 19); this.checkBox_autoBoot.Name = "checkBox_autoBoot"; this.checkBox_autoBoot.Size = new System.Drawing.Size(132, 16); - this.checkBox_autoBoot.TabIndex = 5; + this.checkBox_autoBoot.TabIndex = 0; this.checkBox_autoBoot.Text = "随系统启动自动运行"; this.checkBox_autoBoot.UseVisualStyleBackColor = true; this.checkBox_autoBoot.CheckedChanged += new System.EventHandler(this.checkBox_autoBoot_CheckedChanged); @@ -226,7 +229,7 @@ this.debugMessage.Location = new System.Drawing.Point(213, 46); this.debugMessage.Name = "debugMessage"; this.debugMessage.Size = new System.Drawing.Size(216, 79); - this.debugMessage.TabIndex = 5; + this.debugMessage.TabIndex = 3; this.debugMessage.TabStop = false; this.debugMessage.Text = "调试信息"; // @@ -237,7 +240,7 @@ this.label_TTL.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.label_TTL.Name = "label_TTL"; this.label_TTL.Size = new System.Drawing.Size(41, 12); - this.label_TTL.TabIndex = 10; + this.label_TTL.TabIndex = 7; this.label_TTL.Text = ""; // // label15 @@ -247,7 +250,7 @@ this.label15.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.label15.Name = "label15"; this.label15.Size = new System.Drawing.Size(29, 12); - this.label15.TabIndex = 9; + this.label15.TabIndex = 6; this.label15.Text = "TTL:"; // // textBox_recordId @@ -257,7 +260,7 @@ this.textBox_recordId.Name = "textBox_recordId"; this.textBox_recordId.ReadOnly = true; this.textBox_recordId.Size = new System.Drawing.Size(116, 21); - this.textBox_recordId.TabIndex = 8; + this.textBox_recordId.TabIndex = 1; this.textBox_recordId.Text = ""; // // label_globalValue @@ -266,7 +269,7 @@ this.label_globalValue.Location = new System.Drawing.Point(45, 63); this.label_globalValue.Name = "label_globalValue"; this.label_globalValue.Size = new System.Drawing.Size(41, 12); - this.label_globalValue.TabIndex = 7; + this.label_globalValue.TabIndex = 9; this.label_globalValue.Text = ""; // // label_globalDomainType @@ -275,7 +278,7 @@ this.label_globalDomainType.Location = new System.Drawing.Point(96, 44); this.label_globalDomainType.Name = "label_globalDomainType"; this.label_globalDomainType.Size = new System.Drawing.Size(41, 12); - this.label_globalDomainType.TabIndex = 6; + this.label_globalDomainType.TabIndex = 5; this.label_globalDomainType.Text = ""; // // label12 @@ -284,7 +287,7 @@ this.label12.Location = new System.Drawing.Point(6, 62); this.label12.Name = "label12"; this.label12.Size = new System.Drawing.Size(41, 12); - this.label12.TabIndex = 5; + this.label12.TabIndex = 8; this.label12.Text = "Value:"; // // label11 @@ -339,7 +342,7 @@ this.globalSetGroup.Location = new System.Drawing.Point(213, 129); this.globalSetGroup.Name = "globalSetGroup"; this.globalSetGroup.Size = new System.Drawing.Size(216, 145); - this.globalSetGroup.TabIndex = 6; + this.globalSetGroup.TabIndex = 4; this.globalSetGroup.TabStop = false; this.globalSetGroup.Text = "阿里云账号"; // @@ -348,7 +351,7 @@ this.button_addNewDomain.Location = new System.Drawing.Point(145, 119); this.button_addNewDomain.Name = "button_addNewDomain"; this.button_addNewDomain.Size = new System.Drawing.Size(65, 23); - this.button_addNewDomain.TabIndex = 17; + this.button_addNewDomain.TabIndex = 10; this.button_addNewDomain.Text = "添加域名"; this.button_addNewDomain.UseVisualStyleBackColor = true; this.button_addNewDomain.Click += new System.EventHandler(this.button_addNewDomain_Click); @@ -360,7 +363,7 @@ this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(47, 12); - this.label13.TabIndex = 16; + this.label13.TabIndex = 6; this.label13.Text = "TTL(秒)"; // // textBox_TTL @@ -369,7 +372,7 @@ this.textBox_TTL.Margin = new System.Windows.Forms.Padding(2); this.textBox_TTL.Name = "textBox_TTL"; this.textBox_TTL.Size = new System.Drawing.Size(37, 21); - this.textBox_TTL.TabIndex = 15; + this.textBox_TTL.TabIndex = 7; this.textBox_TTL.Text = "600"; this.textBox_TTL.Leave += new System.EventHandler(this.textBox_TTL_Leave); // @@ -378,7 +381,7 @@ this.button_ShowHide.Location = new System.Drawing.Point(75, 119); this.button_ShowHide.Name = "button_ShowHide"; this.button_ShowHide.Size = new System.Drawing.Size(65, 23); - this.button_ShowHide.TabIndex = 14; + this.button_ShowHide.TabIndex = 9; this.button_ShowHide.Text = "显示录入"; this.button_ShowHide.UseVisualStyleBackColor = true; this.button_ShowHide.Click += new System.EventHandler(this.button_ShowHide_Click); @@ -388,7 +391,7 @@ this.button_checkAndSaveConfig.Location = new System.Drawing.Point(5, 119); this.button_checkAndSaveConfig.Name = "button_checkAndSaveConfig"; this.button_checkAndSaveConfig.Size = new System.Drawing.Size(65, 23); - this.button_checkAndSaveConfig.TabIndex = 10; + this.button_checkAndSaveConfig.TabIndex = 8; this.button_checkAndSaveConfig.Text = "测试连接"; this.button_checkAndSaveConfig.UseVisualStyleBackColor = true; this.button_checkAndSaveConfig.Click += new System.EventHandler(this.checkConfig_Click); @@ -399,7 +402,7 @@ this.label6.Location = new System.Drawing.Point(6, 73); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(53, 12); - this.label6.TabIndex = 5; + this.label6.TabIndex = 4; this.label6.Text = "完整域名"; // // textBox_fullDomainName @@ -407,7 +410,7 @@ this.textBox_fullDomainName.Location = new System.Drawing.Point(65, 69); this.textBox_fullDomainName.Name = "textBox_fullDomainName"; this.textBox_fullDomainName.Size = new System.Drawing.Size(145, 21); - this.textBox_fullDomainName.TabIndex = 4; + this.textBox_fullDomainName.TabIndex = 5; this.textBox_fullDomainName.Text = "www.xxx.com"; this.textBox_fullDomainName.Leave += new System.EventHandler(this.fullDomainName_Leave); // @@ -455,7 +458,7 @@ this.label8.Location = new System.Drawing.Point(106, 21); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(65, 12); - this.label8.TabIndex = 8; + this.label8.TabIndex = 2; this.label8.Text = "秒更新一次"; // // textBox_newSeconds @@ -463,7 +466,7 @@ this.textBox_newSeconds.Location = new System.Drawing.Point(40, 18); this.textBox_newSeconds.Name = "textBox_newSeconds"; this.textBox_newSeconds.Size = new System.Drawing.Size(60, 21); - this.textBox_newSeconds.TabIndex = 7; + this.textBox_newSeconds.TabIndex = 1; this.textBox_newSeconds.Text = "60"; this.textBox_newSeconds.Leave += new System.EventHandler(this.newSeconds_Leave); // @@ -473,7 +476,7 @@ this.label7.Location = new System.Drawing.Point(5, 21); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(29, 12); - this.label7.TabIndex = 6; + this.label7.TabIndex = 0; this.label7.Text = "每隔"; // // autoUpdateTimer @@ -511,7 +514,7 @@ this.ToolStripMenuItem_checkUpdate.Name = "ToolStripMenuItem_checkUpdate"; this.ToolStripMenuItem_checkUpdate.Size = new System.Drawing.Size(124, 22); this.ToolStripMenuItem_checkUpdate.Text = "检查升级"; - this.ToolStripMenuItem_checkUpdate.Click += new System.EventHandler(this.ToolStripMenuItem_checkUPdate_Click); + this.ToolStripMenuItem_checkUpdate.Click += new System.EventHandler(this.ToolStripMenuItem_checkUpgrade_Click); // // groupBox_netstate // @@ -524,7 +527,7 @@ this.groupBox_netstate.Location = new System.Drawing.Point(6, 6); this.groupBox_netstate.Name = "groupBox_netstate"; this.groupBox_netstate.Size = new System.Drawing.Size(423, 38); - this.groupBox_netstate.TabIndex = 9; + this.groupBox_netstate.TabIndex = 0; this.groupBox_netstate.TabStop = false; this.groupBox_netstate.Text = "网络状态"; // @@ -535,7 +538,7 @@ this.label_DomainIpStatus.Location = new System.Drawing.Point(371, 19); this.label_DomainIpStatus.Name = "label_DomainIpStatus"; this.label_DomainIpStatus.Size = new System.Drawing.Size(41, 12); - this.label_DomainIpStatus.TabIndex = 9; + this.label_DomainIpStatus.TabIndex = 5; this.label_DomainIpStatus.Text = "未绑定"; // // label_localIpStatus @@ -545,7 +548,7 @@ this.label_localIpStatus.Location = new System.Drawing.Point(156, 19); this.label_localIpStatus.Name = "label_localIpStatus"; this.label_localIpStatus.Size = new System.Drawing.Size(41, 12); - this.label_localIpStatus.TabIndex = 8; + this.label_localIpStatus.TabIndex = 2; this.label_localIpStatus.Text = "未连接"; // // label_domainIP @@ -554,7 +557,7 @@ this.label_domainIP.Location = new System.Drawing.Point(264, 19); this.label_domainIP.Name = "label_domainIP"; this.label_domainIP.Size = new System.Drawing.Size(47, 12); - this.label_domainIP.TabIndex = 7; + this.label_domainIP.TabIndex = 4; this.label_domainIP.Text = "0.0.0.0"; // // label2 @@ -563,7 +566,7 @@ this.label2.Location = new System.Drawing.Point(218, 19); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(47, 12); - this.label2.TabIndex = 6; + this.label2.TabIndex = 3; this.label2.Text = "域名IP:"; // // label_localIP @@ -572,7 +575,7 @@ this.label_localIP.Location = new System.Drawing.Point(57, 19); this.label_localIP.Name = "label_localIP"; this.label_localIP.Size = new System.Drawing.Size(47, 12); - this.label_localIP.TabIndex = 5; + this.label_localIP.TabIndex = 1; this.label_localIP.Text = "0.0.0.0"; // // label1 @@ -581,7 +584,7 @@ this.label1.Location = new System.Drawing.Point(5, 19); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(53, 12); - this.label1.TabIndex = 4; + this.label1.TabIndex = 0; this.label1.Text = "WAN口IP:"; // // groupBox_setWanIp @@ -595,7 +598,7 @@ this.groupBox_setWanIp.Location = new System.Drawing.Point(6, 46); this.groupBox_setWanIp.Name = "groupBox_setWanIp"; this.groupBox_setWanIp.Size = new System.Drawing.Size(201, 135); - this.groupBox_setWanIp.TabIndex = 10; + this.groupBox_setWanIp.TabIndex = 1; this.groupBox_setWanIp.TabStop = false; this.groupBox_setWanIp.Text = "WAN口IP设置"; // @@ -604,7 +607,7 @@ this.button_addUrl.Location = new System.Drawing.Point(105, 66); this.button_addUrl.Name = "button_addUrl"; this.button_addUrl.Size = new System.Drawing.Size(90, 23); - this.button_addUrl.TabIndex = 21; + this.button_addUrl.TabIndex = 3; this.button_addUrl.Text = "添加网址"; this.button_addUrl.UseVisualStyleBackColor = true; this.button_addUrl.Click += new System.EventHandler(this.button_addUrl_Click); @@ -616,14 +619,14 @@ this.maskedTextBox_setIP.Name = "maskedTextBox_setIP"; this.maskedTextBox_setIP.PromptChar = ' '; this.maskedTextBox_setIP.Size = new System.Drawing.Size(106, 21); - this.maskedTextBox_setIP.TabIndex = 20; + this.maskedTextBox_setIP.TabIndex = 4; // // button_setIP // this.button_setIP.Location = new System.Drawing.Point(119, 99); this.button_setIP.Name = "button_setIP"; this.button_setIP.Size = new System.Drawing.Size(76, 23); - this.button_setIP.TabIndex = 19; + this.button_setIP.TabIndex = 5; this.button_setIP.Text = "手工指定IP"; this.button_setIP.UseVisualStyleBackColor = true; this.button_setIP.Click += new System.EventHandler(this.button_setIP_Click); @@ -634,7 +637,7 @@ this.comboBox_whatIsUrl.Location = new System.Drawing.Point(6, 41); this.comboBox_whatIsUrl.Name = "comboBox_whatIsUrl"; this.comboBox_whatIsUrl.Size = new System.Drawing.Size(189, 20); - this.comboBox_whatIsUrl.TabIndex = 18; + this.comboBox_whatIsUrl.TabIndex = 1; this.comboBox_whatIsUrl.Leave += new System.EventHandler(this.comboBox_whatIsUrl_Leave); // // button_whatIsTest @@ -642,7 +645,7 @@ this.button_whatIsTest.Location = new System.Drawing.Point(6, 66); this.button_whatIsTest.Name = "button_whatIsTest"; this.button_whatIsTest.Size = new System.Drawing.Size(90, 23); - this.button_whatIsTest.TabIndex = 17; + this.button_whatIsTest.TabIndex = 2; this.button_whatIsTest.Text = "获取WAN口IP"; this.button_whatIsTest.UseVisualStyleBackColor = true; this.button_whatIsTest.Click += new System.EventHandler(this.button_whatIsTest_Click); @@ -653,7 +656,7 @@ this.label14.Location = new System.Drawing.Point(7, 22); this.label14.Name = "label14"; this.label14.Size = new System.Drawing.Size(59, 12); - this.label14.TabIndex = 16; + this.label14.TabIndex = 0; this.label14.Text = "查询网址:"; // // tabControl1 @@ -666,7 +669,7 @@ this.tabControl1.Name = "tabControl1"; this.tabControl1.SelectedIndex = 0; this.tabControl1.Size = new System.Drawing.Size(441, 303); - this.tabControl1.TabIndex = 11; + this.tabControl1.TabIndex = 0; // // tabPage_ddns // @@ -695,7 +698,7 @@ this.groupBox6.Location = new System.Drawing.Point(6, 185); this.groupBox6.Name = "groupBox6"; this.groupBox6.Size = new System.Drawing.Size(200, 89); - this.groupBox6.TabIndex = 11; + this.groupBox6.TabIndex = 2; this.groupBox6.TabStop = false; this.groupBox6.Text = "更新设置"; // @@ -705,7 +708,7 @@ this.checkBox_autoUpdate.Location = new System.Drawing.Point(7, 43); this.checkBox_autoUpdate.Name = "checkBox_autoUpdate"; this.checkBox_autoUpdate.Size = new System.Drawing.Size(72, 16); - this.checkBox_autoUpdate.TabIndex = 10; + this.checkBox_autoUpdate.TabIndex = 3; this.checkBox_autoUpdate.Text = "自动更新"; this.checkBox_autoUpdate.UseVisualStyleBackColor = true; // @@ -715,7 +718,7 @@ this.label3.Location = new System.Drawing.Point(114, 43); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(77, 12); - this.label3.TabIndex = 9; + this.label3.TabIndex = 5; this.label3.Text = "秒后更新记录"; // // label_nextUpdateSeconds @@ -724,7 +727,7 @@ this.label_nextUpdateSeconds.Location = new System.Drawing.Point(84, 44); this.label_nextUpdateSeconds.Name = "label_nextUpdateSeconds"; this.label_nextUpdateSeconds.Size = new System.Drawing.Size(30, 12); - this.label_nextUpdateSeconds.TabIndex = 8; + this.label_nextUpdateSeconds.TabIndex = 4; this.label_nextUpdateSeconds.Text = "60"; this.label_nextUpdateSeconds.TextAlign = System.Drawing.ContentAlignment.TopRight; // @@ -733,7 +736,7 @@ this.button_updateNow.Location = new System.Drawing.Point(6, 62); this.button_updateNow.Name = "button_updateNow"; this.button_updateNow.Size = new System.Drawing.Size(185, 23); - this.button_updateNow.TabIndex = 7; + this.button_updateNow.TabIndex = 6; this.button_updateNow.Text = "立即更新"; this.button_updateNow.UseVisualStyleBackColor = true; this.button_updateNow.Click += new System.EventHandler(this.updateNow_Click); @@ -768,7 +771,7 @@ this.groupBox1.Location = new System.Drawing.Point(238, 6); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(189, 48); - this.groupBox1.TabIndex = 0; + this.groupBox1.TabIndex = 1; this.groupBox1.TabStop = false; this.groupBox1.Text = "认证令牌"; // @@ -795,7 +798,7 @@ this.groupBox2.Location = new System.Drawing.Point(6, 6); this.groupBox2.Name = "groupBox2"; this.groupBox2.Size = new System.Drawing.Size(226, 48); - this.groupBox2.TabIndex = 1; + this.groupBox2.TabIndex = 0; this.groupBox2.TabStop = false; this.groupBox2.Text = "服务端Ngrokd"; // @@ -836,7 +839,7 @@ this.button_stop.Location = new System.Drawing.Point(360, 180); this.button_stop.Name = "button_stop"; this.button_stop.Size = new System.Drawing.Size(55, 25); - this.button_stop.TabIndex = 11; + this.button_stop.TabIndex = 6; this.button_stop.Text = "停止"; this.button_stop.UseVisualStyleBackColor = true; this.button_stop.Click += new System.EventHandler(this.button_stop_Click); @@ -846,7 +849,7 @@ this.button_edit.Location = new System.Drawing.Point(360, 51); this.button_edit.Name = "button_edit"; this.button_edit.Size = new System.Drawing.Size(55, 24); - this.button_edit.TabIndex = 10; + this.button_edit.TabIndex = 2; this.button_edit.Text = "编辑"; this.button_edit.UseVisualStyleBackColor = true; this.button_edit.Click += new System.EventHandler(this.button_edit_Click); @@ -856,7 +859,7 @@ this.button_ngrokSave.Location = new System.Drawing.Point(360, 112); this.button_ngrokSave.Name = "button_ngrokSave"; this.button_ngrokSave.Size = new System.Drawing.Size(55, 25); - this.button_ngrokSave.TabIndex = 9; + this.button_ngrokSave.TabIndex = 4; this.button_ngrokSave.Text = "保存"; this.button_ngrokSave.UseVisualStyleBackColor = true; this.button_ngrokSave.Click += new System.EventHandler(this.button_ngrokSave_Click); @@ -866,7 +869,7 @@ this.button_ngrokApply.Location = new System.Drawing.Point(360, 149); this.button_ngrokApply.Name = "button_ngrokApply"; this.button_ngrokApply.Size = new System.Drawing.Size(55, 25); - this.button_ngrokApply.TabIndex = 8; + this.button_ngrokApply.TabIndex = 5; this.button_ngrokApply.Text = "启动"; this.button_ngrokApply.UseVisualStyleBackColor = true; this.button_ngrokApply.Click += new System.EventHandler(this.button_ngrokApply_Click); @@ -876,7 +879,7 @@ this.button_delete.Location = new System.Drawing.Point(360, 81); this.button_delete.Name = "button_delete"; this.button_delete.Size = new System.Drawing.Size(55, 25); - this.button_delete.TabIndex = 7; + this.button_delete.TabIndex = 3; this.button_delete.Text = "删除"; this.button_delete.UseVisualStyleBackColor = true; this.button_delete.Click += new System.EventHandler(this.button_delete_Click); @@ -886,7 +889,7 @@ this.button_addnew.Location = new System.Drawing.Point(360, 20); this.button_addnew.Name = "button_addnew"; this.button_addnew.Size = new System.Drawing.Size(55, 25); - this.button_addnew.TabIndex = 6; + this.button_addnew.TabIndex = 1; this.button_addnew.Text = "增加"; this.button_addnew.UseVisualStyleBackColor = true; this.button_addnew.Click += new System.EventHandler(this.button_addnew_Click); @@ -905,7 +908,7 @@ this.listView_ngrok.Location = new System.Drawing.Point(6, 20); this.listView_ngrok.Name = "listView_ngrok"; this.listView_ngrok.Size = new System.Drawing.Size(348, 185); - this.listView_ngrok.TabIndex = 5; + this.listView_ngrok.TabIndex = 0; this.listView_ngrok.UseCompatibleStateImageBehavior = false; this.listView_ngrok.View = System.Windows.Forms.View.Details; this.listView_ngrok.DoubleClick += new System.EventHandler(this.button_edit_Click); @@ -956,28 +959,58 @@ // // groupBox4 // - this.groupBox4.Controls.Add(this.checkBox_autoCheckUpdate); + this.groupBox4.Controls.Add(this.textBox_upgradeUrl); + this.groupBox4.Controls.Add(this.label17); + this.groupBox4.Controls.Add(this.button_updateTest); + this.groupBox4.Controls.Add(this.checkBox_autoUpgrade); this.groupBox4.Controls.Add(this.label_latestVer); this.groupBox4.Controls.Add(this.label28); this.groupBox4.Controls.Add(this.label_currentVer); this.groupBox4.Controls.Add(this.label30); this.groupBox4.Location = new System.Drawing.Point(3, 94); this.groupBox4.Name = "groupBox4"; - this.groupBox4.Size = new System.Drawing.Size(427, 42); - this.groupBox4.TabIndex = 11; + this.groupBox4.Size = new System.Drawing.Size(427, 72); + this.groupBox4.TabIndex = 1; this.groupBox4.TabStop = false; this.groupBox4.Text = "升级设置"; // - // checkBox_autoCheckUpdate + // textBox_upgradeUrl // - this.checkBox_autoCheckUpdate.AutoSize = true; - this.checkBox_autoCheckUpdate.Location = new System.Drawing.Point(258, 18); - this.checkBox_autoCheckUpdate.Name = "checkBox_autoCheckUpdate"; - this.checkBox_autoCheckUpdate.Size = new System.Drawing.Size(96, 16); - this.checkBox_autoCheckUpdate.TabIndex = 4; - this.checkBox_autoCheckUpdate.Text = "自动检测升级"; - this.checkBox_autoCheckUpdate.UseVisualStyleBackColor = true; - this.checkBox_autoCheckUpdate.CheckedChanged += new System.EventHandler(this.checkBox_autoCheckUpdate_CheckedChanged); + this.textBox_upgradeUrl.Location = new System.Drawing.Point(42, 43); + this.textBox_upgradeUrl.Name = "textBox_upgradeUrl"; + this.textBox_upgradeUrl.Size = new System.Drawing.Size(194, 21); + this.textBox_upgradeUrl.TabIndex = 7; + this.textBox_upgradeUrl.Leave += new System.EventHandler(this.textBox_upgradeUrl_Leave); + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(7, 46); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(35, 12); + this.label17.TabIndex = 6; + this.label17.Text = "地址:"; + // + // button_updateTest + // + this.button_updateTest.Location = new System.Drawing.Point(258, 40); + this.button_updateTest.Name = "button_updateTest"; + this.button_updateTest.Size = new System.Drawing.Size(96, 25); + this.button_updateTest.TabIndex = 5; + this.button_updateTest.Text = "立即检测升级"; + this.button_updateTest.UseVisualStyleBackColor = true; + this.button_updateTest.Click += new System.EventHandler(this.button_upgradeTest_Click); + // + // checkBox_autoUpgrade + // + this.checkBox_autoUpgrade.AutoSize = true; + this.checkBox_autoUpgrade.Location = new System.Drawing.Point(258, 18); + this.checkBox_autoUpgrade.Name = "checkBox_autoUpgrade"; + this.checkBox_autoUpgrade.Size = new System.Drawing.Size(96, 16); + this.checkBox_autoUpgrade.TabIndex = 4; + this.checkBox_autoUpgrade.Text = "自动检测升级"; + this.checkBox_autoUpgrade.UseVisualStyleBackColor = true; + this.checkBox_autoUpgrade.CheckedChanged += new System.EventHandler(this.checkBox_autoUpgrade_CheckedChanged); // // label_latestVer // @@ -1009,7 +1042,7 @@ // label30 // this.label30.AutoSize = true; - this.label30.Location = new System.Drawing.Point(6, 19); + this.label30.Location = new System.Drawing.Point(7, 19); this.label30.Name = "label30"; this.label30.Size = new System.Drawing.Size(59, 12); this.label30.TabIndex = 0; @@ -1033,7 +1066,7 @@ this.textBox_updateInfo.Name = "textBox_updateInfo"; this.textBox_updateInfo.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.textBox_updateInfo.Size = new System.Drawing.Size(427, 211); - this.textBox_updateInfo.TabIndex = 9; + this.textBox_updateInfo.TabIndex = 1; // // groupBox5 // @@ -1042,7 +1075,7 @@ this.groupBox5.Location = new System.Drawing.Point(3, 3); this.groupBox5.Name = "groupBox5"; this.groupBox5.Size = new System.Drawing.Size(427, 41); - this.groupBox5.TabIndex = 8; + this.groupBox5.TabIndex = 0; this.groupBox5.TabStop = false; this.groupBox5.Text = "著作信息"; // @@ -1052,7 +1085,7 @@ this.label31.Location = new System.Drawing.Point(6, 17); this.label31.Name = "label31"; this.label31.Size = new System.Drawing.Size(95, 12); - this.label31.TabIndex = 6; + this.label31.TabIndex = 0; this.label31.Text = "本程序发布地址:"; // // linkLabel2 @@ -1061,7 +1094,7 @@ this.linkLabel2.Location = new System.Drawing.Point(107, 17); this.linkLabel2.Name = "linkLabel2"; this.linkLabel2.Size = new System.Drawing.Size(125, 12); - this.linkLabel2.TabIndex = 2; + this.linkLabel2.TabIndex = 1; this.linkLabel2.TabStop = true; this.linkLabel2.Text = "AliDDNS 3.0 之后版本"; this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); @@ -1204,7 +1237,7 @@ private System.Windows.Forms.Label label_nextUpdateSeconds; private System.Windows.Forms.Button button_updateNow; private System.Windows.Forms.GroupBox groupBox4; - private System.Windows.Forms.CheckBox checkBox_autoCheckUpdate; + private System.Windows.Forms.CheckBox checkBox_autoUpgrade; private System.Windows.Forms.Label label_latestVer; private System.Windows.Forms.Label label28; private System.Windows.Forms.Label label_currentVer; @@ -1218,6 +1251,9 @@ private System.Windows.Forms.CheckBox checkBox_ngrokExists; private System.Windows.Forms.Button button_edit; private System.Windows.Forms.Button button_stop; + private System.Windows.Forms.TextBox textBox_upgradeUrl; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Button button_updateTest; } } diff --git a/net.nutcore.aliddns/net.nutcore.aliddns/Form_main.cs b/net.nutcore.aliddns/net.nutcore.aliddns/Form_main.cs index ed0c0d4..384e3a3 100644 --- a/net.nutcore.aliddns/net.nutcore.aliddns/Form_main.cs +++ b/net.nutcore.aliddns/net.nutcore.aliddns/Form_main.cs @@ -9,6 +9,7 @@ using System.IO; using System.Net; using System.Text; using System.Text.RegularExpressions; +using System.Threading; using System.Windows.Forms; using static Aliyun.Acs.Alidns.Model.V20150109.DescribeSubDomainRecordsResponse; @@ -16,7 +17,7 @@ namespace net.nutcore.aliddns { public partial class Form_main : Form { - public static bool checkUpdate; + private delegate void ThreadNew();//代理异步线程->升级 static IClientProfile clientProfile; static DefaultAcsClient client; //初始化ngrok操作类 @@ -79,20 +80,6 @@ namespace net.nutcore.aliddns //读取设置文件aliddns_config.xml if (appConfig_Load()) { - string ExePath = System.AppDomain.CurrentDomain.BaseDirectory; - string updateExe = ExePath + "update.exe"; - if(checkUpdate == true) - { - if (File.Exists(updateExe)) - { - //执行update.exe - } - else - { - textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "版本检测程序update.exe未找到,跳过版本检测! " + "\r\n"); - } - } - //窗体根据参数判断是否最小化驻留系统托盘 if (checkBox_minimized.Checked == true) { @@ -129,18 +116,18 @@ namespace net.nutcore.aliddns textBox_updateInfo.Text = "软件运行目录下没有找到updateinfo.txt文件!"; } - //版本检查 - label_currentVer.Text = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); //获取当前版本 - if (Form_main.checkUpdate == true) - { - checkBox_autoCheckUpdate.Checked = true; - //获取远程版本信息 - string strVer = Form_main.verCheckUpdate(); - label_latestVer.Text = strVer.ToString(); + //获取当前版本 + label_currentVer.Text = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); + if ( checkBox_autoUpgrade.Checked == true ) + { + //执行upgrade + textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "正在自动检测升级! " + "\r\n"); + Thread newThread = new Thread(new ParameterizedThreadStart(simpleUpgrade)); + newThread.Start(cfg.GetAppSetting("upgradeUrl")); } else { - checkBox_autoCheckUpdate.Checked = false; + textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "自动检测升级未启用! " + "\r\n"); } //读取ngrok配置文件 ngrokConfig_Load(); @@ -161,9 +148,11 @@ namespace net.nutcore.aliddns textBox_recordId.Text = cfg.GetAppSetting("RecordID").ToString(); textBox_fullDomainName.Text = cfg.GetAppSetting("fullDomainName").ToString(); label_nextUpdateSeconds.Text = textBox_newSeconds.Text = cfg.GetAppSetting("WaitingTime").ToString(); + if (cfg.GetAppSetting("autoUpdate").ToString() == "On") checkBox_autoUpdate.Checked = true; else checkBox_autoUpdate.Checked = false; - if(cfg.GetAppSetting("whatIsUrl").ToString() != null) + + if (cfg.GetAppSetting("whatIsUrl").ToString() != null) { string[] arrayUrl = cfg.GetAppSetting("whatIsUrl").ToString().Split(','); foreach(string strUrl in arrayUrl) @@ -184,8 +173,8 @@ namespace net.nutcore.aliddns textBox_TTL.Text = cfg.GetAppSetting("TTL").ToString(); - if (cfg.GetAppSetting("autoCheckUpdate").ToString() == "On") checkUpdate = true; - else checkUpdate = false; + if (cfg.GetAppSetting("autoUpgrade").ToString() == "On") checkBox_autoUpgrade.Checked = true; + else checkBox_autoUpgrade.Checked = false; if (cfg.GetAppSetting("ngrokauto").ToString() == "On") checkBox_ngrokAuto.Checked = true; else checkBox_ngrokAuto.Checked = false; @@ -193,6 +182,16 @@ namespace net.nutcore.aliddns if (cfg.GetAppSetting("ngrokexists").ToString() == "On") checkBox_ngrokExists.Checked = true; else checkBox_ngrokExists.Checked = false; + if (cfg.isKeyExists("upgradeUrl")) + { + textBox_upgradeUrl.Text = cfg.GetAppSetting("upgradeUrl").ToString(); + } + else + { + cfg.SetAppSetting("upgradeUrl", "https://dev.51zyy.cn/aliddns/updater.xml"); + textBox_upgradeUrl.Text = cfg.GetAppSetting("upgradeUrl").ToString(); + } + textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "设置文件读取成功!" + "\r\n"); return true; } @@ -246,7 +245,6 @@ namespace net.nutcore.aliddns textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "请检查配置文件查询网址设置!" + "\r\n"); return "0.0.0.0"; } - //return "0.0.0.0"; } catch (Exception error) { @@ -290,7 +288,7 @@ namespace net.nutcore.aliddns i++; textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "阿里云DNS服务返回RecordId:" + i.ToString() + " RecordId:" + record.RecordId + "\r\n"); textBox_recordId.Text = record.RecordId; - cfg.SaveAppSetting("RecordID", record.RecordId.ToString()); + cfg.SetAppSetting("RecordID", record.RecordId.ToString()); label_globalRR.Text = record.RR; label_globalDomainType.Text = record.Type; label_globalValue.Text = label_domainIP.Text = record.Value; @@ -342,7 +340,7 @@ namespace net.nutcore.aliddns textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "配置文件域名记录:" + textBox_recordId.Text.ToString() + " 对应域名为:" + textBox_fullDomainName.Text.ToString() + "\r\n"); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "配置文件设置错误!可能原因是修改域名记录后未及时添加,已经自动修改配置文件与服务器记录一致!" + "\r\n"); textBox_fullDomainName.Text = fullDomain; - cfg.SaveAppSetting("fullDomainName", fullDomain); + cfg.SetAppSetting("fullDomainName", fullDomain); } textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "域名:" + response.RR + "." + response.DomainName + " 已经绑定IP:" + response.Value + "\r\n"); textBox_recordId.Text = response.RecordId; @@ -463,7 +461,7 @@ namespace net.nutcore.aliddns { textBox_log.AppendText(System.DateTime.Now.ToString() + " " + " 域名:" + textBox_fullDomainName.Text + "添加成功!" + "服务器返回RecordId:" + response.RecordId + "\r\n"); textBox_recordId.Text = response.RecordId.ToString(); - cfg.SaveAppSetting("RecordID", response.RecordId.ToString()); + cfg.SetAppSetting("RecordID", response.RecordId.ToString()); label_globalDomainType.Text = request.Type; label_globalRR.Text = request.RR; label_globalValue.Text = label_domainIP.Text = request.Value; @@ -643,7 +641,7 @@ namespace net.nutcore.aliddns Microsoft.Win32.RegistryKey Rkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"); Rkey.SetValue("AliDDNS Tray", thisExecutablePath); Rkey.Close(); - cfg.SaveAppSetting("autoBoot", "On"); + cfg.SetAppSetting("autoBoot", "On"); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "随系统启动自动运行设置成功!" + "\r\n"); } else @@ -651,7 +649,7 @@ namespace net.nutcore.aliddns Microsoft.Win32.RegistryKey Rkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); Rkey.DeleteValue("AliDDNS Tray"); Rkey.Close(); - cfg.SaveAppSetting("autoBoot", "Off"); + cfg.SetAppSetting("autoBoot", "Off"); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "随系统启动自动运行取消!" + "\r\n"); } } @@ -665,12 +663,12 @@ namespace net.nutcore.aliddns { if (checkBox_logAutoSave.Checked == true) { - cfg.SaveAppSetting("logautosave", "On"); + cfg.SetAppSetting("logautosave", "On"); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "日志自动转储启用成功!日志超过1万行将自动转储。" + "\r\n"); } else { - cfg.SaveAppSetting("logautosave", "Off"); + cfg.SetAppSetting("logautosave", "Off"); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "日志自动转储取消!" + "\r\n"); } } @@ -711,12 +709,12 @@ namespace net.nutcore.aliddns { if(checkBox_autoUpdate.Checked == true) { - cfg.SaveAppSetting("autoUpdate", "On"); + cfg.SetAppSetting("autoUpdate", "On"); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "域名记录自动更新启用成功!" + "\r\n"); } else { - cfg.SaveAppSetting("autoUpdate", "Off"); + cfg.SetAppSetting("autoUpdate", "Off"); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "域名记录自动更新取消!" + "\r\n"); } } @@ -725,12 +723,12 @@ namespace net.nutcore.aliddns { if (checkBox_minimized.Checked == true) { - cfg.SaveAppSetting("minimized", "On"); + cfg.SetAppSetting("minimized", "On"); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "软件启动时驻留到系统托盘启用!" + "\r\n"); } else { - cfg.SaveAppSetting("minimized", "Off"); + cfg.SetAppSetting("minimized", "Off"); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "软件启动时驻留到系统托盘取消!" + "\r\n"); } } @@ -786,15 +784,18 @@ namespace net.nutcore.aliddns /// 从github.com仓库检查软件最新release版本信息,返回版本号 /// /// - public static string verCheckUpdate() + public string[] getRemoteVer(string strUrl) { - try + if (strUrl == null) { - string strUrl = "https://github.com/wisdomwei201804/AliDDNS/releases/latest"; - if (strUrl.StartsWith("https")) - { - ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; // SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls1.2 | SecurityProtocolType.Tls12; - } + strUrl = "https://github.com/wisdomwei201804/AliDDNS/releases/latest"; + } + if (strUrl.StartsWith("https")) + { + ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; // SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls1.2 | SecurityProtocolType.Tls12; + } + try + { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUrl); request.Method = "GET"; request.Accept = "application/json"; @@ -805,36 +806,31 @@ namespace net.nutcore.aliddns sr.Dispose(); if (response.StatusCode.ToString() == "OK" ) { - //MessageBox.Show(response.StatusCode.ToString()); - //MessageBox.Show(Regex.Match(result, @"""tag_name"":""([^""]*)""").Groups[1].Value); - return Regex.Match(result, @"""tag_name"":""([^""]*)""").Groups[1].Value; + string remoteVer = Regex.Match(result, @"""tag_name"":""([^""]*)""").Groups[1].Value; + return new string[] { "OK", remoteVer }; } else { - return null; + return new string[] { "NULL", null }; } } catch (Exception error) { - MessageBox.Show(error.ToString()); - return null; + return new string[] { "-1", error.Message.ToString() }; } } - private void ToolStripMenuItem_checkUPdate_Click(object sender, EventArgs e) + private void ToolStripMenuItem_checkUpgrade_Click(object sender, EventArgs e) { - string strVer = verCheckUpdate(); - if (strVer != null) - { - Version remoteVer = new Version(strVer); - Version localVer = new Version(System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()); - if (remoteVer > localVer) - MessageBox.Show("发现新版本: " + remoteVer); - else - MessageBox.Show("没有新版本,无需升级!"); - } + textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "正在检测升级! " + "\r\n"); + simpleUpgrade(textBox_upgradeUrl.Text); + + Version remoteVer = new Version(label_latestVer.Text); + Version localVer = new Version(label_currentVer.Text); + if (remoteVer > localVer) + MessageBox.Show("发现新版本: " + remoteVer); else - MessageBox.Show("获取新版本信息失败!"); + MessageBox.Show("没有新版本,无需升级!"); } private void checkBox_ngrokAuto_CheckedChanged(object sender, EventArgs e) @@ -842,7 +838,7 @@ namespace net.nutcore.aliddns if (checkBox_ngrokAuto.Checked == true) { - cfg.SaveAppSetting("ngrokauto", "On"); + cfg.SetAppSetting("ngrokauto", "On"); //检测ngrok.exe是否存在 if (ngrok.IsExists()) { @@ -856,7 +852,7 @@ namespace net.nutcore.aliddns } else { - cfg.SaveAppSetting("ngrokauto", "Off"); + cfg.SetAppSetting("ngrokauto", "Off"); ngrok.Stop(); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "Ngrok功能关闭,再次启动将不会加载!" + "\r\n"); } @@ -866,7 +862,7 @@ namespace net.nutcore.aliddns { if (checkBox_ngrokExists.Checked == true) { - cfg.SaveAppSetting("ngrokexists", "On"); + cfg.SetAppSetting("ngrokexists", "On"); //检测ngrok.exe是否存在 if (ngrok.IsExists()) { @@ -879,7 +875,7 @@ namespace net.nutcore.aliddns } else { - cfg.SaveAppSetting("ngrokexists", "Off"); + cfg.SetAppSetting("ngrokexists", "Off"); ngrok.Stop(); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "启动时不再检测ngrok.exe是否存在。" + "\r\n"); } @@ -901,31 +897,31 @@ namespace net.nutcore.aliddns private void fullDomainName_Leave(object sender, EventArgs e) { - cfg.SaveAppSetting("fullDomainName", this.textBox_fullDomainName.Text.ToString()); + cfg.SetAppSetting("fullDomainName", this.textBox_fullDomainName.Text.ToString()); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "域名已经保存,点击测试连接将查询域名是否存在,当不存在时点击添加域名会创建新域名记录!" + "\r\n"); } private void accessKeyId_Leave(object sender, EventArgs e) { - cfg.SaveAppSetting("AccessKeyID", EncryptHelper.AESEncrypt(this.textBox_accessKeyId.Text.ToString())); + cfg.SetAppSetting("AccessKeyID", EncryptHelper.AESEncrypt(this.textBox_accessKeyId.Text.ToString())); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "accessKeyId已经保存,请完成设置录入后点击测试连接!" + "\r\n"); } private void accessKeySecret_Leave(object sender, EventArgs e) { - cfg.SaveAppSetting("AccessKeySecret", EncryptHelper.AESEncrypt(this.textBox_accessKeySecret.Text.ToString())); + cfg.SetAppSetting("AccessKeySecret", EncryptHelper.AESEncrypt(this.textBox_accessKeySecret.Text.ToString())); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "accessKeySecret已经保存,请完成设置录入后点击测试连接!" + "\r\n"); } private void textBox_TTL_Leave(object sender, EventArgs e) { - cfg.SaveAppSetting("TTL",this.textBox_TTL.Text.ToString()); + cfg.SetAppSetting("TTL",this.textBox_TTL.Text.ToString()); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "TTL设置修改保存成功!" + "\r\n"); } private void newSeconds_Leave(object sender, EventArgs e) { - cfg.SaveAppSetting("WaitingTime", this.textBox_newSeconds.Text.ToString()); + cfg.SetAppSetting("WaitingTime", this.textBox_newSeconds.Text.ToString()); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "自动更新倒计时设置修改保存成功!" + "\r\n"); } @@ -961,16 +957,16 @@ namespace net.nutcore.aliddns System.Diagnostics.Process.Start("explorer.exe", "https://github.com/wisdomwei201804/AliDDNS/"); } - private void checkBox_autoCheckUpdate_CheckedChanged(object sender, EventArgs e) + private void checkBox_autoUpgrade_CheckedChanged(object sender, EventArgs e) { - if (checkBox_autoCheckUpdate.Checked == true) + if (checkBox_autoUpgrade.Checked == true) { - cfg.SaveAppSetting("autoCheckUpdate", "On"); + cfg.SetAppSetting("autoUpgrade", "On"); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "软件自动检测升级启用!" + "\r\n"); } else { - cfg.SaveAppSetting("autoCheckUpdate", "Off"); + cfg.SetAppSetting("autoUpgrade", "Off"); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "软件自动检测升级关闭!" + "\r\n"); } } @@ -1160,5 +1156,74 @@ namespace net.nutcore.aliddns ngrok.Stop(); } } + + private void button_upgradeTest_Click(object sender, EventArgs e) + { + textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "正在检测升级! " + "\r\n"); + simpleUpgrade(textBox_upgradeUrl.Text); + } + + private void textBox_upgradeUrl_Leave(object sender, EventArgs e) + { + cfg.SetAppSetting("upgradeUrl", this.textBox_upgradeUrl.Text.ToString()); + textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "升级地址修改成功!" + "\r\n"); + } + + private void simpleUpgrade(object str) + { + // 当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它 + if (textBox_log.InvokeRequired) + { + string[] remoteVer = this.getRemoteVer(str.ToString()); + if(remoteVer[0].ToString() == "OK") + { + Action changeVer = delegate (string txt) + { + this.label_latestVer.Text = txt.ToString(); + }; + this.Invoke(changeVer, remoteVer[1].ToString()); + + Action appendText = delegate (string txt) + { + this.textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "获取远程版本信息成功,远程版本: " + txt.ToString() + "\r\n"); + }; + this.Invoke(appendText, remoteVer[1].ToString()); + } + else if(remoteVer[0].ToString() == "NULL") + { + Action appendText = delegate (string txt) + { + this.textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "未发现新版本" + "\r\n"); + }; + this.Invoke(appendText, null); + } + else + { + Action appendText = delegate (string txt) + { + this.textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "获取远程版本信息出错:"+ txt.ToString() + "\r\n"); + }; + this.Invoke(appendText, remoteVer[1].ToString()); + } + + } + else + { + string[] remoteVer = this.getRemoteVer(str.ToString()); + if (remoteVer[0].ToString() == "OK") + { + this.label_latestVer.Text = remoteVer[1].ToString(); + this.textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "获取远程版本信息成功,远程版本: " + remoteVer[1].ToString() + "\r\n"); + } + else if (remoteVer[0].ToString() == "NULL") + { + this.textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "未发现新版本" + "\r\n"); + } + else + { + this.textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "获取远程版本信息出错:" + remoteVer[1].ToString() + "\r\n"); + } + } + } } } diff --git a/net.nutcore.aliddns/net.nutcore.aliddns/Form_tunnelEdit.Designer.cs b/net.nutcore.aliddns/net.nutcore.aliddns/Form_tunnelEdit.Designer.cs index e1ce573..414dfe6 100644 --- a/net.nutcore.aliddns/net.nutcore.aliddns/Form_tunnelEdit.Designer.cs +++ b/net.nutcore.aliddns/net.nutcore.aliddns/Form_tunnelEdit.Designer.cs @@ -62,7 +62,7 @@ this.label1.Location = new System.Drawing.Point(6, 17); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(65, 12); - this.label1.TabIndex = 1; + this.label1.TabIndex = 5; this.label1.Text = "英文标识:"; // // label2 @@ -71,7 +71,7 @@ this.label2.Location = new System.Drawing.Point(6, 44); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(65, 12); - this.label2.TabIndex = 2; + this.label2.TabIndex = 6; this.label2.Text = "网络协议:"; // // label3 @@ -80,7 +80,7 @@ this.label3.Location = new System.Drawing.Point(6, 97); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(65, 12); - this.label3.TabIndex = 3; + this.label3.TabIndex = 8; this.label3.Text = "本地端口:"; // // label4 @@ -89,7 +89,7 @@ this.label4.Location = new System.Drawing.Point(6, 124); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(77, 12); - this.label4.TabIndex = 4; + this.label4.TabIndex = 9; this.label4.Text = "服务器端口:"; // // label5 @@ -98,7 +98,7 @@ this.label5.Location = new System.Drawing.Point(6, 70); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(41, 12); - this.label5.TabIndex = 5; + this.label5.TabIndex = 7; this.label5.Text = "域名:"; // // textBox_localPort @@ -107,7 +107,7 @@ this.textBox_localPort.MaxLength = 5; this.textBox_localPort.Name = "textBox_localPort"; this.textBox_localPort.Size = new System.Drawing.Size(87, 21); - this.textBox_localPort.TabIndex = 6; + this.textBox_localPort.TabIndex = 3; // // comboBox_proto // @@ -120,7 +120,7 @@ this.comboBox_proto.Location = new System.Drawing.Point(77, 41); this.comboBox_proto.Name = "comboBox_proto"; this.comboBox_proto.Size = new System.Drawing.Size(87, 20); - this.comboBox_proto.TabIndex = 7; + this.comboBox_proto.TabIndex = 1; this.comboBox_proto.TextChanged += new System.EventHandler(this.comboBox_proto_TextChanged); // // textBox_serverPort @@ -129,7 +129,7 @@ this.textBox_serverPort.MaxLength = 5; this.textBox_serverPort.Name = "textBox_serverPort"; this.textBox_serverPort.Size = new System.Drawing.Size(87, 21); - this.textBox_serverPort.TabIndex = 8; + this.textBox_serverPort.TabIndex = 4; // // textBox_subdomain // @@ -137,7 +137,7 @@ this.textBox_subdomain.MaxLength = 10; this.textBox_subdomain.Name = "textBox_subdomain"; this.textBox_subdomain.Size = new System.Drawing.Size(87, 21); - this.textBox_subdomain.TabIndex = 9; + this.textBox_subdomain.TabIndex = 2; // // label6 // @@ -194,7 +194,7 @@ this.groupBox_tunnel.Location = new System.Drawing.Point(5, 7); this.groupBox_tunnel.Name = "groupBox_tunnel"; this.groupBox_tunnel.Size = new System.Drawing.Size(244, 149); - this.groupBox_tunnel.TabIndex = 14; + this.groupBox_tunnel.TabIndex = 0; this.groupBox_tunnel.TabStop = false; this.groupBox_tunnel.Text = "Tunnel"; // @@ -203,7 +203,7 @@ this.button_confirm.Location = new System.Drawing.Point(139, 162); this.button_confirm.Name = "button_confirm"; this.button_confirm.Size = new System.Drawing.Size(58, 25); - this.button_confirm.TabIndex = 15; + this.button_confirm.TabIndex = 0; this.button_confirm.Text = "确定"; this.button_confirm.UseVisualStyleBackColor = true; this.button_confirm.Click += new System.EventHandler(this.button_confirm_Click); @@ -213,7 +213,7 @@ this.button_cancel.Location = new System.Drawing.Point(57, 162); this.button_cancel.Name = "button_cancel"; this.button_cancel.Size = new System.Drawing.Size(59, 25); - this.button_cancel.TabIndex = 16; + this.button_cancel.TabIndex = 1; this.button_cancel.Text = "取消"; this.button_cancel.UseVisualStyleBackColor = true; this.button_cancel.Click += new System.EventHandler(this.button_cancel_Click); diff --git a/net.nutcore.aliddns/net.nutcore.aliddns/aliyun-net-sdk-Core.dll b/net.nutcore.aliddns/net.nutcore.aliddns/aliyun-net-sdk-Core.dll new file mode 100644 index 0000000000000000000000000000000000000000..3fb3a0cee6a37fbc76300f48303fd624ca28d236 GIT binary patch literal 84480 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 VCGbH^oj{#GqhkN&-~V?K_False .\aliyun-net-sdk-Core.dll - - ..\packages\Newtonsoft.Json.11.0.2\lib\net40\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll True @@ -82,8 +82,8 @@ - - ..\packages\YamlDotNet.5.0.1\lib\net35\YamlDotNet.dll + + ..\packages\YamlDotNet.7.0.0\lib\net35\YamlDotNet.dll True diff --git a/net.nutcore.aliddns/net.nutcore.aliddns/packages.config b/net.nutcore.aliddns/net.nutcore.aliddns/packages.config index 512c716..4f5d8bd 100644 --- a/net.nutcore.aliddns/net.nutcore.aliddns/packages.config +++ b/net.nutcore.aliddns/net.nutcore.aliddns/packages.config @@ -1,5 +1,5 @@  - - + + \ No newline at end of file