跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
编程语言

易语言自动化实战:办公、测试、数据抓取与游戏脚本开发

易语言自动化实战涵盖办公、测试、数据抓取与游戏脚本开发四大场景。通过窗口句柄查找、控件操作、消息发送等原理,结合精易模块与大漠插件实现 GUI 自动化。示例包括批量生成工资条、自动发送邮件、抓取天气与职位信息以及基础游戏挂机脚本。流程覆盖需求分析、技术选型、功能开发、测试优化至打包发布。强调合法合规使用,严禁开发违规外挂。

协议工匠发布于 2026/3/15更新于 2026/4/283 浏览
易语言自动化实战:办公、测试、数据抓取与游戏脚本开发

十一、易语言核心自动化场景实战:办公、测试、数据抓取与基础游戏脚本开发

11.1 引言

自动化是易语言最受欢迎、应用最广泛的核心场景之一!很多人学习易语言的直接动力,就是为了解放双手,提高工作效率——比如批量处理 Excel 报表、自动登录办公系统、定时发送邮件、自动抓取网页数据,甚至为自己喜欢的单机/绿色窗口游戏写简单的挂机脚本。

前期章节我们已经掌握了易语言的基础语法、组件库、网络通信、数据库操作、多线程优化和高级底层编程,这些都是自动化开发的技术基础。本章将重点讲解四大高频自动化场景的全流程实战开发,帮助大家将所学知识应用到实际工作和生活中。

11.1.1 学习目标
  • 掌握Windows GUI 自动化的核心原理(窗口句柄查找、控件操作、消息发送)
  • 学会使用精易模块和大漠插件实现自动化操作
  • 完成办公自动化实战(批量生成工资条、自动发送会议通知邮件)
  • 完成网页数据抓取自动化实战(自动抓取天气数据、自动抓取招聘网站职位信息)
  • 完成基础游戏脚本开发实战(⚠️仅用于学习,严禁开发/传播违法违规的游戏外挂)
  • 掌握自动化项目的通用开发流程,形成自动化开发思维
11.1.2 学习重点
  • 窗口句柄、控件类名、控件 ID 的获取方法(使用 Spy++或精易编程助手)
  • 精易模块和大漠插件的安装与配置
  • Windows API 和 OLE 自动化的使用方法
  • 图像识别和键盘鼠标模拟的实现
  • 自动化项目的测试、优化和打包方法

11.2 自动化开发核心技术基础

11.2.1 Windows GUI 自动化原理

Windows GUI 自动化的核心是**'识别目标控件,发送操作消息'。每个 Windows 窗口和控件都有唯一的窗口句柄(HWND),我们可以通过类名(ClassName)、标题(Caption)、控件 ID(ControlID)等信息找到目标控件的句柄,然后通过 SendMessage 或PostMessage**函数发送操作消息(如点击、输入文本)。

获取窗口/控件信息的工具
  1. 精易编程助手:易语言社区开发的免费工具,功能强大,操作简单(推荐)
  2. Spy++:Visual Studio 自带的工具,功能专业,但操作复杂
  3. WinSpy:轻量级的免费工具,适合简单场景

使用精易编程助手获取窗口/控件信息的步骤:
① 打开精易编程助手,点击'窗口信息'选项卡
② 点击'句柄探测'按钮,将十字准星拖到目标窗口/控件上
③ 精易编程助手会自动显示目标窗口/控件的句柄、类名、标题、控件 ID 等信息

11.2.2 精易模块自动化操作函数

精易模块提供了大量的 Windows GUI 自动化操作函数,如:

  • 窗口_取句柄:根据类名和标题获取窗口句柄
  • 窗口_发送消息:向目标窗口/控件发送消息
  • 窗口_文本输入:向目标编辑框发送文本
  • 窗口_点击:向目标按钮发送点击消息
  • 键盘_模拟输入:模拟键盘输入
  • 鼠标_模拟点击:模拟鼠标点击
11.2.3 大漠插件自动化操作函数

大漠插件(dm.dll)是易语言社区最受欢迎的第三方自动化插件,功能强大,支持图像识别、文字识别、键盘鼠标模拟、窗口操作、内存操作等。

大漠插件的安装与配置

① 下载最新版本的大漠插件
② 解压后,将 dm.dll 文件复制到易语言程序的目录下
③ 打开易语言,点击'工具→支持库配置→全部支持库',找到'精易模块'并勾选(精易模块封装了大漠插件的常用函数)
④ 在代码中使用 dm.创建 () 函数初始化大漠插件

11.3 办公自动化实战

11.3.1 实战一:批量生成工资条
需求分析

每个月财务人员都需要为公司员工批量生成工资条,传统的方法是手动复制粘贴,效率低下且容易出错。我们可以开发一个自动化程序,从 Excel 工资表中读取员工信息和工资数据,自动生成每个员工的工资条,并保存为 PDF 文件。

核心技术
  • OLE 自动化:通过 Word 的 COM 接口操作 Word 文档
  • Excel 支持库:读取 Excel 工资表中的数据
  • PDF 支持库:将 Word 文档转换为 PDF 文件
