win自动化分类新增监控剪贴板和文件夹,支持等待剪贴板变化和文件夹变化,并返回变化内容

This commit is contained in:
fofolee
2025-01-14 01:20:51 +08:00
parent 0ff5c4b49f
commit 55be953eef
5 changed files with 443 additions and 0 deletions

49
plugin/lib/js/monitor.js Normal file
View File

@@ -0,0 +1,49 @@
const fs = require("fs");
const path = require("path");
const quickcommand = require("../../quickcommand");
// 读取 monitor.cs 模板
const monitorTemplate = fs.readFileSync(
path.join(__dirname, "..", "csharp", "monitor.cs"),
"utf8"
);
// 监控剪贴板变化
const watchClipboard = async function () {
const args = ["-type", "clipboard"];
const result = await quickcommand.runCsharp(monitorTemplate, args);
if (result && result.startsWith("Error:")) {
throw new Error(result.substring(7));
}
return true;
};
// 监控文件系统变化
const watchFileSystem = async function (options = {}) {
const { path: watchPath, filter = "*.*", recursive = true } = options;
if (!watchPath) {
throw new Error("必须指定监控路径");
}
const args = ["-type", "filesystem", "-path", watchPath];
if (filter !== "*.*") {
args.push("-filter", filter);
}
if (!recursive) {
args.push("-recursive", "false");
}
const result = await quickcommand.runCsharp(monitorTemplate, args);
if (result && result.startsWith("Error:")) {
throw new Error(result.substring(7));
}
return true;
};
module.exports = {
watchClipboard,
watchFileSystem,
};