问题标签 [keyboard-maestro]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
62 浏览

macos - 非 Cocoa 应用程序如何知道何时重建菜单栏?

我的应用程序(Keyboard Maestro)通过可访问性 API 读取其他应用程序菜单(例如,用于 kAXMenuBarAttribute 等的 AXUIElementCopyAttributeValue)。

这适用于普通的 Mac Cocoa 应用程序,它们的菜单会自动保持最新。

但是对于某些跨平台应用程序(例如 Finale 14 和许多 Adob​​e 应用程序),它们的菜单在发出辅助功能请求时不会更新。因此,用户只能执行一些虚假的 UI 操作(单击菜单栏、切换应用程序或其他一些技巧)来强制更新菜单。

有没有办法以编程方式鼓励此类应用程序更新其菜单栏,或者是否有一些编程方式可以通知此类应用程序他们需要重建菜单栏(然后至少我可以将信息传递给他们)。

谢谢。

0 投票
2 回答
224 浏览

regex - 正则表达式将 www.evernote.com URL 转换为使用 evernote 协议

我正在编写一个简单的脚本,它将获取指向 Evernote 在线笔记的 URL,并将它们转换为evernote:///协议。当我在正则表达式测试器中尝试它时,我正在使用的正则表达式匹配并正确修改了 URL(我正在使用 OS X 的模式)。但是,当我将它与 sed 一起使用时,它只返回原始字符串。

echo "https://www.evernote.com/shard/s2/nl/227468/1875e55a-e512-4cf9-9b18-9e93c6a27359/" | sed 's#https?:_/_/www_.evernote_.com_/shard_/(..)_/nl_/(......)_/(.+_/)#evernote:_/_/_/view_/$2_/$1_/$3$3#'

知道为什么这不起作用吗?谢谢!

[编辑:如果有人感兴趣,这是针对键盘大师宏的 AppleScript 位:

set theURL to the clipboard set ENcode to "echo \"" & theURL & "\" | sed -E 's#https?://www.evernote.com/shard/(..)/nl/(.*)/(.+/)#evernote:///view/\\2/\\1/\\3\\3#' | pbcopy" do shell script ENcode

感谢@DreadPirateShawn 帮助我修复正则表达式。]

0 投票
2 回答
290 浏览

regex - 正则表达式查找和替换:删除除以“#”开头的单词之外的所有内容?

我是 regex 的新手,找不到轻松做到这一点的方法。我想删除不是以 # 开头的每个单词,并在它们之间加一个逗号,例如,如果我有:

我想得到结果:

如果你能帮助我,那就太好了,谢谢,祝你有美好的一天!

0 投票
1 回答
892 浏览

keyboard-maestro - 使用 Keyboard Maestro 将光标向前移动一格

在 ST3 (OS X) 中,我使用 shift+space 将光标向前移动一个空格,例如:

我发现自己也想在其他应用程序中使用它。我想我可以使用Keyboard Maestro来编写一个宏来做到这一点,但还没有走得太远。有什么建议么?

0 投票
2 回答
506 浏览

regex - 格式化正则表达式输出(用于键盘大师)。

我有一个键盘宏工具(键盘大师),它在 %NumberDate% 变量中返回当前日期;它包含 2015 年 3 月 31 日的字符串“3/31/15”。

工具支持正则表达式,所以使用正则表达式,我需要把这个值转换成format的格式化字符串[yyyy/MM/dd];在这个例子中 [2015/03/31]。

然而,我用来提取信息的表达式是,(\d+)/(\d+)/(\d+)而不是。有什么方法可以检查 $1 或 $2 是否是一位自动插入 0 的数字?[20$3/$1/$2][2015/3/31][2015/03/31]

在此处输入图像描述

0 投票
1 回答
1047 浏览

python - 将 KeyboardMaestro 的变量传递给 Python 脚本

我需要创建一个具有一些值的变量,并将该值提供给 python 脚本一个衬里 ( python -c "...") 以处理该变量,并将其返回到相同或其他变量中。

我怎样才能用键盘大师做到这一点?

0 投票
1 回答
100 浏览

keyboard-maestro - 使用键盘大师按类获取网页元素

我经常去一个图书馆结果页面,里面有两条我想要的信息:

  • 商品名称:An <h1>withclass="title"
  • 索书号:A<td>class="call"

