选中内容

MenuZ 模块会将选中的内容保存一个环境信息( env )

这个环境信息 ( env ) 保存的内容如下:

_images/menuz-select-type.png

鼠标焦点选中了内容,MenuZ 会自动将选中的内容进行分析

文件

标记当前选中了文件,然后进一步分析出文件全路径、文件名、文件后缀名等。

注解

选中文件示例:

C:\\dir\\quickz.txt

MenuZ 模块的处理如下:

env.isFile          标记是否选中文件       True
env.isFileMulti     标记是否选中多个文件   False
env.file.path       文件路径              C:\dir\quickz.txt
env.file.name       文件名                quickz.txt
env.file.dir        文件目录              C:\dir
env.file.ext        文件后缀              txt
env.file.namenoext  无文件后缀的文件名     quickz
env.file.drive      驱动器名              C

文本

标记当前选中了文本,并获取纯文本内容。

注解

选择示例:

abcdefg 中文

MenuZ 模块的处理如下:

env.isText          标记当前选中是文本类型        True
env.text            当前选中的文本                abcdefg 中文

窗口

无论是否选中内容,窗口信息都会被获取。

注解

当 Notepad 记事本程序上获取窗口信息

MenuZ 模块的处理如下:

env.isWin            标记当前选中文本             True
env.x                当前鼠标的 x 座标            324
env.y                当前鼠标的 y 座标            230
env.winHwnd          当前的 Hwnd 值              0xf3d38028
env.winClass         当前的 Class 值,区分大小写   Notepad
env.winExe           当前的程序名                notepad.exe
env.winExeFullPath   完整程序名                  C:\windows\notepad.exe
env.winControl       当前控件名                  Edit1
env.winTitle         当前程序标题名              无标题 - 记事本

菜单项

MenuZ 模块的菜单项支持完整的自定义,拥有多个选项满足个性化要求。

小技巧

所有的菜单项的选项都支持变量

名称 (name)

菜单的名称,名称无特殊限制。 当名称为空时,菜单项会显示为分割线。

如需要指定菜单项的快捷键,请通过添加 & 字符实现。例如:

&Notepad 显示出的结果是 Notepad ,并支持 N 键激活

如果需要对齐菜单名称,请通过添加 >> 实现,例如:

记事本>>(&N) 显示出的名称为 记事本              (&N)

图标 (icon)

_images/menuz-item-icon.png

为了方便标识菜单,菜单项支持添加图标展示。

图标值由图标资源文件 + 图标编号组成,图标编号需要添加,写法如下:

C:\windows\notepad.exe:0

图标资源文件支持多种格式,包括:

.ico .exe .dll .icl

例如指定变量 cmdC:\windows\system32\cmd.exe

可以这样使用图标值: %cmd%:0

文字颜色 (tcolor)

菜单项可以设置文字颜色,颜色值为6位十六进制RGB值。

例如: 0xffff00

_images/menuz-item-color.png

颜色代码可以查询 这里

背景颜色 (bgcolor)

菜单项背景颜色,和文字颜色的设置一样,这里不多描述。

筛选器 (filter)

默认所有定义的菜单在任何情况下都会显示出来,这样当然不够方便快捷。所以你需要了解筛选器的知识,还记得我们说过的环境信息 env 吗?我们需要定义筛选器,MenuZ 模块会根据定义的条件来判断是否满足当前的环境信息,最终决定是否显示对应的菜单项。

定义一个筛选器, 声明仅当选中的文件后缀名为 ahktxtini 的文件才显示,你可以这样表示:

{ext:= ahk, txt, ini}

MenuZ 内置10个筛选器,除了 {ext} 之外,常用的还有 {only}, {text}, {filename}, {winexe}, {pos} 等。

这是详细列表: 筛选器列表

上述的例子中,你能看到 ext: 后面还带个了 = 号吗? 除了 {pos} 外,其它筛选器都支持 3 种操作符

=: 等于。

!: 不等于。

@: 正则式匹配。

操作符后的条件都是 连接的。

{ext:= ahk, txt, ini}

这个例子里表示: “文件后缀包括 ahk 或者 txt 或者 ini”

那么 {pos} 呢? {pos} 的操作符只有两个,<>, 选项只有 xy

{pos: x>800, y>600}

这个例子表示鼠标所在的 x 坐标大于 800, y 坐标大于 600,用这个筛选器就可以菜单项仅在鼠标位于屏幕右下方的时候显示。

运行程序 (exec)

运行程序一般填写可执行文件的完整路径。

c:\windows\notepad.exe

运行程序可以附带 函数指令 : 类似 <sendtext> 这种使用一对 <> 括起来的,表示 QuickZ 加载的函数。

多个函数指令与可执行文件可以混合使用: <opencmd> <sendtext> C:\windows\notepad.exe

所有的函数指令都会在执行后替换成函数返回的值。

运行参数 (param)

运行参数经常需要与标签一起使用。例如使用 gvim ,以 -d 参数打开某个文件,你可这样编写参数

-d "{file:path}"

"{file:path}" 会被替换成当前选中的文件完整路径

"{text}" 替换当前选中的文本

你还需要了解更多的标签,请查看 标签列表

工作目录 (workdir)

工作目录用于运行程序时的指定目录,一般情况下留空即可。

工作目录同样支持标签和变量

子菜单 (sub)

菜单项可以做为另一个菜单项的子菜单,层次无限制,但是建议不要超过3个层级。