这个软件也是客户定制的,然后调用的是精易论坛的一个VIP模块,一个月收费10块钱,但是功能很强大,它可以直接调用你电脑上安装的谷歌浏览器,然后在浏览器里面直接执行数据功能,比如数据包截取,COOKIE的导入导出,还有JS网页端直接,填表操作等功能,所以用这个模块开发了一个抖音私信的功能,可以直接访问用户主页ID,对下面是视频点赞或者评论私信都可以,当然这个源码你还可以用于其他的平台比如小红书快手都可以的。
UI界面:
代码:DLL部分
============================================
.版本 2
.支持库 eAPI
.DLL命令 CreateThread, 整数型, "Kernel32.dll", "CreateThread", 公开, 创建一个新的线程,创建完毕会立即返回。成功则返回新线程的句柄,零表示失败
.参数 lpThreadAttributes, 整数型, , 指向一个SECURITY_ATTRIBUTES结构,主要用来指定句柄是否可以被继承,如果让线程使用默认的安全属性,可以将此值设为 NULL
.参数 dwStackSize, 整数型, , 线程堆栈大小,如果为0,那么线程的堆栈大小和主线程使用的大小相同
.参数 lpStartAddress, 整数型, , 线程的开始执行地址,指向一个新线程函数(过程)的指针
.参数 lpParameter, 整数型, , 传递给自定义参数,传递给子线程的参数,0为无限止
.参数 dwCreationFlags, 整数型, , 设置线程被创建后的状态,如果为0表示,创建后立即运行,如果为CREATE_SUSPENDED标志,表示线程被创建后处于挂志状态,直到使用ResumeThread函数显式地启动线程为止
.参数 lpThreadId, 整数型, 传址, 指向一个双字节变量,用来接收函数返回的线程ID.线程ID在系统范围内是唯一的.
.DLL命令 localtime, 整数型, "msvcrt.dll", "@localtime"
.参数 time, 长整数型, 传址
.DLL命令 memcpy, 整数型, "msvcrt.dll", "@memcpy"
.参数 _Dst, 整数型
.参数 _Src, 整数型
.参数 _Size, 整数型
.DLL命令 PostMessageA, , "user32.dll", "PostMessageA", 公开, 投递消息
.参数 hwnd, 整数型
.参数 消息号, 整数型
.参数 消息参数1, 整数型
.参数 消息参数2, 整数型
.DLL命令 GetDlgCtrlID, 整数型, "user32.dll", "GetDlgCtrlID", 公开
.参数 hwnd, 整数型
.DLL命令 GetWindowRect, 逻辑型, "user32", "GetWindowRect"
.参数 hWnd, 整数型, , 0
.参数 lpRect, 矩形数据, , 0
.DLL命令 GetClientRect, 逻辑型, "user32", "GetClientRect"
.参数 hWnd, 整数型, , 0
.参数 lpRect, 矩形数据, , 0
.DLL命令 GetSystemMetrics, 整数型, "user32", "GetSystemMetrics"
.参数 nIndex, 整数型, , 0
.DLL命令 SendMessageA, 整数型, "user32.dll", "SendMessageA", , 将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。
.参数 hWnd, 整数型, , 其窗口程序将接收消息的窗口的句柄。
.参数 Msg, 整数型, , 指定被发送的消息。
.参数 wParam, 整数型, , 指定附加的消息特定信息。
.参数 lParam, 整数型, , 指定附加的消息特定信息。
====================================================
程序集代码:
==================================================
.版本 2
.支持库 ietb
.支持库 spec
.支持库 iext
.支持库 eAPI
.程序集 窗口程序集_启动窗口
.程序集变量 页面, 谷歌页面
.程序集变量 ccookiesA, 文本型, , "0"
.子程序 _按钮1_被单击
.局部变量 是否成功, 逻辑型
.局部变量 谷歌浏览器路径, 文本型
.局部变量 arg, 谷歌启动参数
' 谷歌浏览器都必须初始化, 初始化1() 是简化版的初始化
谷歌浏览器路径 = “C:\Program Files\Google\Chrome Dev\Application\chrome.exe” ' 获取失败需要手动指定浏览器路径
' 谷歌浏览器路径 = 谷歌浏览器.取谷歌浏览器路径 () ' 获取失败需要手动指定浏览器路径
arg.添加参数 (“www.douyin.com”, )
' arg.添加参数 (“www.douyin.com”, )
arg.缓存目录 = 取运行目录 () + “\例程缓存目录”
arg.调试端口 = 36125
是否成功 = 谷歌浏览器.初始化 (arg, , , 真, , , , )
.如果真 (是否成功 = 假)
信息框 (格式化文本A (“初始化失败, 错误原因 = %s”, 谷歌浏览器.取最后错误 ()), 0, , )
返回 ()
.如果真结束
输出调试文本 (“浏览器初始化成功”)
' 谷歌浏览器.置回调函数 (&连接回调, )
' 按钮_取页面.禁止 = 假
' 按钮_取页面.禁止 = 假
按钮1.禁止 = 真
.子程序 _按钮2_被单击
.局部变量 页面数量, 整数型
.局部变量 cookies, 文本型
.局部变量 页面ID, 整数型, , "0"
.局部变量 i, 整数型
.局部变量 返回数据, 文本型
.局部变量 分割账号ID, 文本型, , "0"
.局部变量 返回的ck, 文本型
页面数量 = 谷歌浏览器.取标签数量 (页面ID)
调试输出 (页面数量)
.计次循环首 (页面数量, i)
页面 = 谷歌浏览器.取页面 (i, )
调试输出 (页面.取标题 ())
返回数据 = 页面.取标题 ()
返回的ck = 页面.获取Cookies (, 真)
.判断开始 (寻找文本 (返回数据, “音”, , 假) > 0)
加入成员 (ccookiesA, 返回的ck)
编辑框3.加入文本 (到文本 (i) + “@”)
.默认
.判断结束
.计次循环尾 ()
' 调试输出 (页面ID)
' 如果真 (页面数量 = 0)
' 信息框 (格式化文本A (“获取页面失败, 失败原因 = %s”, 谷歌浏览器.取最后错误 ()), 0, , )
' 返回 ()
' 页面 = 谷歌浏览器.取页面 (1, )
' 调试输出 (页面)
' 页面.附加 (页面ID [1], 真)
' ccookiesA = 页面.获取Cookies (, 真)
' 编辑框1.内容 = ccookiesA
' 页面 = 谷歌浏览器.取页面 (2, )
' 页面.附加 (页面ID [2], 真)
' ccookiesB = 页面.获取Cookies (, 真)
' 编辑框2.内容 = ccookiesB
' 调试输出 (ccookiesA)
.子程序 连接回调, 整数型, , 此回调不是在初始化线程调用, 请注意线程安全
.参数 页面ID, 整数型
.参数 事件类型, 整数型
.参数 附加参数1, 整数型
.参数 附加参数2, 整数型
.如果真 (事件类型 < 256)
返回 (0)
.如果真结束
.判断开始 (事件类型 = #谷歌事件.页面_框架停止加载)
' PostMessageA (取窗口句柄 (), #WM_COMMAND, GetDlgCtrlID (按钮_获取cookie.取窗口句柄 ()), 按钮_获取cookie.取窗口句柄 ()) ' 投递消息是为了在主线程中执行
' _按钮1_被单击 () ' 如果直接调用, 那按钮1被单击的代码就会在这个事件的线程内执行
.默认
.判断结束
返回 (0)
.子程序 _按钮3_被单击
页面 = 谷歌浏览器.取页面 (1, )
页面.添加Cookies (ccookiesA [到整数 (编辑框4.内容)], 真)
.子程序 _按钮7_被单击
.局部变量 分割账号, 文本型, , "0"
分割账号 = 分割文本 (编辑框3.内容, “@”, )
编辑框1.内容 = ccookiesA [到整数 (分割账号 [1])]
' 编辑框2.内容 = ccookiesA [到整数 (分割账号 [2])]
编辑框4.内容 = 分割账号 [1]
' 编辑框5.内容 = 分割账号 [2]
.子程序 _按钮8_被单击
.局部变量 返回数据, 文本型
.局部变量 返回的ck, 文本型
.局部变量 文件号, 整数型
页面 = 谷歌浏览器.取页面 (1, )
调试输出 (页面.取标题 ())
返回数据 = 页面.取标题 ()
文件号 = 打开文件 (取运行目录 () + “/账号cookie.txt”, #写出, )
返回的ck = 页面.获取Cookies (, 真)
.判断开始 (寻找文本 (返回数据, “抖音”, , 假) > 0)
加入成员 (ccookiesA, 返回的ck)
信息框 (“coolie加入成功”, 0, , )
移到文件尾 (文件号)
写出文本 (文件号, 返回的ck + “----------”)
关闭文件 (文件号)
调试输出 (ccookiesA)
标签2.标题 = 到文本 (取数组成员数 (ccookiesA))
id = id + 1
调试输出 (id)
超级列表框1.插入表项 (id - 1, “”, , , , )
超级列表框1.置标题 (id - 1, 0, 到文本 (id))
超级列表框1.置标题 (id - 1, 1, 返回的ck)
.默认
.判断结束
.子程序 _按钮5_被单击
页面 = 谷歌浏览器.取页面 (1, )
页面.清除Cookie ()
.子程序 _按钮4_被单击
.局部变量 数量, 整数型
.局部变量 a, 整数型
.局部变量 发送id, 文本型, , "0"
.局部变量 登录情况, 逻辑型
.局部变量 z, 整数型
.局部变量 cookieAAA, 文本型
.局部变量 记录id, 整数型
.局部变量 分组ck, 文本型, , "0"
.局部变量 当前ck, 文本型
_启动窗口.位置 = 2
发送id = 分割文本 (编辑框5.内容, #换行符, )
页面 = 谷歌浏览器.取页面 (1, )
' 登录情况 = 页面.添加Cookies (ccookiesA [到整数 (编辑框4.内容)], 真)
记录id = 1
cookieAAA = 到文本 (读入文件 (取运行目录 () + “/账号cookie.txt”))
调试输出 (cookieAAA)
分组ck = 分割文本 (cookieAAA, “----------”, )
_启动窗口.标题 = “登录成功”
.计次循环首 (取数组成员数 (分组ck), a)
调试输出 (取数组成员数 (分组ck))
当前ck = 分组ck [a]
页面 = 谷歌浏览器.取页面 (1, )
登录情况 = 页面.添加Cookies (当前ck, 真)
.判断开始 (登录情况 = 真)
_启动窗口.标题 = “登录成功了”
延迟 (1000)
.计次循环首 (取数组成员数 (发送id) ÷ 取数组成员数 (分组ck), z)
记录id = 记录id + 1
标签6.标题 = 到文本 (记录id)
页面.浏览网页 (“https://www.douyin.com/user/” + 发送id [记录id], 真)
延迟 (3000)
_按钮6_被单击 ()
延迟 (2000)
.计次循环尾 ()
.默认
.判断结束
.计次循环尾 ()
.子程序 _按钮6_被单击
.局部变量 搜索框, 网页元素
.局部变量 按钮, 网页元素, , "0"
.局部变量 a, 整数型
.局部变量 源码, 文本型
.局部变量 v, 整数型
.局部变量 私信源码, 网页元素, , "0"
.局部变量 g, 整数型
.局部变量 源码B, 文本型
.局部变量 话术, 文本型, , "0"
话术 = 分割文本 (编辑框2.内容, #换行符, )
.判断开始 (单选框2.选中 = 真)
.计次循环首 (10, g)
模拟鼠标点击 (1081, 261, ) ' 点击私信
延迟 (500)
.计次循环尾 ()
延迟 (2000)
' 模拟鼠标点击 (757, 212, )'点击第一条
延迟 (1000)
模拟鼠标点击 (903, 629, )
延迟 (1000)
置剪辑板文本 (话术 [取随机数 (1, 取数组成员数 (话术))])
模拟按键 (#Ctrl键, #V键, )
延迟 (1000)
模拟按键 (#回车键, , )
.判断 (单选框1.选中 = 真)
延迟 (3000)
延迟 (3000)
模拟鼠标点击 (1062, 261, )
模拟鼠标点击 (1062, 261, )
.计次循环首 (10, g)
模拟鼠标点击 (1165, 261, ) ' 点击私信
延迟 (500)
.计次循环尾 ()
延迟 (2000)
' 模拟鼠标点击 (757, 212, )'点击第一条
延迟 (1000)
模拟鼠标点击 (951, 629, )
延迟 (1000)
置剪辑板文本 (话术 [取随机数 (1, 取数组成员数 (话术))])
模拟按键 (#Ctrl键, #V键, )
延迟 (1000)
模拟按键 (#回车键, , )
.默认
.判断结束
' 搜索框 = 页面.元素_取对象 (编辑框3.内容, , ) ' 选择器方式
' 调试输出 (搜索框.取内容 ())
' 调试输出 (搜索框.取网页源码W ())
' 页面.清除Cookie ()
.子程序 _分组框6_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.子程序 __启动窗口_创建完毕
.局部变量 cookieAAA, 文本型
.局部变量 分组ck, 文本型, , "0"
.局部变量 文件奥
.判断开始 (文件是否存在 (取运行目录 () + “/账号cookie.txt”) = 真)
_启动窗口.标题 = “cookie文件存在”
cookieAAA = 到文本 (读入文件 (取运行目录 () + “/账号cookie.txt”))
分组ck = 分割文本 (cookieAAA, “----------”, )
调试输出 (cookieAAA)
标签2.标题 = 到文本 (取数组成员数 (分组ck))
.默认
写到文件 (取运行目录 () + “/账号cookie.txt”, 到字节集 (“”))
.判断结束
.子程序 _分组框1_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
id = 0
.子程序 _按钮9_被单击
.局部变量 cookie, 文本型
页面 = 谷歌浏览器.取页面 (1, )
cookie = 编辑框1.内容
页面.添加Cookies (cookie, 真)
=====================================================
标签:精易,浏览器,局部变量,整数型,VIP,抖音,参数,文本,页面 From: https://www.cnblogs.com/xkrj5/p/17840783.html