# Jscm-Core-FrameWork **Repository Path**: SnailcatMall/Jscm-Core-FrameWork ## Basic Information - **Project Name**: Jscm-Core-FrameWork - **Description**: Jscm框架是一个基于Java JNI的Windows系统操作框架,提供了丰富的Windows API封装,包括窗口操作、进程线程管理、内存操作、注册表操作、热键驱动等功能。本框架集成了三大模块进行处理,参考了精易模块、超级模块、乐易模块的设计思想,为Java开发者提供了强大的Windows系统底层操作能力。 框架支持X86和X64平台,包含DD键鼠驱动、幽灵键鼠驱动等硬件抽象层功能,同时提供了 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.snailcatmall.com/ - **GVP Project**: No ## Statistics - **Stars**: 15 - **Forks**: 2 - **Created**: 2026-02-21 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: Jscm-Core框架, JNI开源框架 ## README # Jscm-Core — Java 系统级原生操作框架 (JNI 封装库) > **GroupID**: `com.scm` | **ArtifactID**: `Jscm-Core` | **Version**: `1.0-SNAPSHOT` > **JDK**: Java 8+ | **平台**: Windows 7+ (x86 / x64) | **构建**: Maven | 指标 | 数值 | |:---|:---| | Java 源文件数 | **312** | | 总代码行数 | **~113,559** | | JNI native 方法数 | **4,963** | | XCGUI 封装方法数 | **1,648** (29 个类) | | JadeView 封装方法数 | **98** (8 个类) | | Report_Table 封装方法数 | **2,842** (26 个类) | | Photoshop 自动化方法数 | **582** | --- ## 一、项目简介 Jscm-Core 是一个 **Java Native Interface (JNI) 封装框架**,通过配套的 `Jscm.dll` 原生动态链接库,将 Windows 系统级 API、XCGUI 炫彩界面库、JadeView WebView2 引擎、锐浪报表 Grid++、Adobe Photoshop COM 自动化等底层能力,暴露为 Java 可直接调用的静态方法集合。 ### 核心能力一览 | 领域 | 技术底层 | 封装方法数 | |:---|:---|:---| | Windows 系统 API | Win32 API (窗口/进程/线程/内存/注册表/句柄) | 400+ | | XCGUI 炫彩界面库 | Direct2D 渲染引擎,29 个控件类 | 1,648 | | JadeView WebView2 | Microsoft Edge WebView2 引擎 | 98 | | 锐浪报表 Grid++ | COM 报表引擎,26 个功能类 | 2,842 | | Adobe Photoshop | PowerShell COM → JavaScript 自动化 | 582 | | AI 集成 | Ollama / Coze / RunningHub 三大平台 | 50+ | | 键鼠硬件驱动 | DD / Ghost / Md 三种驱动方案 | 100+ | | 内存调试 | 内存读写 / 特征码搜索 / 硬件断点 / API Hook | 80+ | | 反汇编引擎 | CapStone 反汇编 | 10+ | | UI 组件引擎 | 流光边框 / 图像编辑器 / 视频背景 | 30+ | | 数据结构 & 枚举 | Tag 结构体 / 枚举常量 / 回调接口 | 150+ | --- ## 二、完整目录结构 ``` src/main/java/ │ ├── App.java # ★ 应用入口 & 使用示例 ├── META-INF/MANIFEST.MF # JAR 清单文件 │ └── com/scm/ │ ├── all/ # ════════ 平台无关模块 ════════ │ │ │ ├── AI/ # ┌─────────────────────────┐ │ │ │ # │ AI 集成模块 (35 文件) │ │ │ ├── ClaudeCode/ [15 files] # │ │ │ │ │ ├── ClaudeCodeToolkit.java # │ 主工具入口类 │ │ │ │ ├── ClaudeCodeToolkitWithSkills.java # │ 技能增强版 │ │ │ │ ├── client/ # │ │ │ │ │ │ └── OllamaClient.java # │ Ollama HTTP 客户端 │ │ │ │ ├── cloud/ # │ │ │ │ │ │ ├── CloudLLMClient.java # │ 云端 LLM 客户端 │ │ │ │ │ └── CloudLLMConfig.java # │ 云端配置 │ │ │ │ ├── config/ # │ │ │ │ │ │ ├── ConfigManager.java # │ 配置管理器 (.env) │ │ │ │ │ └── OllamaConfig.java # │ Ollama 配置模型 │ │ │ │ ├── model/ # │ │ │ │ │ │ ├── ChatRequest.java # │ 聊天请求体 │ │ │ │ │ ├── ChatResponse.java # │ 聊天响应体 │ │ │ │ │ └── Message.java # │ 消息模型 │ │ │ │ ├── skills/ # │ │ │ │ │ │ ├── Skill.java # │ 技能接口定义 │ │ │ │ │ ├── SkillManager.java # │ 技能注册与调度 │ │ │ │ │ └── CloudReviewSkill.java # │ 云审查技能实现 │ │ │ │ └── utils/ # │ │ │ │ │ ├── ImageProcessor.java # │ 图片处理器 │ │ │ │ └── UrlHandler.java # │ URL 处理器 │ │ │ │ # │ │ │ │ ├── CozeAI/ [3 files] # │ Coze 工作流平台 │ │ │ │ ├── CoZeWorkflowClient.java # │ 主客户端 (文件上传等) │ │ │ │ ├── pfunc/ # │ │ │ │ │ │ └── ProgressCallback.java # │ 进度回调接口 │ │ │ │ └── strutc/ # │ │ │ │ │ └── WorkflowProgress.java # │ 进度数据结构 │ │ │ │ # │ │ │ │ └── RunNingHubAI/ [17 files] # │ RunningHub AI 平台 │ │ │ ├── RunningHubClient.java # │ 主客户端 (Builder模式) │ │ │ ├── api/ # │ │ │ │ │ ├── WorkflowApi.java # │ 工作流 API │ │ │ │ ├── WebappApi.java # │ Web 应用 API │ │ │ │ ├── QuickAIAppApi.java # │ 快速 AI 应用 API │ │ │ │ ├── StandardModelApi.java # │ 标准模型 API (多模态) │ │ │ │ └── ResourceApi.java # │ 资源管理 API │ │ │ ├── config/ # │ │ │ │ │ └── RunningHubConfig.java # │ 配置类 │ │ │ ├── exception/ # │ │ │ │ │ └── RunningHubException.java # │ 异常类 │ │ │ ├── model/ # │ │ │ │ │ ├── NodeInfo.java # │ 节点信息 │ │ │ │ ├── TaskCreateResponse.java # │ 创建任务响应 │ │ │ │ ├── TaskOutputResponse.java # │ 任务输出响应 │ │ │ │ ├── UploadResponse.java # │ 上传响应 │ │ │ │ ├── WebappDemoResponse.java # │ Webapp 响应 │ │ │ │ ├── WorkflowJsonResponse.java # │ 工作流 JSON │ │ │ │ └── enums/ # │ │ │ │ │ └── TaskStatus.java # │ 任务状态枚举 │ │ │ └── util/ # │ │ │ │ ├── HttpUtil.java # │ HTTP 工具类 │ │ │ └── TaskPoller.java # │ 任务轮询器 │ │ │ # └─────────────────────────┘ │ │ │ ├── component/ # ┌─────────────────────────┐ │ │ ├── AnimatedBorderEngine.java # │ UI 组件引擎 (3 文件) │ │ │ ├── ImageEditorTool.java # │ │ │ │ └── VideoBackgroundEngine.java # │ 流光边框动画引擎 │ │ │ # │ 图像编辑工具 (贴纸等) │ │ │ # │ 视频背景引擎 (FFmpeg) │ │ │ # └─────────────────────────┘ │ │ │ ├── export/ # ┌─────────────────────────┐ │ │ │ # │ 核心导出模块 │ │ │ │ # │ (总 91+ 文件) │ │ │ ├── ModuleOperationUtilsJNI.java # │ │ │ │ │ # │ ★ JNI 总入口 │ │ │ │ # │ ~4,963 native 方法 │ │ │ │ # │ DLL 加载/架构检测 │ │ │ │ # │ │ │ │ ├── WindowOperationUtils.java # │ 窗口操作封装 (30+ 方法)│ │ │ ├── ProcessAndThreadUtils.java # │ 进程线程操作 │ │ │ ├── SystemUtils.java # │ 系统工具集 │ │ │ ├── ByteUtils.java # │ 字节编码转换 │ │ │ ├── ColorUtils.java # │ 颜色处理工具 │ │ │ ├── IniConfigurationOperationUtils.java # │ INI 配置文件读写 │ │ │ ├── PathFileJSCM.java # │ DLL 路径管理 │ │ │ ├── URLDateTimeUtils.java # │ URL/日期时间工具 │ │ │ ├── WebDriverAutoJsonUtils.java # │ WebDriver 自动化工具 │ │ │ ├── OverrideMethodUtils.java # │ 方法覆盖工具 │ │ │ │ # │ │ │ │ ├── XC_GUI/ [29 files] # │ ── XCGUI 炫彩界面 ── │ │ │ │ ├── XCGUI_Window.java [149方法] # │ 窗口管理 │ │ │ │ ├── XCGUI_Core.java [120方法] # │ 核心初始化 & 工具 │ │ │ │ ├── XCGUI_Edit.java [119方法] # │ 编辑框 │ │ │ │ ├── XCGUI_Element.java [116方法] # │ 通用元素操作 │ │ │ │ ├── XCGUI_Draw.java [114方法] # │ 绘图引擎 │ │ │ │ ├── XCGUI_List.java [111方法] # │ 列表控件 │ │ │ │ ├── XCGUI_Adapter.java [107方法] # │ 数据适配器 │ │ │ │ ├── XCGUI_Image.java [107方法] # │ 图像操作 │ │ │ │ ├── XCGUI_ListView.java [82方法] # │ 列表视图 │ │ │ │ ├── XCGUI_ListBox.java [78方法] # │ 列表框 │ │ │ │ ├── XCGUI_Tree.java [69方法] # │ 树形控件 │ │ │ │ ├── XCGUI_Shape.java [63方法] # │ 形状控件 │ │ │ │ ├── XCGUI_ComboBox.java [52方法] # │ 组合框 │ │ │ │ ├── XCGUI_Menu.java [46方法] # │ 菜单 │ │ │ │ ├── XCGUI_Animation.java [45方法] # │ 动画引擎 │ │ │ │ ├── XCGUI_Background.java [44方法] # │ 背景对象 │ │ │ │ ├── XCGUI_ScrollView.java [28方法] # │ 滚动视图 │ │ │ │ ├── XCGUI_TabBar.java [26方法] # │ 标签栏 │ │ │ │ ├── XCGUI_Button.java [26方法] # │ 按钮 │ │ │ │ ├── XCGUI_Layout.java [22方法] # │ 布局管理 │ │ │ │ ├── XCGUI_Pane.java [22方法] # │ 面板/分组框 │ │ │ │ ├── XCGUI_Table.java [21方法] # │ 表格 │ │ │ │ ├── XCGUI_Font.java [20方法] # │ 字体 │ │ │ │ ├── XCGUI_ScrollBar.java [18方法] # │ 滚动条 │ │ │ │ ├── XCGUI_DateTime.java [18方法] # │ 日期时间选择器 │ │ │ │ ├── XCGUI_ToolBar.java [11方法] # │ 工具栏 │ │ │ │ ├── XCGUI_ProgressBar.java [10方法] # │ 进度条 │ │ │ │ └── XCGUI_PropertyGrid.java [4方法] # │ 属性网格 │ │ │ │ # │ │ │ │ ├── JadeViewGUI/ [8 files] # │ ── JadeView WebView2 ─│ │ │ │ ├── JadeView_Window.java [30方法] # │ 窗口管理 (30+ 参数) │ │ │ │ ├── JadeView_System.java [25方法] # │ 系统工具 & 应用包 │ │ │ │ ├── JadeView_Dialog.java [11方法] # │ 对话框 (通知/文件) │ │ │ │ ├── JadeView_Resource.java [10方法] # │ 资源 & 协议注册 │ │ │ │ ├── JadeView_Core.java [7方法] # │ 核心初始化 & 生命周期 │ │ │ │ ├── JadeView_Tray.java [6方法] # │ 系统托盘 │ │ │ │ ├── JadeView_Menu.java [5方法] # │ 右键菜单 │ │ │ │ └── JadeView_IPC.java [4方法] # │ IPC 跨进程通信 │ │ │ │ # │ │ │ │ ├── Report_Table/ [26 files] # │ ── 锐浪报表 Grid++ ──│ │ │ │ ├── Report_Table.java [298方法] # │ 报表主表 (COM 初始化) │ │ │ │ ├── Report_Chart.java [208方法] # │ 图表 │ │ │ │ ├── Report_Column.java [206方法] # │ 列对象 │ │ │ │ ├── Report_Export.java [172方法] # │ 导出 (PDF/Excel等) │ │ │ │ ├── Report_TableSelect.java [147方法] # │ 选择集 │ │ │ │ ├── Report_Control.java [132方法] # │ 报表控件 │ │ │ │ ├── Report_TextBox.java [130方法] # │ 文本框 │ │ │ │ ├── Report_Section.java [123方法] # │ 节/段落 │ │ │ │ ├── Report_Graphics.java [123方法] # │ 图形绘制 │ │ │ │ ├── Report_Printer.java [120方法] # │ 打印机管理 │ │ │ │ ├── Report_Group.java [113方法] # │ 分组 │ │ │ │ ├── Report_Utility.java [99方法] # │ 工具方法 │ │ │ │ ├── Report_TableDesign.java [98方法] # │ 设计器 │ │ │ │ ├── Report_Field.java [96方法] # │ 字段 │ │ │ │ ├── Report_DetailGrid.java [94方法] # │ 明细网格 │ │ │ │ ├── Report_FreeGrid.java [84方法] # │ 自由网格 │ │ │ │ ├── Report_Image.java [79方法] # │ 图像对象 │ │ │ │ ├── Report_Recordset.java [69方法] # │ 记录集 (数据绑定) │ │ │ │ ├── Report_Parameter.java [69方法] # │ 参数 │ │ │ │ ├── Report_TablePrint.java [67方法] # │ 打印控制 │ │ │ │ ├── Report_Font.java [64方法] # │ 字体对象 │ │ │ │ ├── Report_CrossTab.java [60方法] # │ 交叉表 │ │ │ │ ├── Report_CellBase.java [48方法] # │ 单元格基类 │ │ │ │ ├── Report_Barcode.java [48方法] # │ 条形码 │ │ │ │ ├── Report_Border.java [24方法] # │ 边框 │ │ │ │ └── Report_BinaryObject.java [20方法] # │ 二进制对象 │ │ │ │ # │ │ │ │ ├── EmailUtils/ # │ ── 邮件子系统 ────── │ │ │ │ ├── EMailUtils.java # │ IMAP/SMTP 核心工具 │ │ │ │ └── CallBack.java # │ 邮件回调接口 │ │ │ │ # │ │ │ │ ├── VerificationCodeUtils/ # │ ── 验证码 ────────── │ │ │ │ └── CaptchaGenerator.java # │ 验证码生成器 │ │ │ │ # │ │ │ │ ├── capstone/ # │ ── 反汇编引擎 ────── │ │ │ │ ├── CapStone.java # │ CapStone 封装入口 │ │ │ │ └── constant/ # │ │ │ │ │ ├── TAG_CS_ARCH.java # │ 架构常量 │ │ │ │ ├── TAG_CS_ERR.java # │ 错误码常量 │ │ │ │ ├── TAG_CS_MODE.java # │ 模式常量 │ │ │ │ ├── TAG_CS_OPT_TYPE.java # │ 选项类型常量 │ │ │ │ └── TAG_CS_OPT_VALUE.java # │ 选项值常量 │ │ │ │ # │ │ │ │ ├── hotkey/ # │ ── 键鼠硬件驱动 ──── │ │ │ │ ├── DdDriver.java # │ DD 虚拟键鼠 │ │ │ │ ├── GhostDriver.java # │ 幽灵硬件键鼠 │ │ │ │ ├── MdDriver.java # │ Md 硬件键鼠 │ │ │ │ └── install/ # │ │ │ │ │ ├── InstallDDDriver.java # │ DD 驱动安装/释放 │ │ │ │ ├── InstallGhostDriver.java # │ 幽灵驱动安装/释放 │ │ │ │ └── InstallMdDriver.java # │ Md 驱动安装/释放 │ │ │ │ # │ │ │ │ └── powerUtils/ # │ ── 高级工具/脚本 ──── │ │ │ ├── PowerShell.java # │ PowerShell 命令执行 │ │ │ ├── CommandShell.java # │ CMD 命令执行 │ │ │ └── adobe/ # │ │ │ │ ├── PhotoshopTool.java [582方法] # │ ★ PS 全功能工具类 │ │ │ ├── PhotoshopJS.java # │ PS JavaScript 执行器 │ │ │ └── Tools/ # │ │ │ │ ├── PhotoshopSocket.java # │ PS Socket 通信 │ │ │ ├── Protocol.java # │ 通信协议定义 │ │ │ └── encryptDecrypt.java # │ 加解密工具 │ │ │ # └─────────────────────────┘ │ │ │ ├── pfunc/ # ┌─────────────────────────┐ │ │ │ # │ 回调函数接口 (47文件) │ │ │ ├── IpcCallback.java # │ JadeView IPC 回调 │ │ │ ├── IpcHandlerCallback.java # │ IPC 处理器回调 │ │ │ ├── JscmCallBack.java # │ 通用回调 │ │ │ ├── MemoryCallBack.java # │ 内存搜索回调 │ │ │ ├── ModuleCallBack.java # │ 模块枚举回调 │ │ │ ├── WindowEventCallBack.java # │ 窗口事件回调 │ │ │ ├── XEleEventCallBack.java # │ XC 元素事件回调 │ │ │ ├── ThreadUICallBack.java # │ 线程 UI 更新回调 │ │ │ ├── BreakpointCallBackX64.java # │ 64 位硬件断点回调 │ │ │ ├── BreakpointCallBackX86.java # │ 32 位硬件断点回调 │ │ │ ├── WebChromeDriverCallBack.java # │ Chrome 驱动回调 │ │ │ ├── KeyCodeCallBack.java # │ 键码回调 │ │ │ ├── ResponseEventCallBack.java # │ 响应事件回调 │ │ │ ├── ResponseEventCallBackRunnable.java # │ 响应事件(Runnable) │ │ │ ├── ResponseEventCallTowBackRunnable.java # │ 响应事件2(Runnable) │ │ │ ├── TokenCall.java # │ 令牌回调 │ │ │ ├── PstyleCall.java # │ 样式回调 │ │ │ ├── pItemCall.java # │ 项回调 │ │ │ ├── pArrayCallBack.java # │ 数组回调 │ │ │ ├── pCallfunLoadFileCallBack.java # │ 文件加载回调 │ │ │ ├── ByteIndexCallBack.java # │ 字节索引回调 │ │ │ ├── ByteArraysToByte.java # │ 字节数组合并 │ │ │ ├── TagFunAnimationItem.java # │ 动画项回调 │ │ │ ├── TagPFunAnimation.java # │ 动画函数回调 │ │ │ ├── TagThreadInfo.java # │ 线程信息回调 │ │ │ ├── Tag_cs_insnCallBack.java # │ 反汇编指令回调 │ │ │ ├── SwingJFrameInfo.java # │ Swing JFrame 信息 │ │ │ ├── JadeViewMsgBox.java # │ JadeView 对话框回调 │ │ │ ├── ServerBreakpointJniFunction.java # │ 服务端断点 JNI │ │ │ ├── XC_LoadLayoutCallBack.java # │ XC 布局加载回调 │ │ │ ├── XC_SetThreadCode.java # │ XC 线程代码回调 │ │ │ ├── WindowSetGraduallyHideShowCallBack.java # │ 渐变显隐回调 │ │ │ ├── CGridppReportEventHandler.java # │ Grid++ 报表事件 │ │ │ ├── CGRDesignerEventHandler.java # │ Grid++ 设计器事件 │ │ │ ├── CGRDisplayViewerEventHandler.java # │ Grid++ 显示查看器 │ │ │ ├── CGRPrintViewerEventHandler.java # │ Grid++ 打印查看器 │ │ │ ├── NtQueryAllProcessInfoCallBackProcess.java # │ NtQuery 进程信息 │ │ │ ├── NtQueryAllProcessInfoCallBackThread.java # │ NtQuery 线程信息 │ │ │ │ # │ │ │ │ └── Nonvirtual/ [10 files] # │ ── 非虚回调变体 ──── │ │ │ ├── WindowEventCallBack_Nonvirtual.java # │ (避免 JNI 虚函数 │ │ │ ├── XEleEventCallBack_Nonvirtual.java # │ 调用开销的优化版 │ │ │ ├── ThreadUICallBack_Nonvirtual.java # │ 功能与原接口一致) │ │ │ ├── PstyleCall_Nonvirtual.java # │ │ │ │ ├── pItemCall_Nonvirtual.java # │ │ │ │ ├── pArrayCallBack_Nonvirtual.java # │ │ │ │ ├── TagFunAnimationItem_Nonvirtual.java # │ │ │ │ ├── TagPFunAnimation_Nonvirtual.java # │ │ │ │ ├── TagListBoxItemInfo_Nonvirtual.java # │ │ │ │ └── pCallfunLoadFileCallBack_Nonvirtual.java# │ │ │ │ # └─────────────────────────┘ │ │ │ └── struct/ # ┌─────────────────────────┐ │ │ # │ 数据结构模块 │ │ ├── Enum/ # │ 75+ 枚举常量文件 │ │ │ ├── JadeView_Enum/ # │ │ │ │ │ ├── JadeViewCrashCode.java # │ JadeView 崩溃码 │ │ │ │ └── JadeViewEvent_Enum.java # │ JadeView 事件枚举 │ │ │ ├── ReportGrid_Enum/ # │ │ │ │ │ └── GREnums.java # │ Grid++ 报表枚举 │ │ │ └── XC_Enum/ (72 个枚举文件) # │ │ │ │ ├── WindowStyle.java # │ 窗口样式 │ │ │ ├── WindowStateFlag.java # │ 窗口状态标志 │ │ │ ├── WindowTransparent.java # │ 窗口透明度 │ │ │ ├── WindowPosition.java # │ 窗口位置 │ │ │ ├── WindowID.java # │ 窗口 ID │ │ │ ├── WindowsStyles.java # │ Windows 样式 │ │ │ ├── WindowsCursor.java # │ Windows 光标 │ │ │ ├── ButtonState.java # │ 按钮状态 │ │ │ ├── ButtonStateFlag.java # │ 按钮状态标志 │ │ │ ├── ButtonIconAlign.java # │ 按钮图标对齐 │ │ │ ├── ButtonIconAlignment.java # │ 按钮图标对齐(扩展) │ │ │ ├── ComboBoxState.java # │ 组合框状态 │ │ │ ├── ComboBoxStateFlag.java # │ 组合框状态标志 │ │ │ ├── EditType.java # │ 编辑框类型 │ │ │ ├── EditStyleType.java # │ 编辑框样式类型 │ │ │ ├── EditTextAlignFlag.java # │ 编辑框文本对齐 │ │ │ ├── ListBoxStateFlag.java # │ 列表框状态标志 │ │ │ ├── ListViewStateFlag.java # │ 列表视图状态标志 │ │ │ ├── ListStateFlag.java # │ 列表状态标志 │ │ │ ├── ListDrawItemBkFlag.java # │ 列表项背景标志 │ │ │ ├── ListHeaderStateFlag.java # │ 列表头状态标志 │ │ │ ├── ListItemState.java # │ 列表项状态 │ │ │ ├── ListItemTempType.java # │ 列表项模板类型 │ │ │ ├── TreeStateFlag.java # │ 树形控件状态标志 │ │ │ ├── LayoutAlign.java # │ 布局对齐方式 │ │ │ ├── LayoutAlignAxis.java # │ 布局对齐轴 │ │ │ ├── LayoutSize.java # │ 布局尺寸 │ │ │ ├── LayoutStateFlag.java # │ 布局状态标志 │ │ │ ├── PaneState.java # │ 面板状态 │ │ │ ├── PaneStateFlag.java # │ 面板状态标志 │ │ │ ├── PaneAlign.java # │ 面板对齐 │ │ │ ├── D2D1AlphaMode.java # │ D2D1 透明度模式 │ │ │ ├── D2D1FeatureLevel.java # │ D2D1 功能级别 │ │ │ ├── D2D1RenderTargetType.java # │ D2D1 渲染目标类型 │ │ │ ├── D2D1RenderTargetUsage.java # │ D2D1 渲染目标用途 │ │ │ ├── DXGIFormat.java # │ DXGI 像素格式 │ │ │ ├── XcObjectType.java # │ XC 对象类型 │ │ │ ├── XcObjectTypeEx.java # │ XC 对象类型(扩展) │ │ │ ├── XcObjectStyle.java # │ XC 对象样式 │ │ │ ├── XcID.java # │ XC ID 定义 │ │ │ ├── XcDWriteRenderingMode.java # │ DWrite 渲染模式 │ │ │ ├── ImageDrawType.java # │ 图像绘制类型 │ │ │ ├── FontStyle.java # │ 字体样式 │ │ │ ├── AnimationMove.java # │ 动画移动类型 │ │ │ ├── EaseType.java # │ 缓动类型 │ │ │ ├── EaseFlag.java # │ 缓动标志 │ │ │ ├── BreakpointType.java # │ 断点类型 │ │ │ ├── SetWindowPosFlags.java # │ SetWindowPos 标志 │ │ │ ├── AdjustLayout.java # │ 调整布局标志 │ │ │ ├── ZOrder.java # │ Z 序标志 │ │ │ └── ... (更多枚举常量) # │ │ │ │ # │ │ │ ├── JadeView_struct/ [6 files] # │ ── JadeView 结构体 ──│ │ │ ├── WebViewWindowOptions.java # │ WebView 窗口选项 │ │ │ ├── WebViewSettings.java # │ WebView 运行设置 │ │ │ ├── FileDialogParams.java # │ 文件对话框参数 │ │ │ ├── MessageBoxParams.java # │ 消息框参数 │ │ │ ├── NotificationParams.java # │ 系统通知参数 │ │ │ └── TrayMenuItemDesc.java # │ 托盘菜单项描述 │ │ │ # │ │ │ └── Tag*.java [38 files] # │ ── 基础数据结构 ──── │ │ ├── TagPoint.java (int x, y) # │ 整数坐标点 │ │ ├── TagPointF.java (float x, y) # │ 单精度坐标点 │ │ ├── TagPointD.java (double x, y) # │ 双精度坐标点 │ │ ├── TagRect.java (left,top,right,btm)# │ 矩形区域 │ │ ├── TagRectF.java (float 矩形) # │ 浮点矩形 │ │ ├── TagRectSize.java (矩形尺寸) # │ 矩形尺寸 │ │ ├── TagSize.java (width, height) # │ 宽高尺寸 │ │ ├── TagPosition.java (x, y 位置) # │ 位置 │ │ ├── TagBorderSize.java (边框四边尺寸) # │ 边框尺寸 │ │ ├── TagPadDingSize.java (内边距) # │ 内边距 │ │ ├── TagMarginSize_.java (外边距) # │ 外边距 │ │ ├── TagWinInfo.java (窗口信息) # │ 窗口信息 │ │ ├── TagMyWindwInfo.java (自定义窗口信息) # │ 自定义窗口信息 │ │ ├── TagProcessenTry32.java (进程快照) # │ 进程快照信息 │ │ ├── TagThreadEntry32.java (线程快照) # │ 线程快照信息 │ │ ├── TagModuleenTry32.java (32位模块快照) # │ 32 位模块快照 │ │ ├── TagModuleenTryX64.java (64位模块快照) # │ 64 位模块快照 │ │ ├── TagModuleenTryX86.java (32位模块快照) # │ 32 位模块快照(变体) │ │ ├── TagMemoryDataX64.java (64位内存数据) # │ 64 位内存数据块 │ │ ├── TagMemoryDataX86.java (32位内存数据) # │ 32 位内存数据块 │ │ ├── TagPmemory_Basic_InfoRmationX64.java # │ 64 位内存页信息 │ │ ├── TagPmemory_Basic_InfoRmationX86.java # │ 32 位内存页信息 │ │ ├── TagINPUT.java (输入事件) # │ Windows INPUT 结构 │ │ ├── TagFontInfo.java (字体信息) # │ 字体信息 │ │ ├── TagLOGFONTW.java (逻辑字体) # │ LOGFONTW 结构 │ │ ├── TagHotKeyInfoTow.java (热键信息2) # │ 热键信息(二级) │ │ ├── TagHotKeyInfoThree.java(热键信息3) # │ 热键信息(三级) │ │ ├── TagTokenPrivileges.java(令牌权限) # │ 令牌权限信息 │ │ ├── TagLuid.java (LUID) # │ 本地唯一标识符 │ │ ├── TagRegisTryGroupInfo.java(注册表组) # │ 注册表组信息 │ │ ├── TagListBoxItemInfo.java (列表框项) # │ 列表框项信息 │ │ ├── TagListViewItemId.java (列表视图项ID) # │ 列表视图项 ID │ │ ├── TagEditStyleInfo.java (编辑框样式) # │ 编辑框样式信息 │ │ ├── TagEditor_color_.java (编辑器颜色) # │ 编辑器颜色 │ │ ├── TagMonthCalItem.java (月历项) # │ 月历控件项 │ │ ├── TagNotifyMsgSkin.java (通知皮肤) # │ 通知消息皮肤 │ │ ├── TagIntTable.java (整数表) # │ 整数查找表 │ │ ├── Tag_edit_data_copy.java (编辑数据) # │ 编辑数据拷贝 │ │ └── Tag_edit_data_copy_style.java(编辑样式) # │ 编辑数据样式拷贝 │ │ # └─────────────────────────┘ │ ├── x64/ # ┌─────────────────────────┐ │ └── export/ [4 files] # │ 64 位专用模块 │ │ ├── MemoryOperationUtilsX64.java # │ 64 位内存读写/搜索 │ │ ├── RegistryOperationUtilsX64.java # │ 64 位注册表操作 │ │ ├── DebugBreakPointX64.java # │ 64 位硬件断点 │ │ └── ApiHookOperationUtilsX64.java # │ 64 位 API Hook │ │ # └─────────────────────────┘ │ └── x86/ # ┌─────────────────────────┐ └── export/ [4 files] # │ 32 位专用模块 │ ├── MemoryOperationUtilsX86.java # │ 32 位内存读写/搜索 │ ├── RegistryOperationUtilsX86.java # │ 32 位注册表操作 │ ├── DebugBreakPointX86.java # │ 32 位硬件断点 │ └── ApiHookOperationUtilsX86.java # │ 32 位 API Hook │ # └─────────────────────────┘ ``` --- ## 三、系统架构 ``` ┌─────────────────────────┐ │ App.java (入口层) │ └────────────┬────────────┘ │ 调用 ┌──────────────────────────┼──────────────────────────┐ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌───────────────────┐ ┌──────────────────┐ │ AI 集成层 │ │ 业务组件层 │ │ 高级工具层 │ │ ───────── │ │ ───────── │ │ ───────── │ │ ClaudeCode │ │ AnimatedBorder │ │ PhotoshopTool │ │ CozeAI │ │ ImageEditorTool │ │ PhotoshopJS │ │ RunNingHubAI │ │ VideoBackground │ │ PowerShell │ └────────┬────────┘ └────────┬──────────┘ │ CommandShell │ │ │ │ EMailUtils │ │ │ │ CaptchaGenerator│ │ │ │ CapStone │ ▼ ▼ └────────┬─────────┘ ┌──────────────────────────────────────────────────────────────────────┐ │ 高级封装层 (High-Level Wrappers) │ │ │ │ XC_GUI (29类/1648方法) JadeViewGUI (8类/98方法) │ │ Report_Table (26类/2842方法) │ │ WindowOperationUtils │ ProcessAndThreadUtils │ SystemUtils │ │ ByteUtils │ ColorUtils │ IniConfig │ PathFileJSCM │ │ DdDriver │ GhostDriver │ MdDriver │ WebDriverAutoJson │ └─────────────────────────────────┬────────────────────────────────────┘ │ 调用 ▼ ┌──────────────────────────────────────────────────────────────────────┐ │ 基础设施层 (Infrastructure) │ │ │ │ ┌──────────────────────┐ ┌──────────┐ ┌──────────────────────┐ │ │ │ ModuleOperationUtils │ │ pfunc │ │ struct │ │ │ │ JNI.java │ │ 回调接口 │ │ 数据结构 & 枚举 │ │ │ │ (4,963 native 方法) │ │ (47接口) │ │ (75+枚举, 44+结构) │ │ │ └──────────┬───────────┘ └──────────┘ └──────────────────────┘ │ └─────────────┼────────────────────────────────────────────────────────┘ │ System.load("Jscm.dll") ▼ ┌──────────────────────────────────────────────────────────────────────┐ │ Jscm.dll (原生 C/C++ 动态链接库) │ │ │ │ x86 (32位) x64 (64位) │ │ ┌─────────────┬─────────────┐ ┌─────────────┬─────────────┐ │ │ │ XCGUI 引擎 │ Win32 API │ │ XCGUI 引擎 │ Win32 API │ │ │ │ JadeView │ CapStone │ │ JadeView │ CapStone │ │ │ │ Grid++ │ DD/Ghost/Md │ │ Grid++ │ DD/Ghost/Md │ │ │ └─────────────┴─────────────┘ └─────────────┴─────────────┘ │ └──────────────────────────────────────────────────────────────────────┘ ``` --- ## 四、模块详解 --- ### 4.1 ModuleOperationUtilsJNI — JNI 总入口 > **文件**: `com/scm/all/export/ModuleOperationUtilsJNI.java` > **规模**: ~4,963 行 · 包含全部 `native` 方法声明 > **职责**: DLL 加载、系统架构检测、所有原生 API 的 Java 侧入口 #### DLL 加载机制 ```java static { if (systemIs32()) { System.load(tileDir() + "Jscm.dll"); } if (systemIs64()) { System.load(tileDir() + "Jscm.dll"); } } ``` 通过 `PathFileJSCM` 配置 DLL 搜索路径,自动检测 `sun.arch.data.model` 判断 32/64 位。 #### native 方法分类总览 | 分类 | 代表方法 | 说明 | |:---|:---|:---| | **窗口操作** | `FindWindowW`, `ShowWindow`, `SetWindowPos`, `SendMessageW` | Win32 窗口 API | | **进程线程** | `CreateToolhelp32Snapshot`, `OpenProcess`, `CreateRemoteThread` | 进程/线程管理 | | **内存操作** | `ReadProcessMemory`, `WriteProcessMemory`, `VirtualQueryEx` | 跨进程内存读写 | | **XCGUI** | `XInitXCGUI`, `XWnd_Create`, `XBtn_Create`, `XRunXCGUI` | 炫彩 UI 全量封装 | | **JadeView** | `JadeView_Init`, `JadeView_Create_Webview_Window_`, `JadeView_Subscribe_On` | WebView2 引擎 | | **Report_Table** | `report_Table_SetComPointer`, `report_Chart_SetChart3D` | 锐浪报表 COM | | **键鼠驱动** | `DDBtn`, `DDMov`, `M_Delay`, `GetDeviceListByModel` | DD/Ghost/Md 驱动 | | **反汇编** | `CapStone_cs_open`, `CapStone_cs_disasm`, `CapStone_cs_free` | CapStone 引擎 | | **硬件断点** | `RunHardwareBreakpointX86/X64`, `CallBack_DataX86/X64` | 硬件调试断点 | | **模块枚举** | `Module32FirstW`, `Module32NextW`, `GetModuleHandleW` | DLL 模块遍历 | | **注册表** | `RegOpenKeyExW`, `RegSetValueExW`, `RegDeleteKeyW` | 注册表 CRUD | --- ### 4.2 XC_GUI — XCGUI 炫彩界面库封装 > **包**: `com.scm.all.export.XC_GUI` > **规模**: 29 个类 · 共 **1,648** 个封装方法 > **渲染引擎**: Direct2D (D2D1) > **设计模式**: 每个类对应一类 UI 控件,所有方法均为 `public static` #### 类方法数统计 | 类名 | 方法数 | 功能说明 | |:---|:---|:---| | `XCGUI_Window` | 149 | 窗口创建/显示/调整/消息循环 | | `XCGUI_Core` | 120 | 初始化/退出/布局加载/全局设置 | | `XCGUI_Edit` | 119 | 编辑框/富文本编辑器 | | `XCGUI_Element` | 116 | 通用元素操作(所有控件基类方法) | | `XCGUI_Draw` | 114 | 绘图引擎(画笔/画刷/路径/渐变) | | `XCGUI_List` | 111 | 列表控件(Header/Group) | | `XCGUI_Adapter` | 107 | 数据适配器(ListView/TreeView 数据绑定) | | `XCGUI_Image` | 107 | 图像对象操作(加载/裁剪/缩放) | | `XCGUI_ListView` | 82 | 列表视图(虚拟列表/分组/排序) | | `XCGUI_ListBox` | 78 | 列表框 | | `XCGUI_Tree` | 69 | 树形控件 | | `XCGUI_Shape` | 63 | 形状控件(矩形/圆角/线条) | | `XCGUI_ComboBox` | 52 | 组合框(下拉列表) | | `XCGUI_Menu` | 46 | 菜单(弹出菜单/上下文菜单) | | `XCGUI_Animation` | 45 | 动画引擎(移动/旋转/缩放/透明度) | | `XCGUI_Background` | 44 | 背景对象(颜色/图像/渐变填充) | | `XCGUI_ScrollView` | 28 | 滚动视图容器 | | `XCGUI_TabBar` | 26 | 标签栏/选项卡 | | `XCGUI_Button` | 26 | 按钮(普通/复选/单选/开关) | | `XCGUI_Layout` | 22 | 布局管理器(水平/垂直/流式) | | `XCGUI_Pane` | 22 | 面板/分组框 | | `XCGUI_Table` | 21 | 表格控件 | | `XCGUI_Font` | 20 | 字体管理 | | `XCGUI_ScrollBar` | 18 | 滚动条 | | `XCGUI_DateTime` | 18 | 日期时间选择器 | | `XCGUI_ToolBar` | 11 | 工具栏 | | `XCGUI_ProgressBar` | 10 | 进度条 | | `XCGUI_PropertyGrid` | 4 | 属性网格 | #### 使用示例 ```java XCGUI_Core.XInitXCGUI(true); XCGUI_Core.XC_EnableResMonitor(true); XCGUI_Core.XC_EnableAutoRedrawUI(true); int hWindow = XCGUI_Window.XWnd_Create(0, 0, 600, 400, "我的窗口", 0, WindowStyle.window_style_default.getValue()); int hButton = XCGUI_Button.XBtn_Create(10, 10, 100, 30, "按钮", hWindow); XCGUI_Window.XWnd_Show(hWindow, true); XCGUI_Window.XWnd_AdjustLayout(hWindow); XCGUI_Core.XRunXCGUI(); XCGUI_Core.XExitXCGUI(); ``` --- ### 4.3 JadeViewGUI — JadeView WebView2 引擎封装 > **包**: `com.scm.all.export.JadeViewGUI` > **规模**: 8 个类 · 共 **98** 个封装方法 > **底层**: Microsoft Edge WebView2 (Chromium) #### 类方法数统计 | 类名 | 方法数 | 功能说明 | |:---|:---|:---| | `JadeView_Window` | 30 | WebView 窗口创建(30+ 配置参数) | | `JadeView_System` | 25 | 系统路径/语言/显示器/应用包 | | `JadeView_Dialog` | 11 | 系统通知/打开文件/保存文件/消息框 | | `JadeView_Resource` | 10 | 本地协议注册/URL Scheme | | `JadeView_Core` | 7 | 初始化/消息循环/清理/版本 | | `JadeView_Tray` | 6 | 系统托盘图标/菜单/提示 | | `JadeView_Menu` | 5 | 右键菜单项(普通/分隔线/复选/单选) | | `JadeView_IPC` | 4 | IPC 事件订阅/发送/处理器注册 | #### 使用示例 ```java JadeView_IPC.JadeView_Subscribe_On(-1, "app-ready", new IpcCallback() { @Override public int app_ready_callback(int windowId, String eventData) { String path = JadeView_Resource.JadeView_Set_Protocol_Service_Path_("E:\\web\\"); WebViewWindowOptions options = WebViewWindowOptions.createDefault(); WebViewSettings settings = WebViewSettings.createDefault(); JadeView_Window.JadeView_Create_Webview_Window_(path, 0, options, settings); return 0; } }); int windowId = JadeView_Core.JadeView_Init(1, "", "", "Theme", "com.jadeview.layer", 0); JadeView_IPC.JadeView_Subscribe_On(windowId, "crash", new IpcCallback() { @Override public int crash_callback(int windowId, String eventData) { System.err.println("Crash: " + eventData); return 0; } }); ``` #### JadeView_Window 窗口创建参数(30+ 项) ``` url_ 初始加载 URL parent_window_id 父窗口 ID(0=顶层) title 窗口标题 width / height 窗口尺寸 resizable 是否可调整大小 frame_style 边框样式: normal / no-titlebar / borderless / title-overlay transparent 是否透明窗口 background_color 背景颜色 always_on_top 是否置顶 theme 主题: Light / Dark / System maximized 是否最大化启动 fullscreen 是否全屏启动 ua 自定义 User-Agent preload_js 预加载 JS 脚本 cors_whitelist CORS 白名单 ... (更多参数) ``` --- ### 4.4 Report_Table — 锐浪报表 Grid++ 封装 > **包**: `com.scm.all.export.Report_Table` > **规模**: 26 个类 · 共 **2,842** 个封装方法 > **底层**: COM (Component Object Model) — 锐浪报表 Grid++ 控件 > **设计**: 所有类自动注册 COM 组件,支持静默注册/卸载 #### 类方法数统计 | 类名 | 方法数 | 功能说明 | |:---|:---|:---| | `Report_Table` | 298 | 报表主表(COM 初始化/核心操作) | | `Report_Chart` | 208 | 图表(柱状/饼图/折线/3D效果) | | `Report_Column` | 206 | 列对象(宽度/对齐/合并/样式) | | `Report_Export` | 172 | 导出(PDF/Excel/Word/HTML/图片) | | `Report_TableSelect` | 147 | 选择集(选中区域操作) | | `Report_Control` | 132 | 报表控件(设计器/打印查看器) | | `Report_TextBox` | 130 | 文本框(文本格式/对齐/边框) | | `Report_Section` | 123 | 节/段落(页眉/页脚/明细) | | `Report_Graphics` | 123 | 图形绘制(线条/矩形/椭圆) | | `Report_Printer` | 120 | 打印机管理(选择/设置/预览) | | `Report_Group` | 113 | 分组(分组头/分组尾/聚合) | | `Report_Utility` | 99 | 工具方法(通用辅助) | | `Report_TableDesign` | 98 | 设计器(可视化设计) | | `Report_Field` | 96 | 字段(数据字段/表达式字段) | | `Report_DetailGrid` | 94 | 明细网格(数据行展示) | | `Report_FreeGrid` | 84 | 自由网格(固定行/列布局) | | `Report_Image` | 79 | 图像对象(加载/缩放/旋转) | | `Report_Recordset` | 69 | 记录集(数据绑定/遍历) | | `Report_Parameter` | 69 | 参数(报表参数传递) | | `Report_TablePrint` | 67 | 打印控制(页面设置/份数/范围) | | `Report_Font` | 64 | 字体对象(名称/大小/样式/颜色) | | `Report_CrossTab` | 60 | 交叉表(透视表/汇总) | | `Report_CellBase` | 48 | 单元格基类(通用属性) | | `Report_Barcode` | 48 | 条形码(编码/尺寸/显示) | | `Report_Border` | 24 | 边框(线宽/颜色/样式) | | `Report_BinaryObject` | 20 | 二进制对象(BLOB 数据) | #### 使用示例 ```java Report_Table.report_Table_RegisterComSilent("GridppReport.dll"); Report_Table.report_Table_SetComPointer(Report_Table.report_Table_InitPointer()); Report_Column.report_Column_SetWidth(columnHandle, 120); Report_TextBox.report_TextBox_SetText(textBoxHandle, "报表标题"); Report_Chart.report_Chart_SetChart3D(true); Report_Export.report_Export_ExportToPDF("C:\\output.pdf"); ``` --- ### 4.5 WindowOperationUtils — 窗口操作封装 > **文件**: `com/scm/all/export/WindowOperationUtils.java` > **职责**: 对 JNI 窗口相关方法的二次封装 ```java WindowOperationUtils.enumWindowClose("Notepad", null); WindowOperationUtils.windowEmbeddedDesktop(hwnd); WindowOperationUtils.windowTop(hwnd, true, 0); int hwnd = WindowOperationUtils.GetSwingWindowHandle(jframe); TagPoint screen = WindowOperationUtils.ClientToScreenPos(hwnd, 100, 200); WindowOperationUtils.windowSetRoundedCorners(hwnd, 800, 600); ``` | 方法 | 说明 | |:---|:---| | `windowInvalidateRect(hwnd, repaint)` | 重绘窗口区域 | | `windowSetWindowLongW(hwnd)` | 隐藏任务栏按钮 | | `windowGetDesktopWindow()` | 获取桌面窗口句柄 | | `enumWindowClose(className, title)` | 枚举并关闭窗口 | | `windowEmbeddedDesktop(hwnd)` | 将窗口嵌入桌面 | | `windowSetAlpha(hwnd, alpha)` | 设置窗口透明度 | | `windowTop(hwnd, activate, flag)` | 窗口置顶 | | `windowGetRootHwnd(hwnd)` | 获取顶级父窗口 | | `windowGetFatherHwnd(hwnd)` | 获取直接父窗口 | | `windowSetLocationSize(hwnd, x, y, w, h)` | 设置位置与大小 | | `ClientToScreenPos(hwnd, x, y)` | 客户区坐标→屏幕坐标 | | `ScreenToClientPos(hwnd, x, y)` | 屏幕坐标→客户区坐标 | --- ### 4.6 ProcessAndThreadUtils — 进程线程操作 > **文件**: `com/scm/all/export/ProcessAndThreadUtils.java` > **职责**: 进程枚举、线程管理、权限提升 ```java List procs = ProcessAndThreadUtils.processEnumInfo(); int pid = ProcessAndThreadUtils.processNameGetPid("chrome.exe"); int myPid = ProcessAndThreadUtils.getCurrentProcessPID(); ProcessAndThreadUtils.elevatePrivileges(pid, 4); ``` --- ### 4.7 EmailUtils — 邮件收发子系统 > **包**: `com.scm.all.export.EmailUtils` > **依赖**: `javax.mail:1.6.2` > **协议**: SMTP (发信) / IMAP (收信) ```java Properties props = EMailUtils.addProperties( "imap.139.com", 993, "imap", true, true, true, 6000, 5000, false); Session session = EMailUtils.getSession(props, "user@139.com", "password"); Store store = EMailUtils.getStoreTow(session, "imap.139.com", "user@139.com", "password", "imap"); EMailUtils.getEmailDataSafe(session, host, user, pass, "imap", "INBOX", store, (messages, folder, s) -> { EMailUtils.listSort(messages); for (Message msg : messages) { if (!EMailUtils.isReadMall(msg)) { EMailUtils.setReadMall(msg, true); } } }); EMailUtils.send("to@qq.com", "主题", "

