mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-07-19 01:09:49 +08:00
1575 lines
46 KiB
JavaScript
1575 lines
46 KiB
JavaScript
import { newVarInputVal } from "js/composer/varInputValManager.js";
|
||
|
||
const sendKeys = [
|
||
// 特殊按键
|
||
{ value: "{ENTER}", label: "回车键 (Enter)" },
|
||
{ value: "{BACKSPACE}", label: "退格键 (Backspace)" },
|
||
{ value: "{BREAK}", label: "Break键" },
|
||
{ value: "{CAPSLOCK}", label: "大写锁定 (Caps Lock)" },
|
||
{ value: "{DELETE}", label: "删除键 (Delete)" },
|
||
{ value: "{END}", label: "End键" },
|
||
{ value: "{ESC}", label: "ESC键" },
|
||
{ value: "{HELP}", label: "帮助键" },
|
||
{ value: "{HOME}", label: "Home键" },
|
||
{ value: "{INSERT}", label: "插入键 (Insert)" },
|
||
{ value: "{INS}", label: "插入键 (Ins)" },
|
||
{ value: "{NUMLOCK}", label: "数字锁定键" },
|
||
{ value: "{PGDN}", label: "下一页 (Page Down)" },
|
||
{ value: "{PGUP}", label: "上一页 (Page Up)" },
|
||
{ value: "{PRTSC}", label: "打印屏幕键" },
|
||
{ value: "{SCROLLLOCK}", label: "滚动锁定键" },
|
||
{ value: "{TAB}", label: "Tab键" },
|
||
{ value: "{DOWN}", label: "向下键" },
|
||
{ value: "{LEFT}", label: "向左键" },
|
||
{ value: "{RIGHT}", label: "向右键" },
|
||
{ value: "{UP}", label: "向上键" },
|
||
// 功能键
|
||
...new Array(12).fill(0).map((_, index) => ({
|
||
value: `{F${index + 1}}`,
|
||
label: `F${index + 1}`,
|
||
})),
|
||
// 数字键盘
|
||
...new Array(10).fill(0).map((_, index) => ({
|
||
value: `{NUMPAD${index}}`,
|
||
label: `小键盘 ${index}`,
|
||
})),
|
||
{ value: "{ADD}", label: "小键盘加号" },
|
||
{ value: "{SUBTRACT}", label: "小键盘减号" },
|
||
{ value: "{MULTIPLY}", label: "小键盘乘号" },
|
||
{ value: "{DIVIDE}", label: "小键盘除号" },
|
||
];
|
||
|
||
const modifierKeys = [
|
||
// 修饰键组合示例
|
||
{ value: "^", label: "Ctrl" },
|
||
{ value: "%", label: "Alt" },
|
||
{ value: "+", label: "Shift" },
|
||
{ value: "^c", label: "Ctrl+C" },
|
||
];
|
||
|
||
const registryPaths = [
|
||
// 系统设置
|
||
{
|
||
value: "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion",
|
||
label: "Windows设置",
|
||
},
|
||
{ value: "HKLM\\SYSTEM\\CurrentControlSet\\Control", label: "系统控制" },
|
||
{
|
||
value: "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",
|
||
label: "Windows NT设置",
|
||
},
|
||
|
||
// 启动项
|
||
{
|
||
value: "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
|
||
label: "系统启动项",
|
||
},
|
||
{
|
||
value: "HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
|
||
label: "用户启动项",
|
||
},
|
||
|
||
// 软件设置
|
||
{
|
||
value: "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall",
|
||
label: "已安装软件(64位)",
|
||
},
|
||
{
|
||
value:
|
||
"HKLM\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall",
|
||
label: "已安装软件(32位)",
|
||
},
|
||
|
||
// 文件关联
|
||
{ value: "HKLM\\SOFTWARE\\Classes", label: "系统文件关联" },
|
||
{ value: "HKCU\\SOFTWARE\\Classes", label: "用户文件关联" },
|
||
|
||
// 服务
|
||
{ value: "HKLM\\SYSTEM\\CurrentControlSet\\Services", label: "系统服务" },
|
||
|
||
// 环境变量
|
||
{
|
||
value:
|
||
"HKLM\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment",
|
||
label: "系统环境变量",
|
||
},
|
||
{ value: "HKCU\\Environment", label: "用户环境变量" },
|
||
|
||
// 网络设置
|
||
{
|
||
value: "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters",
|
||
label: "TCP/IP设置",
|
||
},
|
||
{
|
||
value: "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkList",
|
||
label: "网络配置",
|
||
},
|
||
];
|
||
|
||
const searchWindowConfig = [
|
||
{
|
||
label: "窗口查找方式",
|
||
component: "QSelect",
|
||
icon: "search",
|
||
width: 3,
|
||
options: [
|
||
{ label: "标题", value: "title" },
|
||
{ label: "类名", value: "class" },
|
||
{ label: "句柄", value: "handle" },
|
||
{ label: "进程名", value: "process" },
|
||
{ label: "活动窗口", value: "active" },
|
||
],
|
||
defaultValue: "title",
|
||
},
|
||
{
|
||
label: "窗口标题/类名/句柄/进程名/活动窗口",
|
||
component: "VariableInput",
|
||
icon: "title",
|
||
width: 9,
|
||
placeholder: "标题、类名支持模糊匹配,选择活动窗口无需输入",
|
||
options: {
|
||
window: {
|
||
props: [
|
||
{ label: "标题", value: "title" },
|
||
{ label: "类名", value: "class" },
|
||
{ label: "句柄", value: "handle" },
|
||
{ label: "进程名", value: "processName" },
|
||
],
|
||
},
|
||
},
|
||
},
|
||
];
|
||
|
||
const windowHandleConfig = [
|
||
{
|
||
label: "窗口句柄",
|
||
component: "VariableInput",
|
||
icon: "window",
|
||
width: 12,
|
||
placeholder: "可从搜索/选择窗口获取,留空则使用当前活动窗口",
|
||
defaultValue: newVarInputVal("str", ""),
|
||
options: {
|
||
window: {
|
||
props: "handle",
|
||
},
|
||
},
|
||
},
|
||
];
|
||
|
||
const searchElementConfig = [
|
||
...windowHandleConfig,
|
||
{
|
||
label: "元素查找方式",
|
||
component: "QSelect",
|
||
icon: "search",
|
||
width: 4,
|
||
options: [
|
||
{ label: "XPath", value: "xpath" },
|
||
{ label: "AutomationId", value: "id" },
|
||
{ label: "Name", value: "name" },
|
||
{ label: "组合条件", value: "condition" },
|
||
],
|
||
defaultValue: "xpath",
|
||
},
|
||
{
|
||
label: "查找值",
|
||
component: "VariableInput",
|
||
icon: "account_tree",
|
||
options: {
|
||
window: {
|
||
props: [
|
||
{ label: "XPath", value: "element.xpath" },
|
||
{ label: "AutomationId", value: "element.automationId" },
|
||
{ label: "Name", value: "element.name" },
|
||
],
|
||
},
|
||
},
|
||
width: 8,
|
||
placeholder: "XPath: /Pane[3]/Edit[2], 组合条件: name=按钮&type=Button",
|
||
},
|
||
];
|
||
|
||
const windowInfoStructure = {
|
||
title: { label: "窗口标题", suggestName: "windowTitle" },
|
||
class: { label: "窗口类名", suggestName: "windowClass" },
|
||
handle: { label: "窗口句柄", suggestName: "windowHandle" },
|
||
x: { label: "窗口X坐标", suggestName: "windowX" },
|
||
y: { label: "窗口Y坐标", suggestName: "windowY" },
|
||
width: { label: "窗口宽度", suggestName: "windowWidth" },
|
||
height: { label: "窗口高度", suggestName: "windowHeight" },
|
||
processName: { label: "窗口进程名", suggestName: "windowProcessName" },
|
||
processPath: { label: "窗口进程路径", suggestName: "windowProcessPath" },
|
||
element: {
|
||
label: "元素信息",
|
||
name: { label: "元素名称", suggestName: "elementName" },
|
||
class: { label: "元素类名", suggestName: "elementClass" },
|
||
type: { label: "元素类型", suggestName: "elementType" },
|
||
automationId: {
|
||
label: "元素AutomationId",
|
||
suggestName: "elementAutomationId",
|
||
},
|
||
xpath: { label: "元素XPath", suggestName: "elementXPath" },
|
||
handle: { label: "元素句柄", suggestName: "elementHandle" },
|
||
x: { label: "元素X坐标", suggestName: "elementX" },
|
||
y: { label: "元素Y坐标", suggestName: "elementY" },
|
||
width: { label: "元素宽度", suggestName: "elementWidth" },
|
||
height: { label: "元素高度", suggestName: "elementHeight" },
|
||
},
|
||
position: {
|
||
label: "鼠标位置",
|
||
x: { label: "鼠标X坐标", suggestName: "mouseX" },
|
||
y: { label: "鼠标Y坐标", suggestName: "mouseY" },
|
||
},
|
||
};
|
||
|
||
const controlResultStructure = {
|
||
success: { label: "是否成功", suggestName: "isSuccess" },
|
||
error: {
|
||
label: "错误信息",
|
||
suggestName: "errorMessage",
|
||
placeholder: "操作失败时的错误信息",
|
||
},
|
||
};
|
||
|
||
export const windowsCommands = {
|
||
label: "Win自动化",
|
||
icon: "window",
|
||
defaultOpened: false,
|
||
commands: [
|
||
// 获取窗口
|
||
{
|
||
value: "quickcomposer.windows.window.getWindowInfo",
|
||
label: "搜索/选择窗口",
|
||
icon: "window",
|
||
asyncMode: "await",
|
||
config: [],
|
||
subCommands: [
|
||
{
|
||
config: searchWindowConfig,
|
||
value: "quickcomposer.windows.window.getWindowInfo",
|
||
label: "搜索窗口",
|
||
icon: "search",
|
||
outputs: {
|
||
label: "窗口信息",
|
||
suggestName: "windowInfo",
|
||
structure: [
|
||
{
|
||
handle: { label: "窗口句柄", suggestName: "windowHandle" },
|
||
title: { label: "窗口标题", suggestName: "windowTitle" },
|
||
class: { label: "窗口类名", suggestName: "windowClass" },
|
||
x: { label: "窗口X坐标", suggestName: "windowX" },
|
||
y: { label: "窗口Y坐标", suggestName: "windowY" },
|
||
width: { label: "窗口宽度", suggestName: "windowWidth" },
|
||
height: { label: "窗口高度", suggestName: "windowHeight" },
|
||
processName: {
|
||
label: "窗口进程名",
|
||
suggestName: "windowProcessName",
|
||
},
|
||
processPath: {
|
||
label: "窗口进程路径",
|
||
suggestName: "windowProcessPath",
|
||
},
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.automation.inspect",
|
||
label: "手动选择窗口",
|
||
icon: "my_location",
|
||
outputs: {
|
||
label: "窗口信息",
|
||
suggestName: "windowInfo",
|
||
structure: windowInfoStructure,
|
||
},
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.automation.inspectPosition",
|
||
label: "从坐标选择窗口",
|
||
icon: "location_on",
|
||
config: [
|
||
{
|
||
component: "OptionEditor",
|
||
options: {
|
||
x: {
|
||
label: "X坐标",
|
||
component: "NumberInput",
|
||
icon: "arrow_right",
|
||
placeholder: "留空使用当前鼠标位置",
|
||
width: 6,
|
||
},
|
||
y: {
|
||
label: "Y坐标",
|
||
component: "NumberInput",
|
||
icon: "arrow_drop_down",
|
||
placeholder: "留空使用当前鼠标位置",
|
||
width: 6,
|
||
},
|
||
},
|
||
},
|
||
],
|
||
outputs: {
|
||
label: "窗口信息",
|
||
suggestName: "windowInfo",
|
||
structure: windowInfoStructure,
|
||
},
|
||
},
|
||
],
|
||
},
|
||
// 窗口
|
||
{
|
||
value: "quickcomposer.windows.window.setTopMost",
|
||
label: "窗口控制",
|
||
icon: "window",
|
||
config: windowHandleConfig,
|
||
outputs: {
|
||
label: "操作结果",
|
||
suggestName: "windowControlResult",
|
||
structure: controlResultStructure,
|
||
},
|
||
subCommands: [
|
||
{
|
||
value: "quickcomposer.windows.window.setTopMost",
|
||
label: "窗口置顶",
|
||
icon: "vertical_align_top",
|
||
config: [
|
||
{
|
||
component: "ButtonGroup",
|
||
icon: "push_pin",
|
||
width: 12,
|
||
options: [
|
||
{ label: "置顶", value: true },
|
||
{ label: "取消置顶", value: false },
|
||
],
|
||
defaultValue: true,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.window.setOpacity",
|
||
label: "窗口透明度",
|
||
icon: "opacity",
|
||
config: [
|
||
{
|
||
label: "透明度",
|
||
component: "NumberInput",
|
||
icon: "opacity",
|
||
width: 12,
|
||
min: 0,
|
||
max: 100,
|
||
defaultValue: 80,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.window.setWindowRect",
|
||
label: "窗口位置大小",
|
||
icon: "aspect_ratio",
|
||
config: [
|
||
{
|
||
label: "X坐标",
|
||
component: "NumberInput",
|
||
icon: "arrow_right",
|
||
width: 6,
|
||
defaultValue: 0,
|
||
},
|
||
{
|
||
label: "Y坐标",
|
||
component: "NumberInput",
|
||
icon: "arrow_drop_down",
|
||
width: 6,
|
||
defaultValue: 0,
|
||
},
|
||
{
|
||
label: "宽度",
|
||
component: "NumberInput",
|
||
icon: "swap_horiz",
|
||
width: 6,
|
||
min: 0,
|
||
defaultValue: 800,
|
||
},
|
||
{
|
||
label: "高度",
|
||
component: "NumberInput",
|
||
icon: "height",
|
||
width: 6,
|
||
min: 0,
|
||
defaultValue: 600,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.window.setWindowState",
|
||
label: "窗口状态",
|
||
icon: "open_in_full",
|
||
config: [
|
||
{
|
||
component: "ButtonGroup",
|
||
icon: "aspect_ratio",
|
||
width: 12,
|
||
options: [
|
||
{ label: "最大化", value: "maximize" },
|
||
{ label: "最小化", value: "minimize" },
|
||
{ label: "还原", value: "normal" },
|
||
],
|
||
defaultValue: "maximize",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.window.closeWindow",
|
||
label: "关闭窗口",
|
||
icon: "close",
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.window.setFocus",
|
||
label: "聚焦窗口",
|
||
icon: "front_hand",
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.window.setBorder",
|
||
label: "窗口边框",
|
||
icon: "border_style",
|
||
config: [
|
||
{
|
||
component: "ButtonGroup",
|
||
icon: "border_style",
|
||
width: 12,
|
||
options: [
|
||
{ label: "显示边框", value: true },
|
||
{ label: "隐藏边框", value: false },
|
||
],
|
||
defaultValue: true,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.window.setClickThrough",
|
||
label: "点击穿透",
|
||
icon: "touch_app",
|
||
config: [
|
||
{
|
||
component: "ButtonGroup",
|
||
icon: "touch_app",
|
||
width: 12,
|
||
options: [
|
||
{ label: "开启穿透", value: true },
|
||
{ label: "关闭穿透", value: false },
|
||
],
|
||
defaultValue: false,
|
||
},
|
||
],
|
||
},
|
||
],
|
||
asyncMode: "await",
|
||
},
|
||
// automation
|
||
{
|
||
value: "quickcomposer.windows.automation.click",
|
||
label: "界面自动化",
|
||
icon: "smart_button",
|
||
asyncMode: "await",
|
||
config: searchElementConfig,
|
||
outputs: {
|
||
label: "操作结果",
|
||
suggestName: "automationResult",
|
||
structure: controlResultStructure,
|
||
},
|
||
subCommands: [
|
||
{
|
||
value: "quickcomposer.windows.automation.click",
|
||
label: "点击元素",
|
||
icon: "mouse",
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.automation.sendkeys",
|
||
label: "模拟键盘输入",
|
||
icon: "keyboard",
|
||
config: [
|
||
{
|
||
component: "OptionEditor",
|
||
options: {
|
||
keys: {
|
||
label: "输入内容",
|
||
component: "VariableInput",
|
||
icon: "keyboard",
|
||
width: 12,
|
||
placeholder:
|
||
"模拟键盘输入,支持按键、组合键、中文,如:ab中文^a{BACKSPACE}",
|
||
options: {
|
||
items: [...modifierKeys, ...sendKeys],
|
||
appendItem: true,
|
||
},
|
||
},
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.automation.setvalue",
|
||
label: "设置值",
|
||
icon: "edit",
|
||
config: [
|
||
{
|
||
component: "OptionEditor",
|
||
options: {
|
||
newValue: {
|
||
label: "新值",
|
||
component: "VariableInput",
|
||
icon: "edit",
|
||
width: 9,
|
||
placeholder: "要设置的新值",
|
||
},
|
||
sendenter: {
|
||
label: "发送回车",
|
||
component: "CheckButton",
|
||
icon: "keyboard",
|
||
width: 3,
|
||
},
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.automation.getvalue",
|
||
label: "获取值",
|
||
icon: "content_paste",
|
||
outputs: {
|
||
label: "操作结果",
|
||
suggestName: "getValueResult",
|
||
structure: {
|
||
...controlResultStructure,
|
||
data: { label: "元素值", suggestName: "elementValue" },
|
||
},
|
||
},
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.automation.select",
|
||
label: "选择项目",
|
||
icon: "list",
|
||
config: [
|
||
{
|
||
component: "OptionEditor",
|
||
options: {
|
||
item: {
|
||
label: "选择项",
|
||
component: "VariableInput",
|
||
icon: "check_box",
|
||
width: 12,
|
||
placeholder: "要选择的项目名称",
|
||
},
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.automation.enable",
|
||
label: "启用/禁用元素",
|
||
icon: "toggle_on",
|
||
config: [
|
||
{
|
||
component: "OptionEditor",
|
||
options: {
|
||
enable: {
|
||
component: "ButtonGroup",
|
||
options: [
|
||
{ label: "启用", value: true },
|
||
{ label: "禁用", value: false },
|
||
],
|
||
},
|
||
},
|
||
defaultValue: {
|
||
enable: true,
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.automation.expand",
|
||
label: "展开/折叠",
|
||
icon: "unfold_more",
|
||
config: [
|
||
{
|
||
component: "OptionEditor",
|
||
options: {
|
||
expand: {
|
||
label: "操作",
|
||
component: "ButtonGroup",
|
||
icon: "unfold_more",
|
||
width: 12,
|
||
options: [
|
||
{ label: "展开", value: "true" },
|
||
{ label: "折叠", value: "false" },
|
||
],
|
||
},
|
||
},
|
||
defaultValue: {
|
||
expand: "true",
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.automation.scroll",
|
||
label: "滚动",
|
||
icon: "swap_vert",
|
||
config: [
|
||
{
|
||
component: "OptionEditor",
|
||
options: {
|
||
direction: {
|
||
label: "方向",
|
||
component: "ButtonGroup",
|
||
icon: "swap_vert",
|
||
width: 6,
|
||
options: [
|
||
{ label: "垂直", value: "vertical" },
|
||
{ label: "水平", value: "horizontal" },
|
||
],
|
||
},
|
||
amount: {
|
||
label: "位置",
|
||
component: "NumberInput",
|
||
icon: "straighten",
|
||
width: 6,
|
||
min: 0,
|
||
max: 100,
|
||
step: 10,
|
||
},
|
||
},
|
||
defaultValue: {
|
||
direction: "vertical",
|
||
amount: 0,
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.automation.wait",
|
||
label: "等待元素",
|
||
icon: "hourglass_empty",
|
||
config: [
|
||
{
|
||
component: "OptionEditor",
|
||
options: {
|
||
timeout: {
|
||
label: "超时(秒)",
|
||
component: "NumberInput",
|
||
icon: "timer",
|
||
width: 4,
|
||
min: 1,
|
||
max: 3600,
|
||
step: 10,
|
||
},
|
||
},
|
||
defaultValue: {
|
||
timeout: 30,
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.automation.focus",
|
||
label: "设置焦点",
|
||
icon: "center_focus_strong",
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.automation.highlight",
|
||
label: "高亮显示",
|
||
icon: "highlight",
|
||
config: [
|
||
{
|
||
component: "OptionEditor",
|
||
options: {
|
||
duration: {
|
||
label: "持续时间(秒)",
|
||
component: "NumberInput",
|
||
icon: "timer",
|
||
width: 12,
|
||
min: 1,
|
||
max: 60,
|
||
step: 5,
|
||
},
|
||
},
|
||
defaultValue: {
|
||
duration: 2,
|
||
},
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
// sendmessage
|
||
{
|
||
value: "quickcomposer.windows.sendmessage.listControls",
|
||
label: "发送控制消息",
|
||
icon: "smart_button",
|
||
asyncMode: "await",
|
||
config: windowHandleConfig,
|
||
outputs: {
|
||
label: "操作结果",
|
||
suggestName: "sendMessageResult",
|
||
structure: controlResultStructure,
|
||
},
|
||
subCommands: [
|
||
{
|
||
value: "quickcomposer.windows.sendmessage.listControls",
|
||
label: "获取控件树",
|
||
icon: "account_tree",
|
||
config: [
|
||
{
|
||
component: "OptionEditor",
|
||
width: 12,
|
||
options: {
|
||
filter: {
|
||
label: "控件过滤",
|
||
component: "VariableInput",
|
||
icon: "filter_alt",
|
||
options: {
|
||
window: {
|
||
props: "element.type",
|
||
},
|
||
},
|
||
width: 8,
|
||
placeholder: "可选,输入要过滤的控件类型或文本",
|
||
},
|
||
background: {
|
||
label: "后台操作",
|
||
component: "CheckButton",
|
||
icon: "back_hand",
|
||
width: 4,
|
||
},
|
||
},
|
||
defaultValue: {
|
||
background: true,
|
||
},
|
||
},
|
||
],
|
||
outputs: {
|
||
label: "控件树信息",
|
||
suggestName: "controlsTree",
|
||
structure: [
|
||
{
|
||
handle: { label: "句柄", suggestName: "handle" },
|
||
class: { label: "类名", suggestName: "class" },
|
||
text: { label: "文本", suggestName: "text" },
|
||
visible: { label: "是否可见", suggestName: "visible" },
|
||
location: {
|
||
label: "位置",
|
||
suggestName: "location",
|
||
placeholder: "对象,x,y,width,height",
|
||
},
|
||
matched: { label: "是否匹配", suggestName: "matched" },
|
||
children: {
|
||
label: "子控件",
|
||
suggestName: "childrenControls",
|
||
placeholder: "数组,所有子控件信息",
|
||
},
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.sendmessage.click",
|
||
label: "点击控件",
|
||
icon: "mouse",
|
||
config: [
|
||
{
|
||
component: "ButtonGroup",
|
||
width: 12,
|
||
options: [
|
||
{ label: "单击", value: "click" },
|
||
{ label: "双击", value: "doubleclick" },
|
||
{ label: "右键", value: "rightclick" },
|
||
],
|
||
defaultValue: "click",
|
||
},
|
||
{
|
||
component: "OptionEditor",
|
||
width: 12,
|
||
options: {
|
||
control: {
|
||
label: "控件类型",
|
||
component: "VariableInput",
|
||
icon: "class",
|
||
options: {
|
||
window: {
|
||
props: "element.type",
|
||
},
|
||
},
|
||
width: 6,
|
||
placeholder: "可选,和文本至少输入一个",
|
||
},
|
||
text: {
|
||
label: "控件文本",
|
||
component: "VariableInput",
|
||
icon: "text_fields",
|
||
options: {
|
||
window: {
|
||
props: "element.name",
|
||
},
|
||
},
|
||
width: 6,
|
||
placeholder: "可选,和控件类型至少输入一个",
|
||
},
|
||
pos: {
|
||
label: "坐标",
|
||
component: "VariableInput",
|
||
icon: "place",
|
||
width: 6,
|
||
placeholder: "可选,格式:x,y",
|
||
},
|
||
background: {
|
||
label: "后台操作",
|
||
component: "CheckButton",
|
||
icon: "back_hand",
|
||
width: 6,
|
||
},
|
||
},
|
||
defaultValue: {
|
||
background: true,
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.sendmessage.sendText",
|
||
label: "发送文本",
|
||
icon: "keyboard",
|
||
config: [
|
||
{
|
||
label: "文本内容",
|
||
component: "VariableInput",
|
||
icon: "text_fields",
|
||
width: 12,
|
||
placeholder: "要发送的文本内容",
|
||
},
|
||
{
|
||
component: "OptionEditor",
|
||
width: 12,
|
||
options: {
|
||
control: {
|
||
label: "目标控件",
|
||
component: "VariableInput",
|
||
options: {
|
||
window: {
|
||
props: "element.type",
|
||
},
|
||
},
|
||
icon: "class",
|
||
width: 8,
|
||
placeholder: "可选,目标控件的类名",
|
||
},
|
||
background: {
|
||
label: "后台操作",
|
||
component: "CheckButton",
|
||
icon: "back_hand",
|
||
width: 4,
|
||
},
|
||
},
|
||
defaultValue: {
|
||
background: true,
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.sendmessage.sendKeys",
|
||
label: "发送按键",
|
||
icon: "keyboard_alt",
|
||
config: [
|
||
{
|
||
label: "按键序列",
|
||
component: "VariableInput",
|
||
icon: "keyboard",
|
||
width: 12,
|
||
placeholder: "多个逗号隔开,如:a,b,{ENTER},不支持组合键",
|
||
options: {
|
||
items: sendKeys,
|
||
appendItem: true,
|
||
},
|
||
},
|
||
{
|
||
component: "OptionEditor",
|
||
width: 12,
|
||
options: {
|
||
control: {
|
||
label: "目标控件",
|
||
component: "VariableInput",
|
||
options: {
|
||
window: {
|
||
props: "element.type",
|
||
},
|
||
},
|
||
icon: "class",
|
||
width: 8,
|
||
placeholder: "可选,目标控件的类名",
|
||
},
|
||
background: {
|
||
label: "后台操作",
|
||
component: "CheckButton",
|
||
icon: "back_hand",
|
||
width: 4,
|
||
},
|
||
},
|
||
defaultValue: {
|
||
background: true,
|
||
},
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
// 监控
|
||
{
|
||
value: "quickcomposer.windows.monitor.watchClipboard",
|
||
label: "剪贴板/文件监控",
|
||
icon: "monitor_heart",
|
||
asyncMode: "await",
|
||
showLoading: true,
|
||
subCommands: [
|
||
{
|
||
value: "quickcomposer.windows.monitor.watchClipboard",
|
||
label: "等待剪贴板变化",
|
||
icon: "content_paste",
|
||
outputs: {
|
||
label: "剪贴板变化事件",
|
||
suggestName: "clipboardChangeEvent",
|
||
structure: {
|
||
format: {
|
||
label: "变化内容类型",
|
||
suggestName: "clipboardContentFormat",
|
||
placeholder: "如: text, files",
|
||
},
|
||
content: {
|
||
label: "剪切板内容",
|
||
suggestName: "clipboardContent",
|
||
},
|
||
},
|
||
},
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.monitor.watchFileSystem",
|
||
label: "等待文件夹变化",
|
||
icon: "folder",
|
||
config: [
|
||
{
|
||
label: "监控路径",
|
||
component: "VariableInput",
|
||
icon: "folder",
|
||
width: 12,
|
||
options: {
|
||
dialog: {
|
||
type: "open",
|
||
options: {
|
||
title: "选择文件夹",
|
||
properties: ["openDirectory"],
|
||
},
|
||
},
|
||
},
|
||
placeholder: "要监控的文件夹路径",
|
||
required: true,
|
||
},
|
||
{
|
||
component: "OptionEditor",
|
||
width: 12,
|
||
options: {
|
||
filter: {
|
||
label: "文件过滤",
|
||
component: "VariableInput",
|
||
icon: "filter_alt",
|
||
width: 6,
|
||
placeholder: "如: *.txt, *.docx",
|
||
},
|
||
recursive: {
|
||
label: "包含子文件夹",
|
||
component: "CheckButton",
|
||
icon: "subdirectory_arrow_right",
|
||
width: 6,
|
||
defaultValue: true,
|
||
},
|
||
},
|
||
defaultValue: {
|
||
recursive: false,
|
||
},
|
||
},
|
||
],
|
||
outputs: {
|
||
label: "文件夹变化事件",
|
||
suggestName: "fileChangeEvent",
|
||
structure: {
|
||
event: {
|
||
label: "事件类型",
|
||
suggestName: "fileChangeEventType",
|
||
placeholder: "如: created, modified, deleted",
|
||
},
|
||
path: {
|
||
label: "变化文件路径",
|
||
suggestName: "changedFilePath",
|
||
},
|
||
},
|
||
},
|
||
},
|
||
],
|
||
},
|
||
// 进程
|
||
{
|
||
value: "quickcomposer.windows.process.listProcesses",
|
||
label: "进程管理",
|
||
icon: "memory",
|
||
asyncMode: "await",
|
||
subCommands: [
|
||
{
|
||
value: "quickcomposer.windows.process.listProcesses",
|
||
label: "进程列表",
|
||
icon: "list",
|
||
outputs: {
|
||
label: "进程列表",
|
||
suggestName: "processList",
|
||
structure: [
|
||
{
|
||
id: { label: "进程ID", suggestName: "processId" },
|
||
name: { label: "进程名称", suggestName: "processName" },
|
||
title: { label: "进程标题", suggestName: "processTitle" },
|
||
path: { label: "进程路径", suggestName: "processPath" },
|
||
startTime: {
|
||
label: "启动时间",
|
||
suggestName: "processStartTime",
|
||
},
|
||
cpuTime: { label: "CPU时间", suggestName: "processCpuTime" },
|
||
memory: { label: "内存使用", suggestName: "processMemory" },
|
||
threads: { label: "线程数", suggestName: "processThreads" },
|
||
priority: { label: "优先级", suggestName: "processPriority" },
|
||
description: {
|
||
label: "描述",
|
||
suggestName: "processDescription",
|
||
},
|
||
company: { label: "公司", suggestName: "processCompany" },
|
||
version: { label: "版本", suggestName: "processVersion" },
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.process.killProcess",
|
||
label: "终止进程",
|
||
icon: "stop_circle",
|
||
config: [
|
||
{
|
||
label: "进程ID/名称",
|
||
component: "VariableInput",
|
||
icon: "tag",
|
||
width: 12,
|
||
placeholder: "输入进程ID或名称",
|
||
required: true,
|
||
},
|
||
],
|
||
outputs: {
|
||
label: "是否成功",
|
||
suggestName: "isProcessTerminateSuccess",
|
||
typeName: "布尔值",
|
||
},
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.process.startProcess",
|
||
label: "启动进程",
|
||
icon: "play_circle",
|
||
config: [
|
||
{
|
||
label: "程序路径",
|
||
component: "VariableInput",
|
||
icon: "folder",
|
||
width: 12,
|
||
options: {
|
||
dialog: {
|
||
type: "open",
|
||
options: {
|
||
title: "选择程序",
|
||
filters: [
|
||
{ name: "可执行文件", extensions: ["exe"] },
|
||
{ name: "所有文件", extensions: ["*"] },
|
||
],
|
||
},
|
||
},
|
||
},
|
||
},
|
||
{
|
||
label: "启动参数",
|
||
component: "VariableInput",
|
||
icon: "code",
|
||
width: 12,
|
||
placeholder: "可选的启动参数",
|
||
},
|
||
],
|
||
outputs: {
|
||
label: "是否成功",
|
||
suggestName: "isProcessStartSuccess",
|
||
typeName: "布尔值",
|
||
},
|
||
},
|
||
],
|
||
},
|
||
// 注册表
|
||
{
|
||
value: "quickcomposer.windows.registry.listKeys",
|
||
label: "注册表管理",
|
||
icon: "settings",
|
||
asyncMode: "await",
|
||
config: [
|
||
{
|
||
label: "注册表路径",
|
||
component: "VariableInput",
|
||
icon: "folder",
|
||
width: 12,
|
||
placeholder: "如: HKLM\\SOFTWARE\\Microsoft\\Windows",
|
||
options: {
|
||
items: registryPaths,
|
||
},
|
||
},
|
||
],
|
||
subCommands: [
|
||
{
|
||
value: "quickcomposer.windows.registry.listKeys",
|
||
label: "列出项",
|
||
icon: "list",
|
||
outputs: {
|
||
label: "注册表项列表",
|
||
suggestName: "registryKeys",
|
||
structure: [
|
||
{
|
||
path: {
|
||
label: "注册表路径",
|
||
suggestName: "registryPath",
|
||
},
|
||
name: {
|
||
label: "项名称",
|
||
suggestName: "registryName",
|
||
},
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.registry.getValue",
|
||
label: "获取值",
|
||
icon: "search",
|
||
config: [
|
||
{
|
||
label: "注册表路径",
|
||
component: "VariableInput",
|
||
icon: "folder",
|
||
width: 12,
|
||
placeholder: "如: HKLM\\SOFTWARE\\Microsoft\\Windows",
|
||
options: {
|
||
items: registryPaths,
|
||
},
|
||
required: true,
|
||
},
|
||
{
|
||
label: "值名称",
|
||
component: "VariableInput",
|
||
icon: "label",
|
||
width: 12,
|
||
placeholder: "要获取的值名称",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.registry.setValue",
|
||
label: "设置值",
|
||
icon: "edit",
|
||
config: [
|
||
{
|
||
label: "注册表路径",
|
||
component: "VariableInput",
|
||
icon: "folder",
|
||
width: 12,
|
||
placeholder: "如: HKLM\\SOFTWARE\\Microsoft\\Windows",
|
||
options: {
|
||
items: registryPaths,
|
||
},
|
||
required: true,
|
||
},
|
||
{
|
||
label: "值名称",
|
||
component: "VariableInput",
|
||
icon: "label",
|
||
width: 12,
|
||
placeholder: "要设置的值名称",
|
||
required: true,
|
||
},
|
||
{
|
||
label: "值内容",
|
||
component: "VariableInput",
|
||
icon: "text_fields",
|
||
width: 8,
|
||
required: true,
|
||
},
|
||
{
|
||
label: "值类型",
|
||
component: "QSelect",
|
||
icon: "category",
|
||
width: 4,
|
||
options: [
|
||
{ label: "字符串", value: "string" },
|
||
{ label: "可扩展字符串", value: "expandstring" },
|
||
{ label: "二进制", value: "binary" },
|
||
{ label: "DWORD", value: "dword" },
|
||
{ label: "QWORD", value: "qword" },
|
||
{ label: "多字符串", value: "multistring" },
|
||
],
|
||
defaultValue: "string",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.registry.deleteValue",
|
||
label: "删除值",
|
||
icon: "delete",
|
||
config: [
|
||
{
|
||
label: "注册表路径",
|
||
component: "VariableInput",
|
||
icon: "folder",
|
||
width: 12,
|
||
placeholder: "如: HKLM\\SOFTWARE\\Microsoft\\Windows",
|
||
options: {
|
||
items: registryPaths,
|
||
},
|
||
required: true,
|
||
},
|
||
{
|
||
label: "值名称",
|
||
component: "VariableInput",
|
||
icon: "label",
|
||
width: 12,
|
||
placeholder: "要删除的值名称(留空删除整个项)",
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
// 服务
|
||
{
|
||
value: "quickcomposer.windows.service.listServices",
|
||
label: "服务管理",
|
||
icon: "miscellaneous_services",
|
||
asyncMode: "await",
|
||
subCommands: [
|
||
{
|
||
value: "quickcomposer.windows.service.listServices",
|
||
label: "服务列表",
|
||
icon: "list",
|
||
outputs: {
|
||
label: "服务列表",
|
||
suggestName: "serviceList",
|
||
structure: [
|
||
{
|
||
name: { label: "服务名称", suggestName: "serviceName" },
|
||
displayName: {
|
||
label: "显示名称",
|
||
suggestName: "serviceDisplayName",
|
||
},
|
||
status: { label: "状态", suggestName: "serviceStatus" },
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.service.controlService",
|
||
label: "控制服务",
|
||
icon: "settings",
|
||
config: [
|
||
{
|
||
label: "服务名称",
|
||
component: "VariableInput",
|
||
icon: "label",
|
||
width: 12,
|
||
placeholder: "输入服务名称",
|
||
required: true,
|
||
},
|
||
{
|
||
label: "操作",
|
||
component: "ButtonGroup",
|
||
icon: "play_circle",
|
||
width: 12,
|
||
options: [
|
||
{ label: "启动", value: "start" },
|
||
{ label: "停止", value: "stop" },
|
||
{ label: "暂停", value: "pause" },
|
||
{ label: "继续", value: "continue" },
|
||
],
|
||
defaultValue: "start",
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
// 软件
|
||
{
|
||
value: "quickcomposer.windows.software.listSoftware",
|
||
label: "软件管理",
|
||
icon: "apps",
|
||
asyncMode: "await",
|
||
subCommands: [
|
||
{
|
||
value: "quickcomposer.windows.software.listSoftware",
|
||
label: "软件列表",
|
||
icon: "list",
|
||
outputs: {
|
||
label: "软件列表",
|
||
suggestName: "softwareList",
|
||
structure: [
|
||
{
|
||
name: { label: "软件名称", suggestName: "softwareName" },
|
||
publisher: {
|
||
label: "发布者",
|
||
suggestName: "softwarePublisher",
|
||
},
|
||
version: { label: "版本", suggestName: "softwareVersion" },
|
||
source: { label: "来源", suggestName: "softwareSource" },
|
||
id: { label: "ID", suggestName: "softwareId" },
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.software.uninstallSoftware",
|
||
label: "卸载软件",
|
||
icon: "delete",
|
||
config: [
|
||
{
|
||
label: "软件ID",
|
||
component: "VariableInput",
|
||
icon: "tag",
|
||
width: 12,
|
||
placeholder: "输入软件ID(从软件列表获取)",
|
||
required: true,
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
// 系统工具
|
||
{
|
||
value: "quickcomposer.windows.utils.setWallpaper",
|
||
label: "系统工具",
|
||
icon: "build",
|
||
asyncMode: "await",
|
||
subCommands: [
|
||
{
|
||
value: "quickcomposer.windows.utils.setWallpaper",
|
||
label: "设置壁纸",
|
||
icon: "wallpaper",
|
||
config: [
|
||
{
|
||
label: "壁纸路径",
|
||
component: "VariableInput",
|
||
icon: "image",
|
||
width: 12,
|
||
options: {
|
||
dialog: {
|
||
type: "open",
|
||
options: {
|
||
title: "选择壁纸",
|
||
filters: [
|
||
{
|
||
name: "图片文件",
|
||
extensions: ["jpg", "jpeg", "png", "bmp"],
|
||
},
|
||
],
|
||
},
|
||
},
|
||
},
|
||
required: true,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.utils.controlMonitor",
|
||
label: "控制显示器",
|
||
icon: "desktop_windows",
|
||
config: [
|
||
{
|
||
component: "ButtonGroup",
|
||
icon: "power_settings_new",
|
||
width: 12,
|
||
options: [
|
||
{ label: "开启", value: "on" },
|
||
{ label: "关闭", value: "off" },
|
||
],
|
||
defaultValue: "off",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.utils.powerControl",
|
||
label: "电源控制",
|
||
icon: "power",
|
||
config: [
|
||
{
|
||
component: "ButtonGroup",
|
||
icon: "power_settings_new",
|
||
width: 12,
|
||
options: [
|
||
{ label: "睡眠", value: "sleep" },
|
||
{ label: "休眠", value: "hibernate" },
|
||
{ label: "保持唤醒", value: "awake" },
|
||
{ label: "正常", value: "normal" },
|
||
],
|
||
defaultValue: "sleep",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.utils.configureNetwork",
|
||
label: "配置网络",
|
||
icon: "network_check",
|
||
config: [
|
||
{
|
||
label: "网卡名称",
|
||
component: "VariableInput",
|
||
icon: "settings_ethernet",
|
||
width: 12,
|
||
placeholder: "输入网卡名称",
|
||
required: true,
|
||
},
|
||
{
|
||
label: "IP地址",
|
||
component: "VariableInput",
|
||
icon: "router",
|
||
width: 6,
|
||
placeholder: "如: 192.168.1.100",
|
||
required: true,
|
||
},
|
||
{
|
||
label: "子网掩码",
|
||
component: "VariableInput",
|
||
icon: "filter_alt",
|
||
width: 6,
|
||
placeholder: "如: 255.255.255.0",
|
||
required: true,
|
||
},
|
||
{
|
||
label: "默认网关",
|
||
component: "VariableInput",
|
||
icon: "dns",
|
||
width: 6,
|
||
placeholder: "可选",
|
||
},
|
||
{
|
||
label: "DNS服务器",
|
||
component: "VariableInput",
|
||
icon: "dns",
|
||
width: 6,
|
||
placeholder: "可选",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.utils.manageStartup",
|
||
label: "开机启动项",
|
||
icon: "power",
|
||
config: [
|
||
{
|
||
label: "程序路径",
|
||
component: "VariableInput",
|
||
icon: "folder",
|
||
width: 12,
|
||
options: {
|
||
dialog: {
|
||
type: "open",
|
||
options: {
|
||
title: "选择程序",
|
||
filters: [
|
||
{ name: "可执行文件", extensions: ["exe"] },
|
||
{ name: "所有文件", extensions: ["*"] },
|
||
],
|
||
},
|
||
},
|
||
},
|
||
required: true,
|
||
},
|
||
{
|
||
label: "启动项名称",
|
||
component: "VariableInput",
|
||
icon: "label",
|
||
width: 8,
|
||
required: true,
|
||
},
|
||
{
|
||
label: "移除",
|
||
component: "CheckButton",
|
||
icon: "delete",
|
||
width: 4,
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.utils.createShortcut",
|
||
label: "创建快捷方式",
|
||
icon: "link",
|
||
config: [
|
||
{
|
||
label: "目标路径",
|
||
component: "VariableInput",
|
||
icon: "folder",
|
||
width: 12,
|
||
options: {
|
||
dialog: {
|
||
type: "open",
|
||
options: {
|
||
title: "选择目标",
|
||
filters: [{ name: "所有文件", extensions: ["*"] }],
|
||
},
|
||
},
|
||
},
|
||
required: true,
|
||
},
|
||
{
|
||
label: "快捷方式路径",
|
||
component: "VariableInput",
|
||
icon: "save",
|
||
width: 12,
|
||
options: {
|
||
dialog: {
|
||
type: "save",
|
||
options: {
|
||
title: "保存快捷方式",
|
||
filters: [{ name: "快捷方式", extensions: ["lnk"] }],
|
||
},
|
||
},
|
||
},
|
||
required: true,
|
||
},
|
||
{
|
||
label: "启动参数",
|
||
component: "VariableInput",
|
||
icon: "code",
|
||
width: 12,
|
||
placeholder: "可选的启动参数",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: "quickcomposer.windows.utils.setBrightness",
|
||
label: "设置亮度",
|
||
icon: "brightness_medium",
|
||
config: [
|
||
{
|
||
label: "亮度级别",
|
||
component: "NumberInput",
|
||
icon: "brightness_medium",
|
||
width: 12,
|
||
min: 0,
|
||
max: 100,
|
||
defaultValue: 50,
|
||
required: true,
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
};
|