58 lines
1.4 KiB
JavaScript

const { runCsharpFeature } = require("../../csharp");
/**
* 列出进程
* @returns {Array} 进程列表
*/
const listProcesses = async function () {
const args = ["-type", "list"];
const result = await runCsharpFeature("process", args);
if (result && result.startsWith("Error:")) {
throw new Error(result.substring(7));
}
try {
return JSON.parse(result);
} catch (error) {
console.error("解析进程列表失败:", error);
return null;
}
};
/**
* 终止进程
* @param {string} target 进程ID或名称
* @returns {boolean} 是否成功
*/
const killProcess = async function (target) {
const args = ["-type", "kill", "-target", target];
const result = await runCsharpFeature("process", args);
if (result && result.startsWith("Error:")) {
throw new Error(result.substring(7));
}
return true;
};
/**
* 启动进程
* @param {string} path 程序路径
* @param {string} arguments 启动参数
* @returns {boolean} 是否成功
*/
const startProcess = async function (path, arguments = "") {
const args = ["-type", "start", "-path", path];
if (arguments) {
args.push("-args", arguments);
}
const result = await runCsharpFeature("process", args);
if (result && result.startsWith("Error:")) {
throw new Error(result.substring(7));
}
return true;
};
module.exports = {
listProcesses,
killProcess,
startProcess,
};