代码实现
.版本 2 .支持库 spec .支持库 eExcel .支持库 eWord .支持库 ePDF .程序集 程序集 1 .程序集变量 g_Excel 对象,类_Excel 应用程序 .程序集变量 g_Word 对象,类_Word 应用程序 .子程序 __启动窗口_创建完毕 ' 初始化组件属性 _启动窗口。标题 = '批量生成工资条' _启动窗口。宽度 = 600 _启动窗口。高度 = 400 _启动窗口。左边 = (取屏幕宽度 () - _启动窗口。宽度) ÷ 2 _启动窗口。顶边 = (取屏幕高度 () - _启动窗口。高度) ÷ 2 ' 初始化 Excel 和 Word 对象 g_Excel 对象。创建 () g_Word 对象。创建 () 调试输出 ('Excel 和 Word 对象初始化成功!') .子程序 _btnSelectExcel_被单击 .局部变量 文件名,文本型 ' 选择 Excel 工资表 文件名 = 文件_打开 ('请选择 Excel 工资表', 'Excel 文件 (*.xlsx;*.xls)|*.xlsx;*.xls', , ) .如果真 (文件名 = '') 返回 () .如果真结束 txtExcelPath.内容 = 文件名 调试输出 ('已选择 Excel 工资表:', 文件名) .子程序 _btnSelectSavePath_被单击 .局部变量 文件夹,文本型 ' 选择保存路径 文件夹 = 文件夹_选择 ('请选择保存路径', ) .如果真 (文件夹 = '') 返回 () .如果真结束 txtSavePath.内容 = 文件夹 调试输出 ('已选择保存路径:', 文件夹) .子程序 _btnGenerate_被单击 .局部变量 工资表,类_工作簿 .局部变量 工作表,类_工作表 .局部变量 员工数,整数型 .局部变量 i, 整数型 .局部变量 员工姓名,文本型 .局部变量 基本工资,双精度型 .局部变量 奖金,双精度型 .局部变量 津贴,双精度型 .局部变量 扣款,双精度型 .局部变量 总工资,双精度型 .局部变量 Word 文档,类_文档 .局部变量 段落,类_段落 .局部变量 表格,类_表格 .局部变量 单元格,类_单元格 .局部变量 PDF 文件名,文本型 ' 检查输入是否为空 .如果真 (txtExcelPath.内容 = '') 信息框 ('请选择 Excel 工资表!', 0, '错误提示') 返回 () .如果真结束 .如果真 (txtSavePath.内容 = '') 信息框 ('请选择保存路径!', 0, '错误提示') 返回 () .如果真结束 ' 打开 Excel 工资表 工资表 = g_Excel 对象。工作簿_打开 (txtExcelPath.内容) 工作表 = 工资表。工作表_取当前 () ' 获取员工数 员工数 = 工作表。单元格_取列尾行号 (1, 2) - 1 ' 第 1 行为表头,第 2 行开始是员工数据 ' 生成每个员工的工资条 .计次循环首 (员工数,i) ' 读取员工信息和工资数据 员工姓名 = 工作表。单元格_读文本 (1 + i, 1) 基本工资 = 工作表。单元格_读数值 (1 + i, 2) 奖金 = 工作表。单元格_读数值 (1 + i, 3) 津贴 = 工作表。单元格_读数值 (1 + i, 4) 扣款 = 工作表。单元格_读数值 (1 + i, 5) 总工资 = 基本工资 + 奖金 + 津贴 - 扣款 ' 创建 Word 文档 Word 文档 = g_Word 对象。文档_新建 () ' 插入标题 段落 = Word 文档。段落_添加 () 段落。文本 = '工资条' 段落。对齐方式 = #居中对齐 段落。字体。大小 = 18 段落。字体。加粗 = #真 ' 插入员工姓名 段落 = Word 文档。段落_添加 () 段落。文本 = '员工姓名:' + 员工姓名 段落。对齐方式 = #左对齐 段落。字体。大小 = 12 段落。字体。加粗 = #假 ' 插入工资表格 表格 = Word 文档。表格_添加 (Word 文档。内容_末尾,5, 2) 表格。边框。设置 (1, #黑色,1) ' 填充表格数据 表格。单元格_读 (1, 1).文本 = '基本工资' 表格。单元格_读 (1, 2).文本 = 到文本 (基本工资, '0.00') 表格。单元格_读 (2, 1).文本 = '奖金' 表格。单元格_读 (2, 2).文本 = 到文本 (奖金, '0.00') 表格。单元格_读 (3, 1).文本 = '津贴' 表格。单元格_读 (3, 2).文本 = 到文本 (津贴, '0.00') 表格。单元格_读 (4, 1).文本 = '扣款' 表格。单元格_读 (4, 2).文本 = 到文本 (扣款, '0.00') 表格。单元格_读 (5, 1).文本 = '总工资' 表格。单元格_读 (5, 2).文本 = 到文本 (总工资, '0.00') ' 保存为 PDF 文件 PDF 文件名 = txtSavePath.内容 + '\' + 员工姓名 + '_工资条.pdf' Word 文档。保存为 PDF (PDF 文件名) ' 关闭 Word 文档 Word 文档。关闭 (False) ' 更新进度条 pbrProgress.位置 = i ÷ 员工数 × 100 .计次循环首 () ' 关闭 Excel 工资表 工资表。关闭 (False) ' 更新进度条 pbrProgress.位置 = 100 ' 提示生成成功 信息框 ('工资条生成成功!共生成' + 到文本 (员工数) + '个工资条。', 0, '成功提示') 调试输出 ('工资条生成成功!共生成' + 到文本 (员工数) + '个工资条。') .子程序 __启动窗口_将被销毁 ' 关闭 Excel 和 Word 对象 g_Excel 对象。关闭 () g_Word 对象。关闭 () 调试输出 ('Excel 和 Word 对象关闭成功!') 
11.3.2 实战二:自动发送会议通知邮件
需求分析

公司每周一上午需要召开部门例会,传统的方法是手动发送会议通知邮件,效率低下且容易遗漏。我们可以开发一个自动化程序,从 Excel 员工表中读取员工的邮箱地址,自动发送会议通知邮件。

核心技术
  • 邮件发送:使用精易模块的邮件发送函数
  • Excel 支持库:读取 Excel 员工表中的邮箱地址
  • 配置文件:保存邮件服务器参数和邮件内容
