mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-08 22:51:25 +08:00
50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
const { runCsharpFeature } = require("../../csharp");
|
|
|
|
/**
|
|
* 执行资源管理器操作
|
|
* @param {string} type - 操作类型, 可选值: "list"|"navigate"
|
|
* @param {Object} params - 参数对象
|
|
* @returns {Promise<Object[]|boolean>} - 操作结果
|
|
*/
|
|
async function runExplorer(type, params = {}) {
|
|
const args = ["-type", type];
|
|
|
|
// 添加导航相关参数
|
|
if (type === "navigate") {
|
|
if (!params.handle || !params.path) {
|
|
throw new Error("导航操作需要指定窗口句柄和目标路径");
|
|
}
|
|
args.push("-handle", params.handle.toString());
|
|
args.push("-path", params.path);
|
|
}
|
|
|
|
try {
|
|
const result = await runCsharpFeature("explorer", args);
|
|
if (result) {
|
|
if (result.trim() === "true") return true;
|
|
return JSON.parse(result);
|
|
}
|
|
} catch (err) {
|
|
console.error(err);
|
|
return type === "list" ? [] : false;
|
|
}
|
|
|
|
return type === "list" ? [] : false;
|
|
}
|
|
|
|
module.exports = {
|
|
/**
|
|
* 获取所有打开的资源管理器窗口信息
|
|
* @returns {Promise<Array>} 资源管理器窗口信息数组
|
|
*/
|
|
list: () => runExplorer("list"),
|
|
|
|
/**
|
|
* 导航到指定路径
|
|
* @param {number} handle - 窗口句柄
|
|
* @param {string} path - 目标路径
|
|
* @returns {Promise<boolean>} 是否成功
|
|
*/
|
|
navigate: (handle, path) => runExplorer("navigate", { handle, path }),
|
|
};
|