前言
发表上一篇文章《用了这个,我追到了自己的女神:升级版-Mac版微信全自动发送情话插件》 说过,感觉微信的流程有点复杂,想优化下,最终我把这个功能融合到了MustangYM大神的WeChatExtension-ForMac微信小助手里边,很多方法都已经被大神封装好了直接用。站在大神肩膀上开发真的太香了。
最终效果图:
看过前一篇文章的,实现步骤应该有了解,这次我们先说教程,再说过程。
使用教程
1. 下载hook工程并解压
直接下载hook工程后的工程:下载地址:https://github.com/FORMAT-qi/hookWeChat-Mac,下载后解压里边的WeChatExtension-ForMac-master.zip。
2. 修改微信号
到WeChat+hook.m文件中,修改微信号
3.安装插件
打开终端,执行项目中Rely里面Install.sh文件
执行完,重启微信, 即安装完成。
4.开启功能
开启功能后重启微信生效
5. 可选方式
搭配自动开关机和开机自启微信,使用效果更佳。
系统偏好设置->节能->定时…
系统偏好设置->用户与群组->登录项
最终效果:每天9点自动唤醒电脑->自动启动微信->自动登录微信->自动发送情话
注意事项
注意:
项目配了一个默认的情话文本,是我人工筛选出来的100条情话,一天一条也够用100天了,100天如果你没被拉黑,恭喜你,有戏,可以多跟女神恰饭等等增进感情。如果被拉黑了,也恭喜你,你又拥有了广茂的的森林。
更换情话文本的方法:
更换项目中的qinghua.txt,然后重新执行上边第4步就可以了
效果图:
实现过程
想学习一下逆向注入过程的朋友,可以看我上一篇文章的后半篇,链接:《用了这个,我追到了自己的女神:升级版-Mac版微信全自动发送情话插件》
1.增加情话按钮
在TKAssistantMenuManager.m文件中
新建界面按钮
添加按钮事件:
/**
菜单栏-微信小助手-每日情话
@param item 每日情话 item
*/
-(void)onSendLoveWordEveryDay:(NSMenuItem *)item{
item.state = !item.state;
[[TKWeChatPluginConfig sharedConfig] setIsSendLoveWord:item.state];
}
2.添加公共属性
TKWeChatPluginConfig.h 新增属性记录按钮状态
@property (nonatomic) BOOL isSendLoveWord; /**< 是否发送每日情话 */
3.发送情话
在WeChat+hook.m文件中新增发送消息方法
/**
授权检测
*/
- (void)getAuthState{
if(![[TKWeChatPluginConfig sharedConfig]isSendLoveWord]) {
return;
}
WeChat *wechat = [objc_getClass("WeChat") sharedInstance];
if ([wechat IsAuthOK]) {
NSLog(@"授权成功");
[self sendLoveWord];
}else{
NSLog(@"授权失败");
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
dispatch_async(dispatch_get_main_queue(), ^{
[self getAuthState];
});
});
}
}
/**
发送情话
*/
-(void)sendLoveWord
{
NSError *error;
// 文件路径
NSString* filePath = @"/Applications/WeChat.app/Contents/MacOS/WeChatExtension.framework/Resources/qinghua.txt";
NSString *str = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
if (str.length == 0 || [str isEqualToString:@"\n"] ||[str isEqualToString:@""]) {
NSAlert *alert = [[NSAlert alloc] init];
alert.alertStyle = NSAlertStyleWarning;
[alert addButtonWithTitle:@"确定"];
alert.messageText = @"提示";
alert.informativeText = @"情话已用完,请补充,更新包里的qinghua.txt文件";
[alert beginSheetModalForWindow:[NSApplication sharedApplication].keyWindow completionHandler:nil];
}else{
NSArray *strArr = [str componentsSeparatedByString:@"!@#$%"];
//获取第一句
NSString* firstStr = [strArr firstObject];
//更新txt文件
NSMutableArray * endArr = [[NSMutableArray alloc]initWithArray:strArr];
[endArr removeObjectAtIndex:0];
NSString *endText = [endArr componentsJoinedByString:@"!@#$%"];
NSData *strData = [endText dataUsingEncoding:NSUTF8StringEncoding];
NSString *tmpStr = [[NSString alloc] initWithData:strData encoding: NSUTF8StringEncoding];
BOOL resultFlag = [tmpStr writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (!resultFlag) {
NSLog(@"更新失败");
}
//发送消息
[[YMMessageManager shareManager] sendTextMessage:firstStr toUsrName:@"mumuqi913" delay:2.0];
// 发送多人
// [[YMMessageManager shareManager] sendTextMessage:firstStr toUsrName:@"2号女神的微信号" delay:1.0];
// [[YMMessageManager shareManager] sendTextMessage:firstStr toUsrName:@"3号女神的微信号" delay:1.0];
}
}
在登录按钮事件里开启授权检测
就ojbk完事了。
结束语
本文发送的是情话,主要是描述怎么实现自动发送功能。有想法的可以发送别的消息,比如天气、穿衣指南、笑话、等等。发挥你的想象,女神什么的都会有的。
如果感觉本篇文章有点意思,请点赞,关注,收藏,来一波。您的三连击是对我最好的支持,后续我也会持续更新其它好玩的内容。
如有问题,可留言解决。