代码实现
.版本 2 .支持库 spec .支持库 eExcel .支持库 eJYM .程序集 程序集 1 .程序集变量 g_Excel 对象,类_Excel 应用程序 .子程序 __启动窗口_创建完毕 ' 初始化组件属性 _启动窗口。标题 = '自动发送会议通知邮件' _启动窗口。宽度 = 600 _启动窗口。高度 = 500 _启动窗口。左边 = (取屏幕宽度 () - _启动窗口。宽度) ÷ 2 _启动窗口。顶边 = (取屏幕高度 () - _启动窗口。高度) ÷ 2 ' 初始化 Excel 对象 g_Excel 对象。创建 () ' 从配置文件中读取邮件服务器参数 txtSMTP 服务器。内容 = 配置文件_取文本 ('Email', 'SMTP 服务器', 'smtp.qq.com') txtSMTP 端口。内容 = 配置文件_取文本 ('Email', 'SMTP 端口', '587') txt 发件人邮箱。内容 = 配置文件_取文本 ('Email', '发件人邮箱', '') txt 发件人密码。内容 = 配置文件_取文本 ('Email', '发件人密码', '') txt 邮件主题。内容 = 配置文件_取文本 ('Email', '邮件主题', '部门例会通知') edt 邮件内容。内容 = 配置文件_取文本 ('Email', '邮件内容', '各位同事:您好!本周一上午 9:00 将在会议室召开部门例会,请准时参加。谢谢!') 调试输出 ('Excel 对象初始化成功!邮件服务器参数读取成功!') .子程序 _btnSelectExcel_被单击 .局部变量 文件名,文本型 ' 选择 Excel 员工表 文件名 = 文件_打开 ('请选择 Excel 员工表', 'Excel 文件 (*.xlsx;*.xls)|*.xlsx;*.xls', , ) .如果真 (文件名 = '') 返回 () .如果真结束 txtExcelPath.内容 = 文件名 调试输出 ('已选择 Excel 员工表:', 文件名) .子程序 _btnSendEmail_被单击 .局部变量 员工表,类_工作簿 .局部变量 工作表,类_工作表 .局部变量 员工数,整数型 .局部变量 i, 整数型 .局部变量 员工姓名,文本型 .局部变量 员工邮箱,文本型 .局部变量 邮件发送结果,文本型 ' 检查输入是否为空 .如果真 (txtExcelPath.内容 = '') 信息框 ('请选择 Excel 员工表!', 0, '错误提示') 返回 () .如果真结束 .如果真 (txtSMTP 服务器。内容 = '') 信息框 ('请输入 SMTP 服务器地址!', 0, '错误提示') 返回 () .如果真结束 .如果真 (txtSMTP 端口。内容 = '') 信息框 ('请输入 SMTP 端口!', 0, '错误提示') 返回 () .如果真结束 .如果真 (txt 发件人邮箱。内容 = '') 信息框 ('请输入发件人邮箱地址!', 0, '错误提示') 返回 () .如果真结束 .如果真 (txt 发件人密码。内容 = '') 信息框 ('请输入发件人密码!', 0, '错误提示') 返回 () .如果真结束 .如果真 (txt 邮件主题。内容 = '') 信息框 ('请输入邮件主题!', 0, '错误提示') 返回 () .如果真结束 .如果真 (edt 邮件内容。内容 = '') 信息框 ('请输入邮件内容!', 0, '错误提示') 返回 () .如果真结束 ' 打开 Excel 员工表 员工表 = g_Excel 对象。工作簿_打开 (txtExcelPath.内容) 工作表 = 员工表。工作表_取当前 () ' 获取员工数 员工数 = 工作表。单元格_取列尾行号 (1, 2) - 1 ' 第 1 行为表头,第 2 行开始是员工数据 ' 发送会议通知邮件 .计次循环首 (员工数,i) ' 读取员工信息 员工姓名 = 工作表。单元格_读文本 (1 + i, 1) 员工邮箱 = 工作表。单元格_读文本 (1 + i, 2) ' 发送邮件 邮件发送结果 = 邮件_发送 (txtSMTP 服务器。内容,到数值 (txtSMTP 端口。内容), txt 发件人邮箱。内容,txt 发件人密码。内容,员工邮箱,txt 邮件主题。内容,edt 邮件内容。内容, , , , ) ' 记录发送结果 lstSendResult.插入表项 (, ) lstSendResult.置标题 (lstSendResult.取表项数 () - 1, 0, 员工姓名) lstSendResult.置标题 (lstSendResult.取表项数 () - 1, 1, 员工邮箱) lstSendResult.置标题 (lstSendResult.取表项数 () - 1, 2, 邮件发送结果) ' 更新进度条 pbrProgress.位置 = i ÷ 员工数 × 100 .计次循环首 () ' 关闭 Excel 员工表 员工表。关闭 (False) ' 更新进度条 pbrProgress.位置 = 100 ' 提示发送成功 信息框 ('会议通知邮件发送成功!共发送' + 到文本 (员工数) + '封邮件。', 0, '成功提示') 调试输出 ('会议通知邮件发送成功!共发送' + 到文本 (员工数) + '封邮件。') .子程序 _btnSaveConfig_被单击 ' 保存邮件服务器参数和邮件内容到配置文件 配置文件_写文本 ('Email', 'SMTP 服务器', txtSMTP 服务器。内容) 配置文件_写文本 ('Email', 'SMTP 端口', txtSMTP 端口。内容) 配置文件_写文本 ('Email', '发件人邮箱', txt 发件人邮箱。内容) 配置文件_写文本 ('Email', '发件人密码', txt 发件人密码。内容) 配置文件_写文本 ('Email', '邮件主题', txt 邮件主题。内容) 配置文件_写文本 ('Email', '邮件内容', edt 邮件内容。内容) 信息框 ('配置保存成功!', 0, '成功提示') 调试输出 ('配置保存成功!') .子程序 __启动窗口_将被销毁 ' 关闭 Excel 对象 g_Excel 对象。关闭 () 调试输出 ('Excel 对象关闭成功!') 

11.4 网页数据抓取自动化实战

11.4.1 实战一:自动抓取天气数据并写入 Excel
需求分析

每天需要查看多个城市的天气数据,传统的方法是手动打开天气网站查看,效率低下且容易出错。我们可以开发一个自动化程序,自动抓取指定城市的天气数据,并写入 Excel 表格中。

核心技术
  • WebBrowser 组件:加载天气网站
  • HTML 解析:使用精易模块的 HTML 解析函数
  • Excel 支持库:将天气数据写入 Excel 表格