我希望能够自动将这两个元素的内容复制到几个命名的剪贴板。这可能吗?

0 投票
2 回答
329 浏览

regex - 如何创建一个使用自定义单词边界获取 N 个单词的 RegEx 模式?

我需要一个正则表达式模式,它将使用自定义单词边界返回前 N 个单词,该边界是正常的正则表达式空格 (\s) 加上标点符号.,;:!?-*_

编辑#1:感谢您的所有评论。

要清楚:

  1. 我想设置作为单词分隔符的字符
  2. 让我们称之为“分隔符集”或 strDelimiters
  3. strDelimiters = ".,;:!?-*_"
  4. nNumWordsToFind = 5
  5. 单词被定义为不包含 strDelimiters 中任何字符的任何连续文本
  6. RegEx 单词边界是包含 strDelimiters 中的一个或多个字符的任何连续文本
  7. 我想构建 RegEx 模式以使用 strDelimiters 获取/返回第一个 nNumWordsToFind。

编辑#2:2015 年 8 月 8 日星期六,美国中部时间上午 12:49

@maraca 肯定回答了我最初所说的问题。但我真正需要的是返回字数≤nNumWordsToFind。因此,如果源文本只有 3 个单词,但我的 RegEx 要求 4 个单词,我需要它返回 3 个单词。如果 nNumWordsToFind > 源文本中的实际单词数,则 maraca 提供的答案失败。

例如:

它会将其视为 10 个单词。如果我想要前 5 个单词,它将返回:

我使用正常的 \s 空格有这个模式,它有效,但不完全是我需要的:

其中<NumWordsOut>是要返回的单词数。

我也找到了这个词边界模式,但我不知道如何使用它:

检测 ASCII 字母和非字母之间的边缘的“真实单词边界”。

但是,我希望我的话也允许数字。

IAC,我无法使用上述自定义单词边界模式返回文本的前 N ​​个单词。

顺便说一句,我将在Keyboard Maestro宏中使用它。

任何人都可以帮忙吗?TIA。

0 投票
1 回答
444 浏览

json - Keyboard Maestro Bash CURL 脚本可以在没有变量但没有变量的情况下工作

全部。我试图在这个论坛和其他地方在线研究这个问题。我难住了。希望有人可以提供帮助。

我在使用 Keyboard Maestro 将 JSON 发送到 Zendesk API 以将用户添加到组时遇到问题。我正在通过 CURL 在 Bash shell 脚本中进行操作。在您认为这是 Zendesk API 问题之前,请耐心等待!我真的认为这是 KM 或我在 KM 中做的一些愚蠢的事情。(可能是后者!)

像这样从 KM 运行的 Bash 脚本可以完美运行:

但是,我想通过 KM 变量 ($KMVAR_CURL_Text) 将 user_id 和 group_id 信息传递给 bash 脚本。

$KMVAR_CURL_Text 变量内容与 user_id 和 group_id 信息匹配,我有上面的手动脚本。我已经通过 JSON 验证器运行了变量文本。没关系。我已经手动将变量数据粘贴回 bash 脚本中,没关系。

但是,如果我使用变量 $KMVAR_CURL_Text:

使用 shell 脚本:

Zendesk 的 API 告诉我:

我很高兴与 Zendesk 一起解决这个问题。但是,由于我可以手动完成这项工作,我觉得问题出在我或 KM 身上。有人知道我做错了什么吗?可能与变量相关的转义、非转义或文本编码?

谢谢!

马克:-)

0 投票
1 回答
261 浏览

keyboard-maestro - 使用键盘大师使用 shift 修饰符按住选项制作大写字母

我已经使用 Autoit 多年了,我刚刚发现了适用于 Mac 的键盘大师,它太棒了!

这是我的问题。我需要模拟按下 SHIFT + 1 键。以下是步骤

  1. 按住 Shift 键
  2. 按下并释放 1 键
  3. 释放 Shift 键

很简单,但由于某种原因它不起作用。我正在用字母“a”而不是 1 对其进行测试,因为如果它有效,那么它将创建大写字母“A”。

如何使用 Shift Modifier 生成大写字母 A?

这是我的宏的截图

在此处输入图像描述