自定义操作窗

因软件更新较快,部分文档内容与软件最新版本有所出入,请知悉。

【本功能开发中,所有内容都可能发生变动,欢迎反馈】

本模块的目的是为了提供一个可以多次点击按钮触发某项操作(而不会自动关闭)的小窗口。

支持的操作类型:

  • 显示操作窗:显示操作窗后继续执行后面的步骤。
  • 显示操作窗并等待关闭:显示操作窗,并等待操作窗关闭后,再执行后面的步骤。
  • 关闭操作窗:关闭通过窗口标识指定的操作窗。

显示操作窗

显示操作窗后继续执行后面的步骤。


参数

【操作项定义】

定义操作窗上所显示的按钮和它们的行为。

数据格式基本与显示菜单模块的菜单数据参数一致,请参考该文档,同时注意以下区别:

  • 本模块不支持分隔符。
  • 当操作类型为“显示操作窗并等待关闭”时,支持使用operation=close&data=返回值方式指定用于关闭操作窗的按钮以及该按钮所需要返回的“操作项数据”值。
  • 支持使用operation=sp&spname=子程序名称的形式调用动作中所定义的子程序。将会自动传入data、spname到子程序的对应输入变量(如果定义了这些变量的话)。如果需要,可以为子程序传递额外的参数,格式为:子程序变量名1=参数值1&子程序变量名2=参数值2...
  • 最多支持一级子项。数据通常有两种形式:(1)全部都不带子项,所有操作项按设定的方式平铺排列。(2)首层节点带子项。此时首层节点作为分组处理(可选多种分组方式)。


使用缩进格式时,可使用 - (短横线加空格)作为开始,为CommonOperationItem设置Menu数据。(菜单项的子菜单不再需要添加 - )。