代码实现
.版本 2 .支持库 spec .支持库 eExcel .支持库 eWebBrowser .支持库 eJYM .程序集 程序集 1 .程序集变量 g_Excel 对象,类_Excel 应用程序 .程序集变量 g_WebBrowser, 类_WebBrowser .子程序 __启动窗口_创建完毕 ' 初始化组件属性 _启动窗口。标题 = '自动抓取天气数据' _启动窗口。宽度 = 800 _启动窗口。高度 = 600 _启动窗口。左边 = (取屏幕宽度 () - _启动窗口。宽度) ÷ 2 _启动窗口。顶边 = (取屏幕高度 () - _启动窗口。高度) ÷ 2 ' 初始化 Excel 和 WebBrowser 对象 g_Excel 对象。创建 () g_WebBrowser.创建 () g_WebBrowser.组件_置窗口 (_启动窗口.hwnd) g_WebBrowser.组件_置位置 (0, 0, _启动窗口。宽度,_启动窗口。高度) ' 从配置文件中读取城市列表 读取城市列表 () 调试输出 ('Excel 和 WebBrowser 对象初始化成功!城市列表读取成功!') .子程序 读取城市列表 .局部变量 城市数组,文本型,动态数组 .局部变量 i, 整数型 ' 从配置文件中读取城市列表(格式:北京,上海,广州,深圳) 城市数组 = 分割文本 (配置文件_取文本 ('Weather', '城市列表', '北京,上海,广州,深圳'), ',', ) ' 将城市列表添加到组合框中 .计次循环首 (取数组成员数 (城市数组), i) cboCity.加入项目 (城市数组 [i - 1]) .计次循环首 () ' 默认选中第一个城市 cboCity.现行选中项 = 0 .子程序 _btnCrawlWeather_被单击 .局部变量 城市名,文本型 .局部变量 天气网站地址,文本型 .局部变量 HTML 内容,文本型 .局部变量 天气数据,文本型,动态数组 .局部变量 温度,文本型 .局部变量 天气,文本型 .局部变量 风向,文本型 .局部变量 风力,文本型 .局部变量 湿度,文本型 .局部变量 气压,文本型 .局部变量 能见度,文本型 .局部变量 降水量,文本型 .局部变量 Excel 工作簿,类_工作簿 .局部变量 Excel 工作表,类_工作表 ' 获取选中的城市名 城市名 = cboCity.取项目文本 (cboCity.现行选中项) ' 构建天气网站地址(使用中国天气网的 API) 天气网站地址 = 'http://www.weather.com.cn/weather/' + 获取城市代码 (城市名) + '.shtml' ' 加载天气网站 g_WebBrowser.导航 (天气网站地址) ' 等待网站加载完成 .循环判断首 () 处理事件 () .循环判断尾 (g_WebBrowser.是否繁忙 () 或 g_WebBrowser.是否正在导航 () ) ' 读取 HTML 内容 HTML 内容 = g_WebBrowser.取文档 HTML () ' 解析 HTML 内容,获取天气数据 温度 = 正则表达式_匹配 (HTML 内容, '<span class=''temp''>(.*?)°C</span>', 1, ) 天气 = 正则表达式_匹配 (HTML 内容, '<span class=''wea''>(.*?)</span>', 1, ) 风向 = 正则表达式_匹配 (HTML 内容, '<span class=''win''><span class=''wind_dir''>(.*?)</span><span class=''wind_level''>(.*?)</span></span>', 1, ) 风力 = 正则表达式_匹配 (HTML 内容, '<span class=''win''><span class=''wind_dir''>(.*?)</span><span class=''wind_level''>(.*?)</span></span>', 2, ) 湿度 = 正则表达式_匹配 (HTML 内容, '<span class=''hum''>(.*?)%</span>', 1, ) 气压 = 正则表达式_匹配 (HTML 内容, '<span class=''air''>(.*?)hPa</span>', 1, ) 能见度 = 正则表达式_匹配 (HTML 内容, '<span class=''vis''>(.*?)km</span>', 1, ) 降水量 = 正则表达式_匹配 (HTML 内容, '<span class=''pre''>(.*?)mm</span>', 1, ) ' 显示天气数据 lbl 温度。标题 = '温度:' + 温度 + '°C' lbl 天气。标题 = '天气:' + 天气 lbl 风向。标题 = '风向:' + 风向 lbl 风力。标题 = '风力:' + 风力 lbl 湿度。标题 = '湿度:' + 湿度 + '%' lbl 气压。标题 = '气压:' + 气压 + 'hPa' lbl 能见度。标题 = '能见度:' + 能见度 + 'km' lbl 降水量。标题 = '降水量:' + 降水量 + 'mm' ' 将天气数据写入 Excel 表格 Excel 工作簿 = g_Excel 对象。工作簿_新建 () Excel 工作表 = Excel 工作簿。工作表_取当前 () ' 写入表头 Excel 工作表。单元格_写文本 (1, 1, '城市名') Excel 工作表。单元格_写文本 (1, 2, '温度') Excel 工作表。单元格_写文本 (1, 3, '天气') Excel 工作表。单元格_写文本 (1, 4, '风向') Excel 工作表。单元格_写文本 (1, 5, '风力') Excel 工作表。单元格_写文本 (1, 6, '湿度') Excel 工作表。单元格_写文本 (1, 7, '气压') Excel 工作表。单元格_写文本 (1, 8, '能见度') Excel 工作表。单元格_写文本 (1, 9, '降水量') Excel 工作表。单元格_写文本 (1, 10, '抓取时间') ' 写入天气数据 Excel 工作表。单元格_写文本 (2, 1, 城市名) Excel 工作表。单元格_写文本 (2, 2, 温度 + '°C') Excel 工作表。单元格_写文本 (2, 3, 天气) Excel 工作表。单元格_写文本 (2, 4, 风向) Excel 工作表。单元格_写文本 (2, 5, 风力) Excel 工作表。单元格_写文本 (2, 6, 湿度 + '%') Excel 工作表。单元格_写文本 (2, 7, 气压 + 'hPa') Excel 工作表。单元格_写文本 (2, 8, 能见度 + 'km') Excel 工作表。单元格_写文本 (2, 9, 降水量 + 'mm') Excel 工作表。单元格_写文本 (2, 10, 到文本 (取现行时间 (), , 'yyyy-MM-dd HH:mm:ss')) ' 保存 Excel 工作簿 Excel 工作簿。保存 As (取运行目录 () + '\' + 城市名 + '_天气数据_' + 到文本 (取现行时间 (), , 'yyyyMMddHHmmss') + '.xlsx') Excel 工作簿。关闭 (False) ' 提示抓取成功 信息框 ('天气数据抓取成功!已保存到' + 取运行目录 () + '\' + 城市名 + '_天气数据_' + 到文本 (取现行时间 (), , 'yyyyMMddHHmmss') + '.xlsx', 0, '成功提示') 调试输出 ('天气数据抓取成功!城市:', 城市名, ' 温度:', 温度, ' 天气:', 天气) .子程序 获取城市代码,文本型 .参数 城市名,文本型 .局部变量 城市代码表,文本型,动态数组 .局部变量 城市信息,文本型,动态数组 .局部变量 i, 整数型 ' 城市代码表(格式:城市名 | 城市代码) 城市代码表 = {'北京 |101010100', '上海 |101020100', '广州 |101280101', '深圳 |101280601', '杭州 |101210101', '南京 |101190101', '成都 |101270101', '重庆 |101040100', '武汉 |101200101', '西安 |101110101'} ' 查找城市代码 .计次循环首 (取数组成员数 (城市代码表), i) 城市信息 = 分割文本 (城市代码表 [i - 1], '|', ) .如果真 (城市信息 [0] = 城市名) 返回 (城市信息 [1]) .如果真结束 .计次循环首 () ' 如果未找到城市代码,默认返回北京的城市代码 返回 ('101010100') .子程序 正则表达式_匹配,文本型 .参数 原文本,文本型 .参数 正则表达式,文本型 .参数 匹配组索引,整数型 .局部变量 正则对象,正则表达式 .局部变量 匹配集合,正则表达式匹配 .局部变量 匹配结果,文本型 ' 初始化正则对象 正则对象。创建 (正则表达式, ) ' 匹配文本 匹配集合 = 正则对象。匹配 (原文本) ' 获取匹配结果 .如果真 (匹配集合。数量 > 0) 匹配结果 = 匹配集合。取子匹配文本 (0, 匹配组索引) .如果真结束 ' 释放资源 正则对象。销毁 () 匹配集合。销毁 () 返回 (匹配结果) .子程序 __启动窗口_将被销毁 ' 关闭 Excel 和 WebBrowser 对象 g_Excel 对象。关闭 () g_WebBrowser.销毁 () 调试输出 ('Excel 和 WebBrowser 对象关闭成功!') 
11.4.2 实战二:自动抓取招聘网站的职位信息
需求分析

找工作时需要查看多个招聘网站的职位信息,传统的方法是手动打开招聘网站搜索,效率低下且容易遗漏。我们可以开发一个自动化程序,自动抓取指定招聘网站的职位信息,并写入 Excel 表格中。

核心技术
  • HTTP 访问:使用精易模块的 HTTP 访问函数
  • HTML 解析:使用精易模块的 HTML 解析函数
  • Excel 支持库:将职位信息写入 Excel 表格
代码实现
.版本 2 .支持库 spec .支持库 eExcel .支持库 eJYM .程序集 程序集 1 .程序集变量 g_Excel 对象,类_Excel 应用程序 .子程序 __启动窗口_创建完毕 ' 初始化组件属性 _启动窗口。标题 = '自动抓取招聘网站职位信息' _启动窗口。宽度 = 800 _启动窗口。高度 = 600 _启动窗口。左边 = (取屏幕宽度 () - _启动窗口。宽度) ÷ 2 _启动窗口。顶边 = (取屏幕高度 () - _启动窗口。高度) ÷ 2 ' 初始化 Excel 对象 g_Excel 对象。创建 () ' 从配置文件中读取招聘网站信息 读取招聘网站信息 () 调试输出 ('Excel 对象初始化成功!招聘网站信息读取成功!') .子程序 读取招聘网站信息 .局部变量 招聘网站数组,文本型,动态数组 .局部变量 i, 整数型 ' 从配置文件中读取招聘网站信息(格式:网站名称 | 搜索地址) 招聘网站数组 = 分割文本 (配置文件_取文本 ('Recruitment', '招聘网站', '前程无忧 |https://search.51job.com/list/000000,000000,0000,00,9,99,易语言,2,1.html;智联招聘 |https://sou.zhaopin.com/jobs/searchresult.ashx?jl=000000&kw= 易语言&sm=0&p=1'), ';', ) ' 将招聘网站信息添加到组合框中 .计次循环首 (取数组成员数 (招聘网站数组), i) cboWebsite.加入项目 (分割文本 (招聘网站数组 [i - 1], '|', ) [0]) .计次循环首 () ' 默认选中第一个招聘网站 cboWebsite.现行选中项 = 0 .子程序 _btnCrawlJobs_被单击 .局部变量 招聘网站信息,文本型,动态数组 .局部变量 搜索地址,文本型 .局部变量 关键词,文本型 .局部变量 页码数,整数型 .局部变量 i, 整数型 .局部变量 HTTP 响应,文本型 .局部变量 职位信息数组,文本型,动态数组 .局部变量 Excel 工作簿,类_工作簿 .局部变量 Excel 工作表,类_工作表 .局部变量 行号,整数型 ' 获取选中的招聘网站信息和搜索参数 招聘网站信息 = 分割文本 (配置文件_取文本 ('Recruitment', '招聘网站', '前程无忧 |https://search.51job.com/list/000000,000000,0000,00,9,99,易语言,2,1.html;智联招聘 |https://sou.zhaopin.com/jobs/searchresult.ashx?jl=000000&kw= 易语言&sm=0&p=1'), ';', ) 搜索地址 = 分割文本 (招聘网站信息 [cboWebsite.现行选中项], '|', ) [1] 关键词 = txtKeyword.内容 页码数 = 到数值 (txtPageCount.内容) ' 检查输入是否为空 .如果真 (关键词 = '') 信息框 ('请输入搜索关键词!', 0, '错误提示') 返回 () .如果真结束 .如果真 (页码数 ≤ 0) 信息框 ('请输入大于 0 的页码数!', 0, '错误提示') 返回 () .如果真结束 ' 创建 Excel 工作簿 Excel 工作簿 = g_Excel 对象。工作簿_新建 () Excel 工作表 = Excel 工作簿。工作表_取当前 () ' 写入表头 Excel 工作表。单元格_写文本 (1, 1, '职位名称') Excel 工作表。单元格_写文本 (1, 2, '公司名称') Excel 工作表。单元格_写文本 (1, 3, '工作地点') Excel 工作表。单元格_写文本 (1, 4, '薪资范围') Excel 工作表。单元格_写文本 (1, 5, '工作经验') Excel 工作表。单元格_写文本 (1, 6, '学历要求') Excel 工作表。单元格_写文本 (1, 7, '发布时间') Excel 工作表。单元格_写文本 (1, 8, '职位链接') 行号 = 2 ' 抓取职位信息 .计次循环首 (页码数,i) ' 构建搜索地址(替换关键词和页码) 搜索地址 = 子文本替换 (搜索地址, '易语言', 关键词, , , 真) 搜索地址 = 子文本替换 (搜索地址, 'p=1', 'p=' + 到文本 (i), , , 真) ' 发送 HTTP 请求 HTTP 响应 = 网页_访问 (搜索地址, , , , , , , , ) ' 解析 HTTP 响应,获取职位信息数组 .判断开始 (cboWebsite.取项目文本 (cboWebsite.现行选中项) = '前程无忧') 职位信息数组 = 解析前程无忧职位信息 (HTTP 响应) .判断 (cboWebsite.取项目文本 (cboWebsite.现行选中项) = '智联招聘') 职位信息数组 = 解析智联招聘职位信息 (HTTP 响应) .默认 信息框 ('不支持该招聘网站的解析!', 0, '错误提示') 返回 () .判断结束 ' 将职位信息写入 Excel 表格 .计次循环首 (取数组成员数 (职位信息数组), i) Excel 工作表。单元格_写文本 (行号,1, 分割文本 (职位信息数组 [i - 1], '|', ) [0]) ' 职位名称 Excel 工作表。单元格_写文本 (行号,2, 分割文本 (职位信息数组 [i - 1], '|', ) [1]) ' 公司名称 Excel 工作表。单元格_写文本 (行号,3, 分割文本 (职位信息数组 [i - 1], '|', ) [2]) ' 工作地点 Excel 工作表。单元格_写文本 (行号,4, 分割文本 (职位信息数组 [i - 1], '|', ) [3]) ' 薪资范围 Excel 工作表。单元格_写文本 (行号,5, 分割文本 (职位信息数组 [i - 1], '|', ) [4]) ' 工作经验 Excel 工作表。单元格_写文本 (行号,6, 分割文本 (职位信息数组 [i - 1], '|', ) [5]) ' 学历要求 Excel 工作表。单元格_写文本 (行号,7, 分割文本 (职位信息数组 [i - 1], '|', ) [6]) ' 发布时间 Excel 工作表。单元格_写文本 (行号,8, 分割文本 (职位信息数组 [i - 1], '|', ) [7]) ' 职位链接 行号 = 行号 + 1 .计次循环首 () ' 更新进度条 pbrProgress.位置 = i ÷ 页码数 × 100 .计次循环首 () ' 保存 Excel 工作簿 Excel 工作簿。保存 As (取运行目录 () + '\' + 关键词 + '_职位信息_' + 到文本 (取现行时间 (), , 'yyyyMMddHHmmss') + '.xlsx') Excel 工作簿。关闭 (False) ' 更新进度条 pbrProgress.位置 = 100 ' 提示抓取成功 信息框 ('职位信息抓取成功!共抓取' + 到文本 (行号 - 2) + '个职位信息。已保存到' + 取运行目录 () + '\' + 关键词 + '_职位信息_' + 到文本 (取现行时间 (), , 'yyyyMMddHHmmss') + '.xlsx', 0, '成功提示') 调试输出 ('职位信息抓取成功!关键词:', 关键词, ' 数量:', 行号 - 2) .子程序 解析前程无忧职位信息,文本型,数组 .参数 HTTP 响应,文本型 .局部变量 职位信息数组,文本型,动态数组 .局部变量 职位列表 HTML, 文本型 .局部变量 职位项 HTML 数组,文本型,动态数组 .局部变量 i, 整数型 .局部变量 职位项 HTML, 文本型 .局部变量 职位名称,文本型 .局部变量 公司名称,文本型 .局部变量 工作地点,文本型 .局部变量 薪资范围,文本型 .局部变量 工作经验,文本型 .局部变量 学历要求,文本型 .局部变量 发布时间,文本型 .局部变量 职位链接,文本型 ' 提取职位列表 HTML 职位列表 HTML = 正则表达式_匹配 (HTTP 响应, '<div class=''j_joblist''>(.*?)</div>', 1, ) ' 提取职位项 HTML 数组 职位项 HTML 数组 = 分割文本 (正则表达式_匹配 (职位列表 HTML, '<div class=''j_joblist_job''>(.*?)</div>', , ), '<div class=''j_joblist_job''>', ) ' 解析每个职位项 HTML .计次循环首 (取数组成员数 (职位项 HTML 数组), i) 职位项 HTML = 职位项 HTML 数组 [i - 1] .如果真 (取文本长度 (职位项 HTML) < 100) 继续循环 () .如果真结束 ' 提取职位信息 职位名称 = 正则表达式_匹配 (职位项 HTML, '<a class=''j_jobname'' href=''(.*?)'' target=''_blank''>(.*?)</a>', 2, ) 职位链接 = 正则表达式_匹配 (职位项 HTML, '<a class=''j_jobname'' href=''(.*?)'' target=''_blank''>(.*?)</a>', 1, ) 公司名称 = 正则表达式_匹配 (职位项 HTML, '<a class=''j_corname'' href=''(.*?)'' target=''_blank''>(.*?)</a>', 2, ) 工作地点 = 正则表达式_匹配 (职位项 HTML, '<span class=''j_position''>(.*?)</span>', 1, ) 薪资范围 = 正则表达式_匹配 (职位项 HTML, '<span class=''j_salary''>(.*?)</span>', 1, ) 工作经验 = 正则表达式_匹配 (职位项 HTML, '<span class=''j_experience''>(.*?)</span>', 1, ) 学历要求 = 正则表达式_匹配 (职位项 HTML, '<span class=''j_education''>(.*?)</span>', 1, ) 发布时间 = 正则表达式_匹配 (职位项 HTML, '<span class=''j_date''>(.*?)</span>', 1, ) ' 将职位信息添加到数组中 加入成员 (职位信息数组,职位名称 + '|' + 公司名称 + '|' + 工作地点 + '|' + 薪资范围 + '|' + 工作经验 + '|' + 学历要求 + '|' + 发布时间 + '|' + 职位链接) .计次循环首 () 返回 (职位信息数组) .子程序 解析智联招聘职位信息,文本型,数组 .参数 HTTP 响应,文本型 .局部变量 职位信息数组,文本型,动态数组 .局部变量 职位列表 HTML, 文本型 .局部变量 职位项 HTML 数组,文本型,动态数组 .局部变量 i, 整数型 .局部变量 职位项 HTML, 文本型 .局部变量 职位名称,文本型 .局部变量 公司名称,文本型 .局部变量 工作地点,文本型 .局部变量 薪资范围,文本型 .局部变量 工作经验,文本型 .局部变量 学历要求,文本型 .局部变量 发布时间,文本型 .局部变量 职位链接,文本型 ' 提取职位列表 HTML 职位列表 HTML = 正则表达式_匹配 (HTTP 响应, '<div class=''contentpile__content''>(.*?)</div>', 1, ) ' 提取职位项 HTML 数组 职位项 HTML 数组 = 分割文本 (正则表达式_匹配 (职位列表 HTML, '<div class=''contentpile__content__item''>(.*?)</div>', , ), '<div class=''contentpile__content__item''>', ) ' 解析每个职位项 HTML .计次循环首 (取数组成员数 (职位项 HTML 数组), i) 职位项 HTML = 职位项 HTML 数组 [i - 1] .如果真 (取文本长度 (职位项 HTML) < 100) 继续循环 () .如果真结束 ' 提取职位信息 职位名称 = 正则表达式_匹配 (职位项 HTML, '<a class=''contentpile__content__item__info__box__jobname__title'' href=''(.*?)'' target=''_blank''>(.*?)</a>', 2, ) 职位链接 = 正则表达式_匹配 (职位项 HTML, '<a class=''contentpile__content__item__info__box__jobname__title'' href=''(.*?)'' target=''_blank''>(.*?)</a>', 1, ) 公司名称 = 正则表达式_匹配 (职位项 HTML, '<a class=''contentpile__content__item__info__box__cname__title'' href=''(.*?)'' target=''_blank''>(.*?)</a>', 2, ) 工作地点 = 正则表达式_匹配 (职位项 HTML, '<span class=''contentpile__content__item__info__box__job__demand__item''>(.*?)</span>', 1, ) 薪资范围 = 正则表达式_匹配 (职位项 HTML, '<span class=''contentpile__content__item__info__box__job__saray''>(.*?)</span>', 1, ) 工作经验 = 正则表达式_匹配 (职位项 HTML, '<span class=''contentpile__content__item__info__box__job__demand__item''>(.*?)</span>', 2, ) 学历要求 = 正则表达式_匹配 (职位项 HTML, '<span class=''contentpile__content__item__info__box__job__demand__item''>(.*?)</span>', 3, ) 发布时间 = 正则表达式_匹配 (职位项 HTML, '<span class=''contentpile__content__item__info__box__job__uptime''>(.*?)</span>', 1, ) ' 将职位信息添加到数组中 加入成员 (职位信息数组,职位名称 + '|' + 公司名称 + '|' + 工作地点 + '|' + 薪资范围 + '|' + 工作经验 + '|' + 学历要求 + '|' + 发布时间 + '|' + 职位链接) .计次循环首 () 返回 (职位信息数组) .子程序 正则表达式_匹配,文本型,数组,公开 .参数 原文本,文本型 .参数 正则表达式,文本型 .参数 匹配组索引,整数型 .参数 是否返回全部匹配,逻辑型,可空,默认值为假 .局部变量 正则对象,正则表达式 .局部变量 匹配集合,正则表达式匹配 .局部变量 结果数组,文本型,动态数组 .局部变量 i, 整数型 ' 初始化正则对象 正则对象。创建 (正则表达式, ) ' 匹配文本 匹配集合 = 正则对象。匹配 (原文本) ' 提取匹配结果 .如果真 (是否返回全部匹配) .计次循环首 (匹配集合。数量,i) 加入成员 (结果数组,匹配集合。取子匹配文本 (i - 1, 匹配组索引)) .计次循环首 () .如果真结束 .如果真 (是否返回全部匹配 = 假 且 匹配集合。数量 > 0) 加入成员 (结果数组,匹配集合。取子匹配文本 (0, 匹配组索引)) .如果真结束 ' 释放资源 正则对象。销毁 () 匹配集合。销毁 () 返回 (结果数组) .子程序 __启动窗口_将被销毁 ' 关闭 Excel 对象 g_Excel 对象。关闭 () 调试输出 ('Excel 对象关闭成功!') 

11.5 基础游戏脚本开发实战(⚠️仅用于学习)

11.5.1 实战:简单的窗口游戏挂机脚本
需求分析

有些单机/绿色窗口游戏需要长时间挂机,传统的方法是手动操作,效率低下且浪费时间。我们可以开发一个简单的自动化脚本,自动点击 NPC、自动拾取物品。

⚠️ 重要提示:

  • 仅用于学习 Windows GUI 自动化和图像识别技术
  • 严禁开发/传播违法违规的游戏外挂
  • 尊重游戏开发商的版权和规则
  • 使用脚本可能会导致账号被封禁
核心技术
  • 图像识别:使用大漠插件的图像识别函数
  • 键盘鼠标模拟:使用精易模块的键盘鼠标模拟函数
  • 窗口操作:使用精易模块的窗口操作函数
代码实现
.版本 2 .支持库 spec .支持库 eJYM .程序集 程序集 1 .程序集变量 g_大漠对象,类_大漠插件 .程序集变量 g_游戏窗口句柄,整数型 .程序集变量 g_是否继续挂机,逻辑型 .子程序 __启动窗口_创建完毕 ' 初始化组件属性 _启动窗口。标题 = '简单的窗口游戏挂机脚本' _启动窗口。宽度 = 400 _启动窗口。高度 = 300 _启动窗口。左边 = (取屏幕宽度 () - _启动窗口。宽度) ÷ 2 _启动窗口。顶边 = (取屏幕高度 () - _启动窗口。高度) ÷ 2 ' 初始化大漠对象 g_大漠对象。创建 () g_大漠对象。设置路径 (取运行目录 ()) ' 设置大漠插件的资源路径 ' 从配置文件中读取游戏窗口标题 txtGameTitle.内容 = 配置文件_取文本 ('Game', '窗口标题', '') ' 初始化全局变量 g_是否继续挂机 = 假 调试输出 ('大漠对象初始化成功!') .子程序 _btnFindGameWindow_被单击 ' 查找游戏窗口 g_游戏窗口句柄 = 窗口_取句柄 (txtGameTitle.内容, ) .如果真 (g_游戏窗口句柄 = 0) 信息框 ('未找到游戏窗口!', 0, '错误提示') 返回 () .如果真结束 ' 激活游戏窗口 窗口_激活 (g_游戏窗口句柄) ' 获取游戏窗口的截图 g_大漠对象。绑定窗口 (g_游戏窗口句柄, 'normal', 'normal', 'normal', 0) g_大漠对象。截图 (取运行目录 () + '\游戏窗口截图.bmp') g_大漠对象。解绑窗口 () ' 显示截图 图片框 1.图片 = 读入文件 (取运行目录 () + '\游戏窗口截图.bmp') ' 启用开始和停止按钮 btnStart.禁止 = #假 btnStop.禁止 = #真 调试输出 ('已找到游戏窗口!句柄:', g_游戏窗口句柄) .子程序 _btnStart_被单击 ' 开始挂机 g_是否继续挂机 = 真 btnStart.禁止 = #真 btnStop.禁止 = #假 ' 创建线程执行挂机任务 启动线程 (&挂机任务, , ) 调试输出 ('开始挂机!') .子程序 挂机任务 .局部变量 怪物坐标,整数型,数组 .局部变量 物品坐标,整数型,数组 .局部变量 i, 整数型 ' 绑定游戏窗口 g_大漠对象。绑定窗口 (g_游戏窗口句柄, 'normal', 'normal', 'normal', 0) ' 循环执行挂机任务 .判断循环首 (g_是否继续挂机) ' 寻找怪物 怪物坐标 = g_大漠对象。找多图 (取运行目录 () + '\怪物模板.bmp', 0.8, 0, 0, 800, 600) ' 如果找到怪物,攻击怪物 .如果真 (取数组成员数 (怪物坐标) > 0) ' 移动鼠标到怪物位置 鼠标_移动 (怪物坐标 [0], 怪物坐标 [1]) ' 点击鼠标左键攻击怪物 鼠标_点击 (#左键单击, ) ' 等待攻击动画完成 延迟 (1000) .如果真结束 ' 寻找物品 物品坐标 = g_大漠对象。找多图 (取运行目录 () + '\物品模板.bmp', 0.8, 0, 0, 800, 600) ' 如果找到物品,拾取物品 .如果真 (取数组成员数 (物品坐标) > 0) ' 移动鼠标到物品位置 鼠标_移动 (物品坐标 [0], 物品坐标 [1]) ' 点击鼠标左键拾取物品 鼠标_点击 (#左键单击, ) ' 等待拾取动画完成 延迟 (500) .如果真结束 ' 等待一段时间后再次执行 延迟 (2000) .判断循环尾 () ' 解绑游戏窗口 g_大漠对象。解绑窗口 () 调试输出 ('停止挂机!') .子程序 _btnStop_被单击 ' 停止挂机 g_是否继续挂机 = 假 btnStart.禁止 = #假 btnStop.禁止 = #真 .子程序 __启动窗口_将被销毁 ' 停止挂机 g_是否继续挂机 = 假 ' 销毁大漠对象 g_大漠对象。销毁 () 调试输出 ('程序结束!') 

11.6 自动化项目的通用开发流程

11.6.1 需求分析

明确自动化项目的目标、范围、功能和限制条件。

  • 目标:自动化项目要解决什么问题?
  • 范围:自动化项目要覆盖哪些场景?
  • 功能:自动化项目要实现哪些具体功能?
  • 限制条件:自动化项目有哪些时间、成本、技术等方面的限制条件?
11.6.2 目标软件分析

分析目标软件的窗口结构、控件属性、数据结构和操作流程。

  • 窗口结构:目标软件的窗口层级是什么?
  • 控件属性:目标控件的句柄、类名、标题、控件 ID 是什么?
  • 数据结构:目标软件的数据存储格式是什么?(如 Excel、Word、CSV、数据库)
  • 操作流程:用户手动操作目标软件的流程是什么?
11.6.3 技术选型

根据需求分析和目标软件分析,选择合适的技术方案和工具。

  • 技术方案:Windows GUI 自动化、OLE 自动化、HTTP 访问、图像识别、内存读取等
  • 工具:精易模块、大漠插件、WebBrowser 组件、Excel 支持库、Word 支持库等
11.6.4 核心功能开发

按照操作流程,分模块开发自动化项目的核心功能。

  • 窗口操作:找到目标窗口、激活目标窗口、最小化/最大化目标窗口
  • 控件操作:向目标控件发送文本、点击目标控件、获取目标控件的文本
  • 数据操作:读取数据、写入数据、导入数据、导出数据
  • 异常处理:处理网络错误、文件错误、控件未找到等异常
11.6.5 测试与优化

对自动化项目进行全面测试,并根据测试结果进行优化。

  • 功能测试:测试每个功能是否正常工作
  • 稳定性测试:测试自动化项目在长时间运行时是否稳定
  • 性能测试:测试自动化项目的运行速度和资源占用
  • 优化:优化代码结构、减少内存泄漏、提高运行速度
11.6.6 打包与发布

将自动化项目打包成安装包,并发布给用户使用。

  • 设置程序图标和版本信息
  • 打包依赖库
  • 制作安装包
  • 发布安装包

11.7 总结

✅ 本章详细介绍了易语言的四大核心自动化场景的全流程实战开发,包括办公自动化、网页数据抓取自动化、基础游戏脚本开发(仅用于学习),并总结了自动化项目的通用开发流程。

通过学习,我们掌握了:

  • Windows GUI 自动化的核心原理(窗口句柄查找、控件操作、消息发送)
  • 精易模块和大漠插件的安装与配置
  • OLE 自动化、HTTP 访问、HTML 解析、图像识别的使用方法
  • 自动化项目的测试、优化和打包方法

自动化技术可以帮助我们解放双手,提高工作效率,但我们必须遵守法律法规,不开发/传播违法违规的软件。

希望大家能够将所学的自动化技术应用到合法合规的场景中,不断提升自己的开发水平和工作效率。

目录

  1. 十一、易语言核心自动化场景实战:办公、测试、数据抓取与基础游戏脚本开发
  2. 11.1 引言
  3. 11.1.1 学习目标
  4. 11.1.2 学习重点
  5. 11.2 自动化开发核心技术基础
  6. 11.2.1 Windows GUI 自动化原理
  7. 获取窗口/控件信息的工具
  8. 11.2.2 精易模块自动化操作函数
  9. 11.2.3 大漠插件自动化操作函数
  10. 大漠插件的安装与配置
  11. 11.3 办公自动化实战
  12. 11.3.1 实战一:批量生成工资条
  13. 需求分析
  14. 核心技术
  15. 代码实现
  16. 11.3.2 实战二:自动发送会议通知邮件
  17. 需求分析
  18. 核心技术
  19. 代码实现
  20. 11.4 网页数据抓取自动化实战
  21. 11.4.1 实战一:自动抓取天气数据并写入 Excel
  22. 需求分析
  23. 核心技术
  24. 代码实现
  25. 11.4.2 实战二:自动抓取招聘网站的职位信息
  26. 需求分析
  27. 核心技术
  28. 代码实现
  29. 11.5 基础游戏脚本开发实战(⚠️仅用于学习)
  30. 11.5.1 实战:简单的窗口游戏挂机脚本
  31. 需求分析
  32. 核心技术
  33. 代码实现
  34. 11.6 自动化项目的通用开发流程
  35. 11.6.1 需求分析
  36. 11.6.2 目标软件分析
  37. 11.6.3 技术选型
  38. 11.6.4 核心功能开发
  39. 11.6.5 测试与优化
  40. 11.6.6 打包与发布
  41. 11.7 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 基于 LangGraph 构建多代理应用程序详解
  • TSDK 淘宝开放平台及登录爬虫 SDK
  • 开源大模型深度解析:LLaMA 3、Qwen 与 DeepSeek 技术对比
  • Stack-Chan 机器人入门指南:基于 M5Stack 的 JavaScript 驱动
  • 普通笔记本跑 Faster-Whisper:CPU 模式下模型选择指南
  • Python 开发常用库大全及分类介绍
  • 飞牛 NAS 原生 WebDAV 挂载 115 网盘配置指南
  • 前端开发指南:如何优雅管理 Import 语句避免满屏导入
  • Git 默认使用 Vim 及修改最近两次提交信息推送远程
  • AMD 显卡 llama.cpp Vulkan 后端兼容性与性能优化
  • Linux 上安装 PostgreSQL
  • ESP32 开源无人机系统设计与开发指南
  • FPGA 实现 MIPI 协议全解析与完整时序规范
  • AIGC 背景下图文内容社区数据指标体系构建指南
  • Transformer 架构详解:从 RNN 挑战到自注意力机制与词嵌入
  • Windows 下 PyCharm 配置 Anaconda 环境教程
  • Spring AI 框架入门与实战指南
  • LangBot:企业级即时通讯 AI 机器人平台介绍
  • 基于 AI 智能体快速完成 C 语言与前端实训项目实战
  • 链表在内存管理与缓存淘汰中的应用

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online