rust-rpa 0.2.5 → 0.2.6-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +12 -1
  2. package/index.d.ts +24 -0
  3. package/package.json +5 -5
package/README.md CHANGED
@@ -205,7 +205,7 @@ main();
205
205
  - `setBounds(bounds)` - 设置窗口边界
206
206
  - `toJSON()` - 转为 JSON 对象
207
207
  - `captureImage(options?)` - 截图
208
- - `watchChanges(options?, callback)` - 监听窗口内容变化;返回 `WindowWatcher`(`stop()` / `isRunning()`),回调收到变化后的 `ImageData` 或 `null`(见 `sendImage` 选项)
208
+ - `watchChanges(options?, callback)` - 监听窗口内容变化;返回 `WindowWatcher`(`stop()` / `isRunning()`),回调收到变化后的 `ImageData` 或 `null`(见 `sendImage` 选项);`stableFrames` 选项可过滤光标闪烁等瞬态变化
209
209
  - `recognizeText(options?)` - OCR 识别文字
210
210
  - `findText(text, options?)` - 查找文字
211
211
  - `findIcon(template, options?)` - 查找图标
@@ -591,6 +591,17 @@ if (targetWindow) {
591
591
 
592
592
  ## 更新日志
593
593
 
594
+ ### 0.2.6
595
+
596
+ #### 新功能
597
+
598
+ - **Window.watchChanges 新增 `stableFrames` 选项**: 支持过滤光标闪烁等瞬态变化,仅检测真实内容变化
599
+ - `stableFrames: 0`(默认)- 检测到变化即触发回调,最快响应
600
+ - `stableFrames: N` - 需连续 N 帧与上一帧相比均有变化才触发回调
601
+ - 过滤光标闪烁原理:光标闪烁 ON→OFF 一次变化、OFF→OFF 无变化则计数重置,无法连续 N 帧;而真实内容变化(新消息出现)会持续与旧基线不同,连续 N 帧均有变化
602
+ - 推荐 `stableFrames: 2` 可过滤大多数光标闪烁
603
+ - 示例:`window.watchChanges({ threshold: 0.02, stableFrames: 2 }, callback)`
604
+
594
605
  ### 0.2.5
595
606
 
596
607
  #### 改进
package/index.d.ts CHANGED
@@ -273,6 +273,19 @@ export interface WindowWatchOptionsJs {
273
273
  captureSize?: CaptureSizeJs | null
274
274
  /** 是否在回调中传递截图图像,默认 true */
275
275
  sendImage?: boolean
276
+ /**
277
+ * 变化确认帧数,默认 0
278
+ *
279
+ * - 0 表示检测到变化即触发回调(最快响应)
280
+ * - 大于 0 时,需连续 N 帧与上一帧相比均有变化才触发回调
281
+ *
282
+ * 适用于过滤光标闪烁等瞬态变化:光标闪烁在 ON/OFF 间交替,
283
+ * ON→OFF 一次变化、OFF→OFF 无变化则计数重置,无法连续 N 帧;
284
+ * 而真实内容变化(如新消息出现)会持续与旧基线不同,
285
+ * 连续 N 帧均有变化,通过确认。
286
+ * 推荐 stableFrames=2 可过滤大多数光标闪烁。
287
+ */
288
+ stableFrames?: number
276
289
  }
277
290
  /** 窗口内容变化监听的回调函数签名 */
278
291
  export type WindowChangeCallback = (image: ImageData | null) => void
@@ -1347,6 +1360,17 @@ export declare class Window {
1347
1360
  * watcher.stop();
1348
1361
  * }, 60000);
1349
1362
  * ```
1363
+ *
1364
+ * @example
1365
+ * ```javascript
1366
+ * // 场景 4:忽略光标闪烁,仅检测真实内容变化
1367
+ * const watcher = targetWindow.watchChanges(
1368
+ * { threshold: 0.02, stableFrames: 2 },
1369
+ * (image) => {
1370
+ * console.log('窗口内容发生持久变化');
1371
+ * }
1372
+ * );
1373
+ * ```
1350
1374
  */
1351
1375
  watchChanges(
1352
1376
  options: WindowWatchOptionsJs | null | undefined,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rust-rpa",
3
- "version": "0.2.5",
3
+ "version": "0.2.6-beta.1",
4
4
  "description": "Rust-based RPA automation library for Node.js",
5
5
  "type": "commonjs",
6
6
  "main": "index.js",
@@ -67,9 +67,9 @@
67
67
  "commander": "^14.0.3"
68
68
  },
69
69
  "optionalDependencies": {
70
- "@alibot/rust-rpa-win32-x64-msvc": "0.2.5",
71
- "@alibot/rust-rpa-win32-ia32-msvc": "0.2.5",
72
- "@alibot/rust-rpa-darwin-x64": "0.2.5",
73
- "@alibot/rust-rpa-darwin-arm64": "0.2.5"
70
+ "@alibot/rust-rpa-win32-x64-msvc": "0.2.6-beta.1",
71
+ "@alibot/rust-rpa-win32-ia32-msvc": "0.2.6-beta.1",
72
+ "@alibot/rust-rpa-darwin-x64": "0.2.6-beta.1",
73
+ "@alibot/rust-rpa-darwin-arm64": "0.2.6-beta.1"
74
74
  }
75
75
  }