正文

", "from@139.com", "password"); ``` | 方法 | 说明 | |:---|:---| | `addProperties(...)` | 创建邮件会话配置 | | `getSession(props, user, pass)` | 创建认证会话 | | `getStoreTow(...)` | 连接 IMAP 并发送 ID 命令 | | `isStoreConnected(store)` | 检查连接有效性 | | `reconnect(...)` | 指数退避自动重连 | | `getEmailDataSafe(...)` | 安全获取邮件(含自动重连) | | `heartbeat(store, folder)` | NOOP 心跳保活 | | `send / sendWithAttachment` | 发送邮件 | --- ### 4.8 hotkey — 键鼠驱动子系统 > **包**: `com.scm.all.export.hotkey` > **方案**: DD / Ghost / Md 三种硬件级键鼠模拟 #### DdDriver — DD 键鼠驱动 ```java DdDriver.btn(1); // 左键按下 (1=按下, 2=放开) DdDriver.mov(500, 300); // 鼠标绝对移动 DdDriver.movR(10, -5); // 鼠标相对移动 DdDriver.whl(1); // 滚轮向前 (1=前, 2=后) DdDriver.key(30, 1); // 按键按下 (1=按下, 2=放开) DdDriver.str("Hello"); // 输入文本 ``` #### GhostDriver — 幽灵键鼠驱动(硬件设备) ```java String devices = GhostDriver.getDeviceListByModel(); GhostDriver.selectDeviceBySerialNumber("SN12345"); GhostDriver.isDeviceConnected(); GhostDriver.getModel(); GhostDriver.getSerialNumber(); ``` #### MdDriver — Md 键鼠驱动 ```java MdDriver.m_Delay(100); MdDriver.m_DelayRandom(50, 200); MdDriver.m_RandDomNbr(1, 100); MdDriver.m_GetDevSn(); MdDriver.m_GetAbsCfg(); ``` --- ### 4.9 Adobe Photoshop 自动化 > **包**: `com.scm.all.export.powerUtils.adobe` > **原理**: PowerShell COM → Photoshop JavaScript 自动化 > **规模**: 582+ 公开静态方法 ```java PhotoshopTool.setSilentMode(true); PhotoshopTool.openDocument("C:\\photo.psd"); PhotoshopTool.resizeImage(1920, 1080); PhotoshopTool.applyGaussianBlurFilter(5.0); PhotoshopTool.saveDocumentAs("C:\\out.jpg", "JPEG"); ``` | 功能分类 | 方法数 | 代表操作 | |:---|:---|:---| | 应用级别 (app.*) | 30+ | 版本信息、首选项、文件操作 | | 文档操作 (document.*) | 50+ | 新建/打开/保存/关闭/导出 | | 图层操作 (layer.*) | 80+ | 创建/删除/复制/合并/编组 | | 选区操作 (selection.*) | 40+ | 矩形/椭圆/套索/魔棒 | | 滤镜效果 (filter.*) | 100+ | 模糊/锐化/扭曲/渲染 | | 颜色调整 (adjustment.*) | 60+ | 色阶/曲线/色相/亮度 | | 通道操作 (channel.*) | 40+ | 创建/删除/计算 | | 图层样式 (layerStyle.*) | 70+ | 投影/发光/斜面/描边 | | 文本操作 (text.*) | 60+ | 创建/编辑/格式化 | | 变换操作 (transform.*) | 25+ | 缩放/旋转/斜切 | #### PhotoshopJS — 底层 JS 执行器 ```java PhotoshopJS.DoJavaScriptBool("app.activeDocument.saved"); PhotoshopJS.DoJavaScriptString("app.activeDocument.name"); PhotoshopJS.DoJavaScriptInt("app.activeDocument.width"); ``` --- ### 4.10 AI 集成模块 > **包**: `com.scm.all.AI` > **三个独立子模块**: ClaudeCode / CozeAI / RunNingHubAI #### ClaudeCode — Ollama 本地大模型工具包 ```java ClaudeCodeToolkit toolkit = new ClaudeCodeToolkit(); String response = toolkit.chat("你好"); ClaudeCodeToolkit toolkit2 = new ClaudeCodeToolkit("qwen3:8b"); toolkit2.chatStream(resp -> System.out.print(resp.getContent())); toolkit.addSystemMessage("你是一个代码助手"); toolkit.addUserMessage("解释快速排序"); String reply = toolkit.chat(); OllamaClient client = new OllamaClient(); client.chatWithImage("描述图片", base64Image); ``` #### CozeAI — Coze 工作流客户端 ```java CoZeWorkflowClient.setAccessToken("your-token"); String fileId = CoZeWorkflowClient.uploadFile("C:\\data.csv"); ``` #### RunNingHubAI — RunningHub 平台客户端 ```java RunningHubClient client = new RunningHubClient("your-api-key"); WorkflowApi workflow = client.workflow(); WebappApi webapp = client.webapp(); QuickAIAppApi quickAI = client.quickAIApp(); StandardModelApi model = client.standardModel(); ResourceApi resource = client.resource(); ``` --- ### 4.11 component — UI 组件引擎 > **包**: `com.scm.all.component` > **设计**: 无 GUI 纯后台引擎,输出 `byte[]` / `BufferedImage` 供外部渲染 #### AnimatedBorderEngine — 流光边框动画 ```java AnimatedBorderEngine.Instance engine = AnimatedBorderEngine.create(800, 600); engine.setBorderWidth(3); engine.setCornerRadius(12); engine.setSpeed(2.0f); engine.setColors(Color.RED, Color.BLUE, Color.GREEN); engine.setEnableBreath(true); engine.start(); byte[] png = engine.renderToBytes(); engine.destroy(); ``` #### VideoBackgroundEngine — 视频背景引擎 ```java VideoBackgroundEngine.setFFmpegPath("D:/ffmpeg/bin/ffmpeg.exe", "D:/ffmpeg/bin/ffprobe.exe"); VideoBackgroundEngine.Instance engine = VideoBackgroundEngine.create(800, 600); engine.loadVideo("C:/video.mp4"); engine.start(); ``` --- ### 4.12 capstone — 反汇编引擎 > **包**: `com.scm.all.export.capstone` > **注意**: 不适合循环使用 ```java CapStone.CapStone_cs_open(TAG_CS_ARCH.CS_ARCH_X86, TAG_CS_MODE.CS_MODE_32); byte[] opcode = {(byte)0x90, (byte)0xCC}; CapStone.CapStone_cs_disasm(opcode, 0x401000, new Tag_cs_insnCallBack() { public void callback(String mnemonic, String opStr, int size) { System.out.println(mnemonic + " " + opStr); } }); CapStone.CapStone_cs_free(); ``` --- ### 4.13 x64/x86 — 平台专用模块 > **包**: `com.scm.x64.export` / `com.scm.x86.export` > **区别**: 地址类型不同(`long` vs `int`),API 签名对称 ```java // 64 位内存操作 TagPmemory_Basic_InfoRmationX64 info = MemoryOperationUtilsX64.selectMemoryAddressAttribute(hProcess, 0x7FF600000000L); MemoryOperationUtilsX64.updateMemoryAddressAttribute(hProcess, addr, size, protect); byte[] data = MemoryOperationUtilsX64.readMemoryBytes(hProcess, addr, 256); MemoryOperationUtilsX64.writeMemoryInt(hProcess, addr, 0xDEADBEEF); MemoryOperationUtilsX64.searchMemory(hProcess, start, end, pattern, callback); // 硬件断点 int threadId = ModuleOperationUtilsJNI.threadGetCurrentID(); DebugBreakPointX64.runHardwareBreakpointX64( hProcess, threadId, addr, BreakpointType.breakpoint_type_read.getValue(), 1, new BreakpointCallBackX64() { @Override public void callback(long hitAddress, int breakpointIndex) { System.out.println("断点命中: " + Long.toHexString(hitAddress)); } }); // API Hook ApiHookOperationUtilsX64.installHook("user32.dll", "MessageBoxW", hookCallback, originalCallback); ``` --- ## 五、数据结构与枚举体系 ### 5.1 Tag* 结构体 (38 个) 所有 `Tag*` 类与 C 层结构体一一对应,用于 JNI 双向数据传递: | 类别 | 结构体 | 用途 | |:---|:---|:---| | **几何** | `TagPoint` / `TagPointF` / `TagPointD` | 整数/浮点/双精度坐标点 | | **几何** | `TagRect` / `TagRectF` / `TagRectSize` | 矩形区域 | | **几何** | `TagSize` / `TagPosition` | 尺寸与位置 | | **间距** | `TagBorderSize` / `TagPadDingSize` / `TagMarginSize_` | 边框/内边距/外边距 | | **窗口** | `TagWinInfo` / `TagMyWindwInfo` | 窗口信息 | | **进程** | `TagProcessenTry32` / `TagThreadEntry32` | 进程/线程快照 | | **模块** | `TagModuleenTry32` / `TagModuleenTryX64` / `TagModuleenTryX86` | 32/64 位模块快照 | | **内存** | `TagMemoryDataX64` / `TagMemoryDataX86` | 内存数据块 | | **内存** | `TagPmemory_Basic_InfoRmationX64` / `X86` | 内存页属性 | | **系统** | `TagINPUT` / `TagFontInfo` / `TagLOGFONTW` | 输入事件/字体 | | **系统** | `TagHotKeyInfoTow` / `TagTokenPrivileges` / `TagLuid` | 热键/令牌 | ### 5.2 JadeView_struct 结构体 (6 个) | 结构体 | 用途 | 关键字段 | |:---|:---|:---| | `WebViewWindowOptions` | WebView 窗口选项 | `url`, `title`, `width`, `height`, `frame_style`, `transparent`, `theme` | | `WebViewSettings` | WebView 运行设置 | `user_agent`, `preload_js`, `cors_whitelist`, `dev_tools` | | `FileDialogParams` | 文件对话框参数 | `title`, `default_path`, `filters`, `properties` | | `MessageBoxParams` | 消息框参数 | `message`, `detail`, `buttons`, `icon` | | `NotificationParams` | 系统通知参数 | `summary`, `body`, `timeout` | | `TrayMenuItemDesc` | 托盘菜单项描述 | `label`, `kind`, `enabled`, `checked` | ### 5.3 XC_Enum 枚举常量 (72 个) 覆盖 XCGUI 全部控件状态、标志、类型定义。核心枚举包括: | 枚举 | 值数 | 说明 | |:---|:---|:---| | `WindowStyle` | 3 | `window_style_default` / `window_style_modal` / `window_style_tool` | | `ButtonState` | 3 | `button_state_up` / `down` / `disable` | | `EditType` | 5 | `edit_type_simple` / `edit_type_password` / `edit_type_multiline` 等 | | `ImageDrawType` | 5 | `image_draw_type_default` / `stretch` / `tile` / `fixed_ratio` 等 | | `AnimationMove` | 4 | `linear` / `ease_in` / `ease_out` / `ease_in_out` | | `BreakpointType` | 4 | `read` / `write` / `execute` / `access` | | `D2D1AlphaMode` | 4 | `UNKNOWN` / `PREMULTIPLIED` / `STRAIGHT` / `IGNORE` | | `FontStyle` | 4 | `FontStyle_Regular` / `Bold` / `Italic` / `Strikeout` | | `XcObjectType` | 40+ | 所有 XCGUI 对象类型定义 | ### 5.4 回调接口体系 (pfunc · 47 个接口) #### 标准回调 (37 个) | 接口 | 触发场景 | |:---|:---| | `IpcCallback` | JadeView IPC 事件(app-ready / crash / custom) | | `JscmCallBack` | 通用 JNI 回调 | | `WindowEventCallBack` | 窗口事件(消息/通知) | | `XEleEventCallBack` | XC 元素事件(按钮点击/编辑变化) | | `MemoryCallBack` | 内存搜索结果回调 | | `BreakpointCallBackX64` / `X86` | 硬件断点命中回调 | | `WebChromeDriverCallBack` | Chrome WebDriver 事件 | | `CGridppReportEventHandler` | Grid++ 报表事件(格式/打印/查询) | | `CGRDesignerEventHandler` | Grid++ 设计器事件 | | `NtQueryAllProcessInfoCallBackProcess` / `Thread` | NtQuery 进程/线程信息 | | `Tag_cs_insnCallBack` | CapStone 反汇编指令回调 | #### Nonvirtual 优化变体 (10 个) | 接口 | 原接口 | 优化说明 | |:---|:---|:---| | `WindowEventCallBack_Nonvirtual` | `WindowEventCallBack` | 避免 JNI 虚函数调用开销 | | `XEleEventCallBack_Nonvirtual` | `XEleEventCallBack` | 高频事件回调优化 | | `ThreadUICallBack_Nonvirtual` | `ThreadUICallBack` | 线程 UI 更新优化 | | `pArrayCallBack_Nonvirtual` | `pArrayCallBack` | 数组回调优化 | --- ## 六、依赖与构建 ### Maven 依赖 (pom.xml) ```xml org.apache.commons commons-lang3 3.12.0 com.sun.mail javax.mail 1.6.2 com.fasterxml.jackson.core jackson-databind 2.19.2 com.squareup.okhttp3 okhttp 3.8.1 net.bramp.ffmpeg ffmpeg 0.8.0 junit junit 4.13.2 test ``` ### 构建命令 ```bash mvn clean compile # 编译 mvn clean package # 打包 JAR mvn test # 运行测试 ``` ### DLL 路径配置 ```java PathFileJSCM.setDebugFile32("C:\\path\\to\\x86\\"); PathFileJSCM.setDebugFile64("C:\\path\\to\\x64\\"); PathFileJSCM.setIsDebug(false); ``` --- ## 七、快速开始 ### 最简 XCGUI 窗口 ```java import com.scm.all.export.XC_GUI.*; import com.scm.all.export.PathFileJSCM; import com.scm.all.struct.Enum.XC_Enum.WindowStyle; public class Main { public static void main(String[] args) { PathFileJSCM.setIsDebug(false); XCGUI_Core.XInitXCGUI(true); int hWindow = XCGUI_Window.XWnd_Create(0, 0, 600, 400, "Hello XCGUI", 0, WindowStyle.window_style_default.getValue()); int hButton = XCGUI_Button.XBtn_Create(250, 180, 100, 40, "点击", hWindow); XCGUI_Window.XWnd_ShowWindow(hWindow, 5); XCGUI_Window.XWnd_AdjustLayout(hWindow); XCGUI_Core.XRunXCGUI(); XCGUI_Core.XExitXCGUI(); } } ``` ### 最简 JadeView WebView2 窗口 ```java import com.scm.all.export.JadeViewGUI.*; import com.scm.all.struct.JadeView_struct.*; import com.scm.all.pfunc.IpcCallback; public class WebViewApp { public static void main(String[] args) { JadeView_IPC.JadeView_Subscribe_On(-1, "app-ready", new IpcCallback() { @Override public int app_ready_callback(int windowId, String eventData) { String path = JadeView_Resource.JadeView_Set_Protocol_Service_Path_("E:\\web\\"); WebViewWindowOptions options = WebViewWindowOptions.createDefault(); WebViewSettings settings = WebViewSettings.createDefault(); JadeView_Window.JadeView_Create_Webview_Window_(path, 0, options, settings); return 0; } }); int windowId = JadeView_Core.JadeView_Init(1, "", "", "MyApp", "com.myapp", 0); } } ``` ### 键鼠驱动 + 内存操作 ```java // DD 键鼠模拟 DdDriver.mov(500,300); DdDriver.btn(1); DdDriver.btn(2); // 64 位内存搜索 int hProcess=ModuleOperationUtilsJNI.openProcess(pid,0x1F0FFF); MemoryOperationUtilsX64.searchMemory(hProcess,0,0x7FFFFFFFFFFFL, new byte[]{0x01,0x02,0x03},new MemoryCallBack(){ @Override public void callback(long address){ System.out.println("找到: 0x"+Long.toHexString(address)); } }); ``` --- ## 八、项目统计汇总 | 维度 | 统计 | |:---|:---| | **总文件数** | 312 个 Java 源文件 | | **总代码量** | ~113,559 行 | | **JNI native 方法** | 4,963 个 | | **XCGUI 控件类** | 29 个类 / 1,648 个方法 | | **JadeView WebView2** | 8 个类 / 98 个方法 | | **Report_Table 报表** | 26 个类 / 2,842 个方法 | | **Photoshop 自动化** | 5 个类 / 582+ 个方法 | | **AI 集成** | 35 个类 / 3 个平台 | | **键鼠驱动** | 6 个类 / 3 种方案 | | **回调接口** | 47 个(37 标准 + 10 Nonvirtual) | | **枚举常量** | 75 个枚举文件 | | **数据结构** | 44 个 Tag*/struct 文件 | | **平台专用** | 8 个文件(x64 4 个 + x86 4 个) |