道无涯自用imguiPlus接口文档(窗口防截屏|防录屏)

关于本项目

ImGUI(即 Dear ImGui)是一个与平台无关的 C++ 轻量级跨平台图形界面库。我耗时半个月,将其完全内置到 AutojsPro 中,实现无缝一键调用,并对接了绝大部分常用接口。开发者可在 Autojs 中高度自由地自定义设计 ImGUI 界面。

目前该项目暂未对外开放,仅接受定制服务(交付完整成品软件)。

  • 定制价格1000
  • 详情:如有需求,可联系 道无涯 按需定制,具体可移步 软件|源码定制

设备是否必须具备Root权限

非必须,ImGUI 可以通过 ADB 授权替代 Root 权限。我已在非 Root 设备上测试,仅需授予 ADB 权限即可正常使用。


示例Demo

刚对接好后,就迫不及待地写了个Demo,效果是真tm的出奇的无敌好

王者秒换装:一个已实现的 Demo 示例,展示 ImGUI 在 AutojsPro 中的应用。




具体演示视频可以看下面的特性!

特性

  • 防截屏:防止界面被截图
  • 防录屏:防止界面被录制(这是手机实录效果,肉眼还是看得到悬浮窗的)
  • 触摸穿透:支持触摸事件穿透界面,悬浮窗不妨碍正常点击
  • 纯C点击:额外写了纯C点击,脚本点击与手滑动不冲突
  • 双向心跳验证:具备超强存活能力,永不被系统杀死

初始化ImGUI

该接口用于初始化 ImGUI,仅需调用一次即可。

类构造函数

ImguiPlus(context, params)

返回值

ImguiPlus 对象

参数

字段 类型 必须 说明
context context 上下文
params string[] 初始化参数数组,见下表

params 参数详情

字段 类型 必须 说明
title string 窗口标题
posX float 窗口初始位置 X
posY float 窗口初始位置 Y
width float 窗口宽度
height float 窗口高度
theme string 窗口主题,可选值:Dark, Light, Classic, Pink, Blue, ModernDark, CyanDusk, OrangeDark, CrystalClear, VibrantNight, PurpleDream
showCloseButton boolean 是否显示关闭按钮
transparent boolean 窗体是否透明
isWindowCollapsed boolean 是否收起窗体
fontSize float 窗口字体大小

更新ImGUI

该接口用于动态更新 ImGUI 窗口内容。

类方法

updateUI(String[] commands)

返回值

字符串或无返回值

参数

字段 类型 必须 说明
commands string[] 更新内容数组,每项为单独命令

关闭ImGUI

该接口用于关闭 ImGUI。

类方法

shutdown()

组件的增加相关

增加标题栏 (addTabBar)

用于添加标题栏。

参数

字段 类型 必须 说明
tabIds string[] 标题栏的标题数组
flags int ImGuiTabBarFlags,详见 ImGui 文档
defaultTabId string 默认展示的标题页标题

增加按钮 (addButton)

用于添加普通按钮。

参数

字段 类型 必须 说明
sameLine boolean 是否与上个组件同一行
tabId int 目标标题栏 ID(空则加到所有标题栏)
id string 按钮 ID
label string 按钮标题
width float 按钮宽度
height float 按钮高度
cornerRadius float 按钮圆角
posX float 按钮偏移位置 X
posY float 按钮偏移位置 Y
tooltip string 悬停时显示的提示文本

增加悬浮窗按钮 (addButtonEx)

用于添加独立于窗口的悬浮按钮。

参数

addButton 参数相同,见上表。

移除悬浮窗按钮 (removeButtonEx)

用于移除悬浮窗按钮。

参数

字段 类型 必须 说明
id string 按钮 ID

增加静态文本 (addText)

用于添加静态文本。

参数

字段 类型 必须 说明
tabId int 目标标题栏 ID(空则加到所有标题栏)
id string 文本 ID
text string 文本内容
width color 文本颜色
posX float 文本偏移位置 X
posY float 文本偏移位置 Y

增加输入框 (addInputText)

增加输入框。

参数

字段 类型 必须 说明
sameLine boolean 是否与上个组件同一行
tabId int 目标标题栏 ID(空则加到所有标题栏)
id string 输入框 ID
initialText string 默认的文本
width float 输入框宽度
textColor string 文本颜色
editable boolean 是否可编辑

增加多行输入框 (addInputTextMultiline)

增加多行输入框。

参数

字段 类型 必须 说明
sameLine boolean 是否与上个组件同一行
tabId int 目标标题栏 ID(空则加到所有标题栏)
id string 输入框 ID
initialText string 默认的文本
rows int 最大显示行数(超过则自动展示滑动条)

