From 494cbea029f4241c7df518f7af6e7fd9bb5998ea Mon Sep 17 00:00:00 2001 From: Sunnyyoung Date: Mon, 3 Apr 2017 02:01:43 +0800 Subject: [PATCH] Add tweak for prevent logout --- README-Chinese.md | 1 + README.md | 1 + WeChatTweak.dylib | Bin 14240 -> 14408 bytes WeChatTweak.m | 28 ++++++++++++++++++++++++---- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/README-Chinese.md b/README-Chinese.md index 50e0691..2fb33b7 100644 --- a/README-Chinese.md +++ b/README-Chinese.md @@ -17,6 +17,7 @@ - 客户端无限多开 - 右键 Dock Icon 登录新的微信账号 - 命令行执行:`open -n /Applications/WeChat.app` +- 阻止退出登录(重新打开应用无需手机认证) ## 使用 diff --git a/README.md b/README.md index e672732..bb18e3f 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ A dynamic library tweak for WeChat macOS. - Multiple WeChat Instance - Right click on the Dock icon to login another WeChat account - Run command: `open -n /Applications/WeChat.app` +- Prevent logout (Auto login without authority) ## Usage diff --git a/WeChatTweak.dylib b/WeChatTweak.dylib index 4ab48278bd125ff946ff37e8752cfcb37f3c615a..09271961a7d37eac48316d4b4b230dab008a1806 100755 GIT binary patch delta 3497 zcma)9eN0=|6@Tv$gH6MS32qFA@R5PqEs0DT1957=s-3<+AfYu>ZMO`FF~Ln@yVOpb zRn%RRX?}e(1Mb$U`=iRXYOUI6VWm;hY)fbo4N^^tvwksE%h(^?-lj@pouZ{xC-0nl z&ts76k6roQbI;fBo_p`PA3hOZNK9rba+MMjtz;uLvS~|) z!+MJtdG0!0Snnt&-!9av4 zx}>wd4IJVxMxQ`j2Q2jUGFocEMO91XjGd^`J=0t^Z#a?F=8YQeQF5JY#}`#Sl|$fv zT0ouk{Sw5P;8o*G&X)LALYp(*29XFY3Zn~%*c>9ZIfS?>AdYf~3&uGC;aY*1F`it3 z0EA+J@E)Y0s*legLKgIy;3@Uk<-vWIM#|~}tkhXk{yVhD`aUj3L(8vh%ABkQ^(Xq?*Vt|s=uWFyD>_%0C5-4EK>PDrxfZbc&nQq7KHO!mTvZ?_DgmgpU z=tpoSfc;dkabo{~Y}QxE9fM28yilv8KF`&Tqp(e3GNzH}B_TekzCLa<4w*0y;{%e~ zvY=|e>DGe_#&^LF);*wI;i;tumsGtU^2T!)0gouG+0~SOnvb<)nkSY`)p{UwoXHfV zV?QDr8%02ixDLRU3icYYc{tr5d>_JS(C=T7*FBGsdP%T+5yANyw=VfDCcYM&Q}t%7 zJXv9_YVR5|VBtRteMkZA9W@K9mUWyjV#_Xv?NzkWeGl7MX^k^IERZ|7uxCcqU@KlU z_HZc&-AW17H(ApmRw0F%q>ist% ze;_4%J-7y18mIjum{TArnDq~#xnShL9cH5$;y2D?Tlbve=JUpBp>pB$X}B8j!4w!T z3bRSRvg30&i04s+2ZD|}-7^j<;|R)*-IU6XO36}Y~Ru4_O^Gm zv`XQYR&2t>4Kq)d{~C%}jSmaB!uXeQvFmkv9(Vl1zPC=+pdS zUu|O=yi5QT_KJzAKSz4Uibga{eU9{azppMi8i069v4Lx@WA0G z4um4HVd+`p3wFXip)3|LcT3ay#m|LZUY@hf4z-lY>D=ARN=})S-R}CFJg3azHpX%i z8l~`={|RP^H?!l9#7}M%_O*~$Xm4)3dx$qTU^nsR;*JY`mt>~ZFUY`5rzPUeG};80 zEp}k0&m#r1$~_%&8r~}W(Th71ZwZVC69}^sGZ3>4_YP%27yjA6O@>*H^8eSrUK-dF z3Plb@!pZp9?y>mcP;v|o{MidT&dG9|eXG?C^&73zh2qp@zP2C>wK+H6b_m~oX|Ucl RSKV!PYY%JoOk1NY{RjQ9D;xj- delta 2566 zcma)8Yitx%6rP!~FJRkl+ijQ9eYCiyK!sgk3MKBNNjHwMl?s+fBB8t$kyfQO5X)8` zNyo{Owik@?hc=)IQB#|2LkJ;KOGCF9U>hY?G}>SY6CttqLop?+=iE7y5EBz`GWVPF z`sUnw&fdG3_JOwEo}xgRz(S`~0PmH>86M5$3^@*6Ix^TWJj7yQ1fwxh!SZu7WtX^u&WABtLNe*%Xc{SgOu4&}(a}K$N ztH$+06k&%H4WEu_McWvF)w#)hALj zDC%v61wED0Hi;>oDyczYdp)tFmwyk-)-j`~KmoDEoKE%;)m%d?BXL#)=2YY^YSqNF zej8;?p21~9@K4ogPVW$D*ED;|S*~SIIWGm0cIf~`g9E#cmspC#|KsU4?vo0G6byHl8As!&n%kzs= z8R=(qn_(^@^CKu5d~_a(zoVFPUcfF=6C;ZDBu=tym=*Pkehob8&jFjzpnk2SplT`i zpoIm>-Hzqxr9}iAiF}(KXg2UjE3!dfkIX<7~^94R*d@eY`=g~YkIdVbl*Ie*2%+Q-DZxg)K zZ^#8Bd2DjwAUj{N)wcibom*eqvX0ez)pU)|EwVPhY~LQPjfd8*5!hM3FCPzkI9B-6 zS;21kpJ#Dt&iXMr*9AJU=Mt6>UL*Syp^x;pNWMq-Ct;ur&aKj9HKqzdCu&))||KV_q2=Lr|d|ORQ1xB7rg+-L`GQv7Sg|L-ypP%1YY{2nlf5`5#dD`vmg`4VMtY6>I3YBxQc&O4M zyzs^uD~p91yuFX$h{hrI#<#R>+p~Sk>u>GeuyfxIp?hkU4TO$MLsk|F2j_Rs8h$x( z#FpL~E)bIg%Vxx^)GLNUfh=zA7ck|+WB&I^lWdmk7m{14alKG&^fw!MCCO$(H"]; NSRange subRange = NSMakeRange(begin.location + begin.length,end.location - begin.location - begin.length); @@ -34,7 +36,7 @@ static void __attribute__((constructor)) tweak(void) { return NO; } -- (NSMenu *)applicationDockMenu:(NSApplication *)sender { +- (NSMenu *)tweak_applicationDockMenu:(NSApplication *)sender { NSMenu *menu = [[objc_getClass("NSMenu") alloc] init]; NSMenuItem *menuItem = [[objc_getClass("NSMenuItem") alloc] initWithTitle:@"登录新的微信账号" action:@selector(openNewWeChatInstace:) keyEquivalent:@""]; [menu insertItem:menuItem atIndex:0]; @@ -49,4 +51,22 @@ static void __attribute__((constructor)) tweak(void) { [task launch]; } +#pragma mark - No Logout + +- (void)tweak_applicationDidFinishLaunching:(NSNotification *)notification { + [self tweak_applicationDidFinishLaunching:notification]; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wobjc-method-access" + id serviceCenter = [objc_getClass("MMServiceCenter") defaultCenter]; + id accountService = [serviceCenter getService:objc_getClass("AccountService")]; + if ([accountService canAutoAuth]) { + [accountService AutoAuth]; + } +#pragma clang diagnostic pop +} + +- (NSApplicationTerminateReply)tweak_applicationShouldTerminate:(NSApplication *)sender { + return NSTerminateNow; +} + @end