mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-08 14:34:13 +08:00
70 lines
1.6 KiB
JavaScript
70 lines
1.6 KiB
JavaScript
const { runCsharpFeature } = require("../../csharp");
|
|
const child_process = require("child_process");
|
|
|
|
const stopMonitor = () => {
|
|
child_process.exec("taskkill /f /im monitor.exe");
|
|
};
|
|
|
|
// 监控剪贴板变化
|
|
const watchClipboard = async function () {
|
|
const args = ["-type", "clipboard", "-once"];
|
|
const loadingBar = await quickcommand.showProcessBar({
|
|
text: "等待剪贴板变化...",
|
|
onClose: () => {
|
|
stopMonitor();
|
|
},
|
|
});
|
|
try {
|
|
const result = await runCsharpFeature("monitor", args);
|
|
loadingBar.close();
|
|
if (result && result.startsWith("Error:")) {
|
|
throw new Error(result.substring(7));
|
|
}
|
|
return JSON.parse(result);
|
|
} catch (error) {
|
|
return {};
|
|
}
|
|
};
|
|
|
|
// 监控文件系统变化
|
|
const watchFileSystem = async function (watchPath, options = {}) {
|
|
const { filter = "*.*", recursive = true } = options;
|
|
|
|
if (!watchPath) {
|
|
throw new Error("必须指定监控路径");
|
|
}
|
|
|
|
const args = ["-type", "filesystem", "-path", watchPath, "-once"];
|
|
|
|
if (filter !== "*.*") {
|
|
args.push("-filter", filter);
|
|
}
|
|
|
|
if (!recursive) {
|
|
args.push("-recursive", "false");
|
|
}
|
|
|
|
const loadingBar = await quickcommand.showProcessBar({
|
|
text: "等待文件变化...",
|
|
onClose: () => {
|
|
stopMonitor();
|
|
},
|
|
});
|
|
|
|
try {
|
|
const result = await runCsharpFeature("monitor", args);
|
|
loadingBar.close();
|
|
if (result && result.startsWith("Error:")) {
|
|
throw new Error(result.substring(7));
|
|
}
|
|
return JSON.parse(result);
|
|
} catch (error) {
|
|
return {};
|
|
}
|
|
};
|
|
|
|
module.exports = {
|
|
watchClipboard,
|
|
watchFileSystem,
|
|
};
|