开启折叠条 (beginCollapsingHeader)

开启折叠条,在beginCollapsingHeader->endCollapsingHeader中间的组件都将被包含在此折叠条里

参数

字段 类型 必须 说明
label string 折叠条标题
tabId int 目标标题栏 ID(空则加到所有标题栏)
openByDefault boolean 是都默认展开

关闭折叠条 (endCollapsingHeader)

关闭折叠条

增加日志窗体 (addLogWindow)

增加日志窗体,用于显示日志,带滑动条,可清空和导出日志,使用appendLog追加的日志才可显示到这上面

参数

字段 类型 必须 说明
sameLine boolean 是否与上个组件同一行
tabId int 目标标题栏 ID(空则加到所有标题栏)
id string 日志 ID
width float 窗体宽度
height float 窗体高度

增加颜色采集器 (addColorPicker)

增加颜色采集器,用于采集颜色

参数

字段 类型 必须 说明
sameLine boolean 是否与上个组件同一行
tabId string 目标标题栏 ID(空则加到所有标题栏)
id string 颜色采集器 ID
r float 红色分量
g float 绿色分量
b float 蓝色分量
a float 透明度分量
flags int 颜色采集器标志,具体标志可查看ImGUI文档
tooltip string 悬停时显示的提示文本

增加分隔线 (addSeparator)

增加分隔线

参数

字段 类型 必须 说明
sameLine boolean 是否与上个组件同一行
tabId string 目标标题栏 ID(空则加到所有标题栏)

增加勾选框 (addCheckbox)

增加勾选框

参数

字段 类型 必须 说明
sameLine boolean 是否与上个组件同一行
tabId int 目标标题栏 ID(空则加到所有标题栏)
id string 勾选框 ID
label string 按钮标题
initialState boolean 勾选框默认状态
tooltip string 悬停时显示的提示文本

增加进度条 (addSlider)

增加进度条

参数

字段 类型 必须 说明
sameLine boolean 是否与上个组件同一行
tabId int 目标标题栏 ID(空则加到所有标题栏)
id string 进度条 ID
initialValue float 默认值
min float 最小值
max float 最大值
tooltip string 悬停时显示的提示文本

增加下拉框 (addComboBox)

增加下拉框

参数

字段 类型 必须 说明
sameLine boolean 是否与上个组件同一行
tabId int 目标标题栏 ID(空则加到所有标题栏)
id string 下拉框 ID
items string [] 所有的下拉项的数组
initialSelection int 默认选中项

增加单选按钮组 (addRadioButtonGroup)

增加单选按钮组

参数

字段 类型 必须 说明
sameLine boolean 是否与上个组件同一行
tabId int 目标标题栏 ID(空则加到所有标题栏)
id string 单选按钮组 ID
labels string [] 所有的单选项的数组
initialSelection int 默认选中项
horizontal boolean 是否水平显示

增加开关 (addSwitch)

增加开关

参数