[fa:Light_Play]执行动作|operation=action&data=Hello&action=自定义操作窗示例
[fa:Light_Pen]子程序|operation=sp&data=Hello&spname=testsp&num=100
[icon:c:\windows\notepad.exe]记事本|operation=run&data=notepad
[url:https://helperservice.getquicker.cn/favicon/get/baidu.com]打开baidu|operation=open&data=http%3A%2F%2Fbaidu.com
  [url:https://helperservice.getquicker.cn/favicon/get/baidu.com]打开Google|operation=open&data=http%3A%2F%2Fgoogle.com
  - [url:https://helperservice.getquicker.cn/favicon/get/baidu.com]打开Google|operation=open&data=http%3A%2F%2Fgoogle.com
  - ----
  - 子菜单
    [url:https://helperservice.getquicker.cn/favicon/get/baidu.com]打开Google|operation=open&data=http%3A%2F%2Fgoogle.com
[fa:Light_Pen]模拟输入文本Hello|operation=sendkeys&data=Hello

对应的右键菜单:

设置单个按钮的背景色

通过额外的参数.background可设置单个按钮的背景颜色:

缩进格式:

[fa:Light_Play]执行动作|operation=action&data=Hello&action=_this_&.background=#66FF0000

JSON格式:

      {
        "Title": "执行动作",
        "Icon": "fa:Light_Play",
        "Description": null,
        "Data": "Hello",
        "DataType": null,
        "Operation": "action",
        "Action": "_this_",
        "Menu": null,
        "SecondaryIcon": null,
        "ExtraData": {
          ".background": "#66FF0000"
        }

表达式创建:

$=new CommonOperationItem(){
    Title = "执行动作",
    Icon = "fa:Light_Pen:#000000",
    Description = "描述",
    Operation = "action",
    Action = "_this",
    ExtraData = new Dictionary<string,object>(){
        {".background", "#20FF0000"}
    }
}


使用操作项编辑器

注意:

  • 使用此功能会自动清除原始数据中的注释内容,也可能会造成一些原始数据格式变化或丢失。
  • 不支持在开启插值或表达式的情况下使用。仅支持编辑缩进格式或json格式数据。

点击参数输入框右侧的编辑按钮,可以打开操作项编辑器。

在打开的编辑窗口中修改或添加操作项,然后保存即可。

其它参数

【空隙】按键之间的间隙。

【背景颜色】操作窗的背景颜色。

【列数】【列宽】

确定按钮的排列方式。

列数大于0时,按钮按指定列数对齐排列,宽度固定。此时列宽应设置为 0 或 -1 。

列数等于 0 时,按钮自动折行排列。此时根据列宽的数值,分为几种情况:

  • 列宽如果为 -1,则表示每个按钮根据其内容自动设置宽度。
  • 列宽如果为 0,则表示所有按钮等宽,宽度根据内容最多的按钮确定。
  • 列宽为大于 0 的值,表示使用固定的宽度。


【分组方式】

操作项数据一级节点包含子项时,一级作为分组,二级作为按钮显示。


【操作窗标题】 窗口左上角的标题文字。

【窗口标识】

如果需要先显示窗口,后面再根据需要更新窗口内容或通过动作关闭窗口,可设定一个自定义的文本作为窗口标识。 后面使用相同的窗口标识再次调用“显示操作窗”即可更新窗口内容。或使用“关闭操作窗”操作来关闭它。

为避免和其它动作重复,尽量使用较为特殊一点的文字,或使用=表示使用当前动作ID作为窗口标识(在多个动作中使用=作为窗口标识时,各动作之间互不影响)。


【失败后停止】

遇到异常后是否停止动作。

特别的,当操作方式为“显示操作窗并等待关闭”,并且输出了“选择的操作项数据”或“选择的操作项”时,如果通过点击窗口右上角的关闭按钮或双击空白区域等方式关闭了窗口,则视为步骤执行失败。如需继续执行后续的步骤,请取消本选项。


【窗口位置】选择操作窗的显示位置类型。

【窗口尺寸/位置】与“窗口位置”参数结合使用。在“窗口位置”参数选择“自定义位置”时,指定窗口的坐标范围。其他情况指定窗口的尺寸。

可以使用百分比或像素值。如:

  • 50%,50%:设定窗口尺寸为屏幕的一半宽一半高。
  • 300,50%:宽度为300像素,高度为屏幕一半。
  • 600,300:宽度为600像素,高度为300像素。
  • 10%,10%,50%,50%:指定窗口的左、顶、右、底边在屏幕上的位置(百分比位置)
  • 100,100,50%,50%:指定窗口的左、顶、右、底边在屏幕上的位置(百分比单位和像素单位结合)


【记忆位置等状态】保存操作窗的位置、分组折叠展开状态、当前标签页等信息,并在下次显示此操作窗时自动使用之前的状态。

【按钮内容对齐方式】按钮中的图标和文字的对齐方向。

【按钮颜色】按钮的背景颜色。使用自定义按钮颜色后,鼠标悬浮时的颜色对比就会变得不是很明显了。

【字体大小】按钮文字字体大小(逻辑像素数)。

【图标大小】按钮图标大小(逻辑像素数)。

【窗口右键菜单】必要时用于自定义窗口的右键菜单内容。 格式与“操作项定义”一致。



操作窗的使用

折叠:点击标题栏最小化按钮,或双击标题栏或窗口内部,可将操作窗折叠为一个横条。也可使用轮盘、手势的窗口最小化、最大化功能来折叠。


拖动位置:按住标题栏或窗口空白区域即可拖动窗口。


切换分组:点击标签页,或在标签页标题区使用滚轮可以快速切换页面。

关闭操作窗:

  • 点击右上角关闭按钮;
  • 通过窗口右键菜单;
  • 使用轮盘、手势等功能中的关闭窗口;




显示操作窗并等待关闭

显示并等待操作窗关闭后再继续后面的步骤。

返回所点击的按钮

此方式时,支持输出所点击的用于关闭窗口的操作项数据。

如下图,使用operation=close定义了两个用于关闭窗口的按钮,并通过data参数定义了关联的数据。

如果通过点击这两个按钮关闭窗口,即可从“选择的操作项数据”中得到对应的操作项的data参数(关闭1关闭2)。

如果通过点击窗口右上角的关闭按钮或双击窗口空白区域等方式关闭窗口,步骤会执行失败。(此时如果需要继续执行动作,需要取消失败后停止选项)。

关闭操作窗

通过指定“窗口标识”的方式,关闭前面步骤打开的操作窗。


注意事项

1)尽量避免在Quicker的窗口上使用自定义操作窗。

同一个进程的窗口会互相抢占焦点,在操作窗里模拟的按键消息,可能会作用到操作窗自身,从而导致一些意外的情况。(如模拟空格,会导致再次按下操作窗按钮,从而循环触发动作)。

更新历史

  • 20230105:
    • 增加多行多列分组布局方式;
    • 缩进格式增加Menu数据定义格式;
  • 20230111
    • 增加注意事项。
语雀在语雀上查看