.主程序实现微信好友实时监控 2.数据库模块记录历史数据 3.微信接口模块封装Windows API调用。使用时需先配置SQLite支持库。主要的功能就是可以检测别人一共加了多少你微信好友,就是你可以检测一个微信好友被添加的次数。
下载地址:http://m.pan38.com/download.php?code=DQBTWA 访问密码(可选):6666
.版本 2
.程序集 微信计数器
.程序集变量 好友数量, 整数型
.程序集变量 上次数量, 整数型
.程序集变量 监控线程, 整数型
.程序集变量 窗口句柄, 整数型
.程序集变量 数据库连接, 数据库连接类
.程序集变量 配置信息, 配置信息类
.子程序 _启动子程序, 整数型
.局部变量 主窗口, 窗口类
主窗口.创建 (, "微信好友计数器 v1.0", , , 600, 400)
窗口句柄 = 主窗口.取窗口句柄 ()
初始化配置 ()
初始化数据库 ()
创建界面组件 (主窗口)
监控线程 = 线程_启动 (&监控好友变化, , )
返回 (0)
.子程序 初始化配置
配置信息.配置文件路径 = 取运行目录 () + "\config.ini"
.如果真 (文件是否存在 (配置信息.配置文件路径) = 假)
写配置项 (配置信息.配置文件路径, "数据库", "路径", 取运行目录 () + "\data.db")
写配置项 (配置信息.配置文件路径, "监控", "间隔", "5000")
.如果真结束
配置信息.数据库路径 = 读配置项 (配置信息.配置文件路径, "数据库", "路径", )
配置信息.监控间隔 = 到整数 (读配置项 (配置信息.配置文件路径, "监控", "间隔", ))
.子程序 初始化数据库
数据库连接.打开 (配置信息.数据库路径, , , , )
.如果真 (数据库连接.表是否存在 ("好友记录") = 假)
数据库连接.执行SQL ("CREATE TABLE 好友记录(时间 TEXT, 数量 INTEGER, 变化 INTEGER)")
.如果真结束
.子程序 监控好友变化
.判断循环首 (真)
好友数量 = 获取当前好友数 ()
.如果真 (好友数量 ≠ 上次数量)
记录变化 (好友数量 - 上次数量)
上次数量 = 好友数量
发送消息 (窗口句柄, 1001, 好友数量, 0)
.如果真结束
延时 (配置信息.监控间隔)
.判断循环尾 ()
.子程序 获取当前好友数, 整数型
.局部变量 微信窗口, 整数型
.局部变量 联系人列表, 整数型
.局部变量 好友数, 整数型
微信窗口 = 窗口_查找 ("WeChat", "微信")
.如果真 (微信窗口 = 0)
返回 (-1)
.如果真结束
联系人列表 = 窗口_查找子窗口 (微信窗口, "ContactListWnd", "联系人列表")
好友数 = 列表_取项目数 (联系人列表)
返回 (好友数)
.子程序 记录变化, 逻辑型
.局部变量 SQL语句, 文本型
.局部变量 当前时间, 文本型
当前时间 = 到文本 (取现行时间 ())
SQL语句 = "INSERT INTO 好友记录 VALUES('" + 当前时间 + "'," + 到文本 (好友数量) + "," + 到文本 (变化量) + ")"
返回 (数据库连接.执行SQL (SQL语句))
.子程序 创建界面组件
.参数 父窗口, 窗口类
.局部变量 标签1, 标签类
.局部变量 文本框1, 文本框类
.局部变量 按钮1, 按钮类
标签1.创建 (父窗口, "当前好友数量:", 20, 20, 100, 20)
文本框1.创建 (父窗口, "", 130, 20, 100, 20)
按钮1.创建 (父窗口, "导出数据", 20, 60, 100, 30)
按钮1.绑定事件 (&导出数据)
.版本 2
.程序集 数据库连接类
.程序集变量 连接句柄, 整数型
.子程序 打开, 逻辑型
.参数 数据库路径, 文本型
.参数 密码, 文本型, 可空
.局部变量 结果, 整数型
结果 = SQLite_打开 (数据库路径, 连接句柄)
返回 (结果 = 0)
.子程序 关闭
SQLite_关闭 (连接句柄)
.子程序 执行SQL, 逻辑型
.参数 SQL语句, 文本型
返回 (SQLite_执行 (连接句柄, SQL语句) = 0)
.子程序 表是否存在, 逻辑型
.参数 表名, 文本型
.局部变量 SQL语句, 文本型
.局部变量 结果集, 整数型
SQL语句 = "SELECT name FROM sqlite_master WHERE type='table' AND name='" + 表名 + "'"
结果集 = SQLite_查询 (连接句柄, SQL语句)
返回 (SQLite_取记录数 (结果集) > 0)
版本 2
.子程序 窗口_查找, 整数型
.参数 类名, 文本型
.参数 标题, 文本型
返回 (FindWindowA (类名, 标题))
.子程序 窗口_查找子窗口, 整数型
.参数 父窗口, 整数型
.参数 类名, 文本型
.参数 标题, 文本型
返回 (FindWindowExA (父窗口, 0, 类名, 标题))
.子程序 列表_取项目数, 整数型
.参数 列表句柄, 整数型
返回 (SendMessageA (列表句柄, 0x018B, 0, 0)) ; LB_GETCOUNT
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。