字段 类型 必须 说明
sameLine boolean 是否与上个组件同一行
tabId int 目标标题栏 ID(空则加到所有标题栏)
id string 开关 ID
label string 开关显示的文本
initialState boolean 默认状态
activeColorStr string 开状态时的颜色(#rrggbb)
inactiveColorStr string 关状态时的颜色(#rrggbb)
tooltip string 悬停时显示的提示文本

增加弹窗 (addPopup)

增加弹窗,模拟安卓alert和confirm弹窗

参数

字段 类型 必须 说明
id string 弹窗 ID
title string 弹窗标题
content string 弹窗内容
positiveButton string 确认按钮文本
negativeButton string 取消按钮文本(为空时即不显示,代表alert)
buttonPosX float 按钮偏移X

增加选择弹窗 (addAlertChoicePopup)

增加选择弹窗,模拟安卓单选和多选弹窗

参数

字段 类型 必须 说明
id string 弹窗 ID
title string 弹窗标题
content string 弹窗内容
items string [] 可选择的所有项的数组
isSingle boolean 是否单选
defaultSelected int [] 默认选中项
positiveButton string 确认按钮文本
buttonPosX float 按钮偏移X

toast显示 (showToast)

toast显示,模拟安卓showToast

参数

字段 类型 必须 说明
text string 显示的文本
duration int 显示的时长(毫秒)
posX float 显示偏移X
posY float 显示偏移Y
fontSize float 显示的字体大小
cornerRadius float 显示的背景的圆角

增加帧率显示 (addFps)

增加帧率显示

参数

字段 类型 必须 说明
tabId int 目标标题栏 ID(空则加到所有标题栏)
id string 帧率 ID
threshold string 分界值,小于本值显示positiveColor,反之negativeColor
positiveColor string 颜色(#rrggbb)
negativeColor string 颜色(#rrggbb)
posX float 偏移X
posY float 偏移Y

增加表格 (addTable)

增加表格

参数

字段 类型 必须 说明
sameLine boolean 是否与上个组件同一行
tabId int 目标标题栏 ID(空则加到所有标题栏)
id string 表格 ID
headers string [] 表格头标题数组
data string [][] 表格数据二维数组

各组件的值获取与设置相关方法

追加日志 (appendLog)

追加日志到日志窗体,显示日志在日志窗体上

参数

字段 类型 必须 说明
id string 要追加的窗体日志 ID
log string 日志文本内容
typeOrColor string 日志类型(log,warn,info.debug)或者指定颜色(#rrggbb)

获取表格选中行 (getTableSelected)

获取表格选中行

返回值

字符串,选中行索引,多个选中行以,拼接

参数

字段 类型 必须 说明
id string 表格 ID

删除表格选中行 (deleteSelectedTableRows)

删除表格选中行

参数

字段 类型 必须 说明
id string 表格 ID

修改表格选中行 (updateSelectedTableRows)

修改表格选中行

参数

字段 类型 必须 说明
id string 表格 ID
newRowData string [] 要修改的新数据的数组,如果某列要保持原数据则放空即可

增加表格行数据 (addTableRow)

增加表格行数据

参数

字段 类型 必须 说明
id string 表格 ID
rowData string [] 表格行数据的数组

获取表格的行列数 (getTableDimensions)

获取表格的行列数

返回值

字符串,行数与列数,用,拼接

参数

字段 类型 必须 说明
id string 表格 ID

获取表格单元格的值 (getTableDimensions)

获取表格某个单元格的值

返回值

字符串,单元格的值,空字符串一般代表没有这个单元格

参数

字段 类型 必须 说明
id string 表格 ID
row int 行索引(从0计数)
col int 列索引(从0计数)

清空表格数据 (clearTable)

清空表格数据

参数

字段 类型 必须 说明
id string 表格 ID

获取单选按钮组选中项 (getRadioButtonSelected)

获取单选按钮组选中项

返回值

字符串,选中项索引

参数

字段 类型 必须 说明
id string 单选按钮组 ID

设置单选按钮组选中项 (setRadioButtonSelected)

设置单选按钮组选中项

参数

字段 类型 必须 说明
id string 单选按钮组 ID
index int 选中项索引

获取开关状态 (getSwitchState)

获取开关状态

返回值

字符串,true或者false

参数

字段 类型 必须 说明
id string 开关 ID

设置开关状态 (setSwitchState)

设置开关状态

参数

字段 类型 必须 说明
id string 开关 ID
state boolean 开关状态

获取勾选框状态 (getCheckboxState)

获取勾选框状态

返回值

字符串,true或者false

参数

字段 类型 必须 说明
id string 勾选框 ID

设置勾选框状态 (setCheckboxState)

设置勾选框状态

参数

字段 类型 必须 说明
id string 勾选框 ID
state boolean 勾选框状态

获取进度条的值 (getSliderValue)

获取进度条的值

返回值

字符串,进度条当前的值

参数

字段 类型 必须 说明
id string 进度条 ID

设置进度条的值 (setSliderValue)

设置进度条的值

参数

字段 类型 必须 说明
id string 进度条 ID
value float 进度条的值

获取下拉框的选中项 (getComboBoxSelected)

获取下拉框的值

返回值

字符串,选中项的索引

参数

字段 类型 必须 说明
id string 下拉框 ID

设置下拉框的选中项 (setComboBoxSelected)

设置进度条的值

参数

字段 类型 必须 说明
id string 下拉框 ID
index int 下拉框的选中项索引

获取颜色采集器的颜色值 (getColorPickerValue)

获取颜色采集器的颜色值

返回值

字符串,r、g、b、a,用,连接

参数

字段 类型 必须 说明
id string 颜色采集器 ID

获取输入框内容 (getInputText)

获取输入框内容

返回值

字符串,输入框的内容

参数

字段 类型 必须 说明
id string 输入框 ID

设置输入框内容 (setInputText)

设置输入框内容

参数

字段 类型 必须 说明
id string 输入框 ID
text string 要设置的文本

获取多行输入框内容 (getInputTextMultiline)

获取多行输入框内容

返回值

字符串,多行输入框的内容

参数

字段 类型 必须 说明
id string 多行输入框 ID

设置多行输入框内容 (setInputTextMultiline)

设置多行输入框内容

参数

字段 类型 必须 说明
id string 多行输入框 ID
text string 要设置的文本

各组件的回调事件

心跳验证 (onHeartbeatValidation)

字段 类型 返回说明与示例
id null
data null

窗体被收起或者展开 (onWindowCollapsed)

字段 类型 返回说明与示例
id null
data boolean true/false, 窗体是否被收起

窗口被拖动 (onWindowDragged)

字段 类型 返回说明与示例
id null
data string "100,100",窗体被拖动到的x和y坐标

窗口被关闭(onWindowClosed)

字段 类型 返回说明与示例
id null
data null

按钮被单击(onButtonClicked)

字段 类型 返回说明与示例
id string 按钮id
data null

按钮被长按(onButtonLongClicked)

字段 类型 返回说明与示例
id string 按钮id
data null

悬浮窗按钮被拖拽(onButtonDragged)

字段 类型 返回说明与示例
id string 悬浮窗按钮id
data string "100,100",悬浮窗按钮被拖动到的x和y坐标

输入框被点击(onInputClicked)

字段 类型 返回说明与示例
id string 输入框id
data null

输入框文本被改变(onInputTextChanged)

字段 类型 返回说明与示例
id string 输入框id
data string 输入框当前文本

日志被导出(onExportLogs)

字段 类型 返回说明与示例
id string 按钮id
data string 要导出的所有日志文本

日志被清空(onLogCleared)

字段 类型 返回说明与示例
id null
data null

颜色被改变(onColorChanged)

字段 类型 返回说明与示例
id string 颜色选择器id
data string r,g,b,a 以,相连的字符串

勾选框状态被改变(onCheckboxStateChanged)

字段 类型 返回说明与示例
id string 勾选框id
data boolean 当前勾选框状态

进度条被拖动(onSliderChanged)

字段 类型 返回说明与示例
id string 进度条id
data string 当前进度条的值

下拉框选择项被改变(onComboBoxSelected)

字段 类型 返回说明与示例
id string 下拉框id
data int 当前下拉框的选中项索引

单选按钮组选中项被改变(onRadioButtonSelected)

字段 类型 返回说明与示例
id string 单选按钮组id
data int 当前单选按钮组的选中项索引

开关状态被改变(onSwitchStateChanged)

字段 类型 返回说明与示例
id string 开关id
data boolean 当前开关状态

表格行被点击(onTableRowClicked)

字段 类型 返回说明与示例
id string 表格id
data string row(int)与selected(boolean)用,连接,某行的选中状态

表格行被删除(onTableRowsDeleted)

字段 类型 返回说明与示例
id string 表格id
data null

表格增加行(onTableRowAdded)

字段 类型 返回说明与示例
id string 表格id
data null

表格更新行(onTableRowsUpdated)

字段 类型 返回说明与示例
id string 表格id
data null

表格被清空(onTableCleared)

字段 类型 返回说明与示例
id string 表格id
data null

弹窗确定按钮被点击(onPopupOk)

字段 类型 返回说明与示例
id string 弹窗id
data null

弹窗取消按钮被点击(onPopupCancel)

字段 类型 返回说明与示例
id string 弹窗id
data null

选择弹窗按钮被点击(onAlertChoiceSelected)

字段 类型 返回说明与示例
id string 弹窗id
data string 所有项的选中状态以,连接:“true,false,true"

其它附加方法

纯C点击 (cppClick)

实现纯 C 触摸点击,支持手滑点击并存,互不干扰。

参数

字段 类型 必须 说明
x float 坐标 X
y float 坐标 Y
t float 点击时长

设置全局透明度 (setAlpha)

设置窗口全局透明度。

参数

字段 类型 必须 说明
alpha float 透明度值 (0-1)

设置窗体是否收起 (setWindowCollapsed)

设置窗体是否收起。

参数

字段 类型 必须 说明
collapsed boolean 是否收起

获取心跳 (getHeartbeatValidation)

用于检测 ImGUI 是否存活。

返回值

成功返回字符串 alive

参数

设置全局主题 (setTheme)

设置全局主题。

参数

字段 类型 必须 说明
themeName string 主题名称,可选值:Dark, Light, Classic, Pink, Blue, ModernDark, CyanDusk, OrangeDark, CrystalClear, VibrantNight, PurpleDream

设置窗口常见样式 (setStyleProperties)

设置窗口常见样式

参数

字段 类型 必须 说明
framePaddingX float 窗口内边距X
framePaddingY float 窗口内边距Y
itemSpacingX float 项目间距X
itemSpacingY float 项目间距Y
windowRounding float 窗口圆角
scrollbarSize float 滚动条宽度
grabMinSize float 滑动条宽度

作 者:道无涯
来 源:道无涯博客
链 接: https://www.daowuya.love/imguiplus/
版 权 声 明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议。文章版权归作者所有,未经允许请勿转载!


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