动态创建函数/子程序的 AutoHotkey 热键

2024-01-20

自动热键命令Hotkey允许在运行时创建动态热键,但其语法和文档似乎将其限制为内置或现有标签/子例程,这使得much不太有用:

热键、键名 [、标签、选项]

有没有办法让它像常规的硬编码热键一样工作?例如:

#z::MsgBox foobar        ; Typical, hard-coded hotkey pops up a message-box

Hotkey, z, MsgBox foobar ; Nope; complains about missing label “MsgBox foobar”

由于手册中的以下行,它看起来可能是可能的,但尚不清楚它是如何工作的:

标签 - 普通标签和热键/热字符串标签都可以使用。


这是 FakeRainBrigand 答案的改进。它的用法完全相同:

Hotkey("x", "Foo", "Bar") ; this defines:  x:: Foo("Bar")

与原文相比的变化:

  1. 防止意外自动执行通过将处理程序子例程塞入函数中来实现它。

  2. 允许我减少命名空间污染通过缩小范围hotkeys变量从全局变量变为静态变量。

  3. 优化: fun仅查找一次(使用Func()) 在热键定义时;在调用时,对象查找通过拆分减少了四到两个hotkeys分成两个对象funs and args;

当然,由于对象表示法和可变参数,这仍然依赖于 AutoHotKey 的 _L 版本arg* syntax.

Hotkey(hk, fun, arg*) {
    Static funs := {}, args := {}
    funs[hk] := Func(fun), args[hk] := arg
    Hotkey, %hk%, Hotkey_Handle
    Return
Hotkey_Handle:
    funs[A_ThisHotkey].(args[A_ThisHotkey]*)
    Return
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态创建函数/子程序的 AutoHotkey 热键 的相关文章

  • 在 C++ 中定义虚拟 get 和 set 函数是否被认为是一个好习惯?

    如果我有一个简单的 2 级类层次结构 例如 level 1 class Spare Part private string name double price public Spare Part string getName return
  • 如何在 Azure PowerShell 函数中导入模块?

    我尝试从函数查询天蓝色表 使用 Get AzTableRow 在我的笔记本电脑上工作得很好 但模块 aztable 不存在于天蓝色功能中 因此我得到的只是红屏 有办法安装吗 谢谢 大卫 您无需自行在 Azure Function 中安装 A
  • 在函数中调用其他列的控制流程

    我正在尝试在给定条件的情况下连接到函数中的其他列 本质上 我想让数据框在给定条件的情况下从长到宽 其中一列中的这些值是NA相对于同一行中具有值的另一列 转动NAs转化为特定的数字 尽管分配的值必须是特定于列的 因此 如果2010 has N
  • R data.table:在当前测量之前对出现次数进行计数

    我有一组在几天内进行的测量结果 测量次数通常为 4 任何测量中可以捕获的数字范围为 1 5 在现实生活中 给定测试集 范围可能高达 100 或低至 20 我想每天计算每个值在当天之前发生的次数 让我用一些示例数据来解释 test data
  • WCF 中的动态 ExpandoObject

    尝试使用枚举类型进程和动态数据的操作来 Ping Pong 我的服务 ServiceContract CallbackContract typeof iStackoverflowCallBack public interface iStac
  • onsubmit 多个 JavaScript 函数

    有谁知道如何提交多个功能 我打算做的是 onsubmit 检查所有这些函数是否返回 true 如果它们都返回 true 那么我执行 action checked html
  • 需要了解Javascript函数提升示例

    我阅读了 Javascript 提升的概念 它非常令人困惑 但我看到了一些示例并了解了提升的实际作用 所以基本上 提升是 JavaScript 的默认行为 即将所有声明移动到当前作用域的顶部 当前脚本或当前函数的顶部 但我无法理解以下实现
  • 类型错误:对于仅使用浮点数的函数,返回数组必须是 ArrayType

    这个实在是难倒我了 我有一个计算单词权重的函数 我已经确认 a 和 b 局部变量都是 float 类型 def word weight term a term freq term print a type a b idf term prin
  • 如何在 Eclipse 项目之间共享 Web 内容

    虽然 J2EE 模块参考功能允许您创建常见的 Java 库项目 但我找不到针对 Web 内容执行此操作的巧妙方法 我有通用的 JSP CSS 文件 JavaScript 库 甚至是描述符片段 我想在多个动态 Web 项目中使用它们 因此这些
  • 从子函数中中断父函数(最好是 PHP)

    我面临的挑战是如何使用 PHP 中断或结束父函数的执行而不修改父函数的代码 除了 die 我想不出任何解决方案在子函数中 这将结束所有执行 因此父函数调用之后的任何内容都将结束 有任何想法吗 代码示例 function victim ech
  • 是否可以替换 php 中的函数(例如邮件)并使其执行其他操作?

    我想用 PHP 重写一个函数 比如说 mail 函数 并且希望从现在开始调用 mail 时 它将加载我的 mail 版本而不是默认的 php 版本 这在 php 中可能吗 我想这样做的原因是因为我有数千行调用 mail 的代码 并且我不想重
  • Excel VBA 中.Delete 和.Clear 的区别?

    有什么区别Worksheets 1 Cells Delete and Worksheets 1 Cells Clear 我问这个是因为我一直用 Clear清除我的工作表内容 但在我之前的帖子中我发现Worksheets 1 Cells De
  • 如何在 jQuery 中声明和使用函数

    我想知道如何在 jQuery 脚本中声明函数 我现在拥有的 function adjust menu alert test test 但是当我这样称呼它时 first link click function adjust menu 它不起作
  • 函数输入参数的 auto 是否可以替代函数模板?

    在 C 20 中auto关键字可用于函数输入参数 这是函数模板的适当替代吗 在决定采用哪种方法时是否需要考虑任何实际差异 template
  • 为什么子程序需要在声明其中使用的变量之后编写?

    假设我们有这段代码 为什么它会因显式包名称错误而失败 因为该函数仅在声明后才被调用 value use strict use warnings sub print value print n value my value 2 print v
  • 为什么在我的函数输出后打印“None”?

    我尝试编写这段代码 def smaller x y if x gt y print y else print x print smaller 2 3 我得到这个结果 gt gt gt 2 None 哪里去了None来自 这是什么意思 See
  • PHP:将字符串分成 8 个块,我该怎么做?

    我基本上有二进制 假设它的长度是300 我如何将它分割 就像使用爆炸一样 成 8 位块 我查看了 chunk split 但它似乎只有一个 end 参数 而不是将其放入数组的选项 或者它可以插入数组吗 末尾 8 位数字可以低于 8 如果有人
  • 嵌套辅助函数和性能

    嵌套辅助函数对于使代码更易于理解非常有用 谷歌甚至建议在他们的应用程序中使用嵌套函数时尚指南 https google styleguide googlecode com svn trunk javascriptguide xml Nest
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • 什么是异地退货?

    什么是非本地退货 什么场景下有用 请举个例子来解释一下 这是一篇好文章 http yehudakatz com 2010 02 07 the building blocks of ruby 关于在 ruby 块的上下文中使用非本地返回 Ru

随机推荐

  • 如何选择与行跨度对应的行?

    我有一个动态生成的表 我试图更改其中某些行的背景颜色 有时有些行具有行跨度 我无法弄清楚如何获取与一个 行 相对应的所有行 我用谷歌搜索了我的大脑 发现这个 jsfiddle 非常接近我需要的 在逻辑意义上 http jsfiddle ne
  • 搜索引擎可以索引 JavaScript 生成的网页吗?

    Google 等搜索引擎可以索引 JavaScript 生成的网页吗 当您右键单击并选择在由 JavaScript 例如使用 GWT 生成的页面中查看源代码时 您看不到动态生成的 HTML 我想 如果搜索引擎也看不到生成的 HTML 那么就
  • AppDomain 中的静态字段

    我正在尝试使用 AppDomain 来管理多线程环境中包含大量静态字段的一些遗留代码 我读到这个问题的答案 如何使用 AppDomain 限制静态类的范围以实现线程安全使用 https stackoverflow com questions
  • 经过一段时间后,OpenEdge ABL 自动关闭是/否消息

    现在我有 消息 Hello World 查看为警报框警告按钮是 否更新 lVariable 如何在 14 秒后自动点击 否 如何以 另一种方式 做到这一点 DEFINE FRAME f message This is your messag
  • Django(主干)和基于类的通用视图:一个表单的初始数据出现在另一个表单中

    我遇到了一个奇怪的问题 数据似乎在不同的视图和请求中持续存在 直到服务器重新启动 我已设法将问题简化为以下代码 foobar models py from django db import models class Foo models M
  • CoreData:注释:无法加载优化模型(React Native)

    我无法再启动我的反应本机应用程序 我昨天更新了XCode 也许和它有关 react native run ios Found Xcode workspace xyz xcworkspace CoreData annotation Faile
  • iPhone 上的“不受信任的服务器证书”

    我正在编写一个 iPhone 应用程序 我想连接到 HTTPS 服务器以获取一些信息 但是 我在控制台中收到错误 NSUnderlyingError 错误域 kCFErrorDomainCFNetwork 代码 1202 UserInfo
  • Django Fabric 同步数据库

    您将如何运行此 django 命令来自动与 Fabric 同步数据库 python manage py syncdb settings app settings test 如果尝试运行 它会卡在 是否要创建超级用户帐户 处 是否可以传递 是
  • Facebook API 错误 191

    我正在尝试将我的项目与 Facebook 集成 我一开始只是尝试登录 获取 Facebook 会话并获取一些用户数据 我在本地开发它 所以我的 Facebook 应用程序设置是 site URL http 127 0 0 1 8888 my
  • 给 Java 桌面应用程序换肤?

    有谁知道一种 皮肤 Java 桌面应用程序的方法吗 例如 Winamp 皮肤或 MirandaIM 皮肤 我不想创造自己的外观和感觉 是的 有几种方法可以做到这一点 但我不知道有谁是真正简单的 看一下Nimbus Swing 的新面貌 ht
  • Math.pow(65,17) % 3233 的令人惊讶的结果

    由于某种原因 在处理大数时 模运算符没有给出正确的输出 请查看代码 double x Math pow 65 17 3233 输出应该是2790但输出是887 0 我确信这很愚蠢 但我无法绕过它 提前致谢 的结果Math pow 65 17
  • 部分代码覆盖率 C# - Nunit

    我有部分代码覆盖率 但我不知道为什么 对于在开始阅读之前喜欢这个问题的人 首先想说 第一篇文章 我的开发生涯还很初级 但我的学习速度相对较快 我认为 所以就这样吧 使用Junit进行测试 并基于MVP 待测试代码 void view Del
  • Express.js:如何获取远程客户端地址

    我不完全明白我应该如何获取远程用户IP地址 假设我有一个简单的请求路线 例如 app get function req res var forwardedIpsStr req header x forwarded for var IP if
  • 对象标签在 Chrome v41 之前显示 PDF,但在 v42(最新版本)中显示空白

    我有一个处于生产模式的应用程序 到目前为止运行得很好 我用过标签通过向对象标签提供base64编码数据来显示PDF 即使我没有 Adob e reader 插件 Chrome 也能正确显示它 因为它有内部 pdf 插件 但今天 我已将 Ch
  • ViewModel 订阅特定属性的 Model 的 PropertyChanged 事件

    我希望在模型中的属性更改时执行 methodToBeCalledWhenPropertyIsSet 我怎么能这样做呢 如果我理解正确的话 我可以添加MyModel PropertyChanged methodToBeCalledWhenPr
  • 从 Linux 为 Windows 交叉编译静态库

    我想在linux下为windows编译静态库 以下是我编译的过程 在linux中使用编译静态库的源代码i586 mingw32msvc cc c static lib c o static lib o 在linux中创建静态库ar rv s
  • UITextField 上的强密码叠加

    我面临着奇怪的覆盖UITextField 我正在使用类型字段textContentType password and isSecureTextEntry true 我还有眼睛按钮 可以通过更改来取消隐藏密码字符isSecureTextEnt
  • Kendo-Grid 列字段验证

    我正在努力使用 API 数据填充 kendo grid 但在一个字段上添加验证也会自动适用于所有其他字段 这是 kendo dataSource 内部的架构 schema model id id fields id editable fal
  • Android 上的 ORMLite 不调用 onCreate

    使用 ORMLite v 4 40 我尝试让我的应用程序运行 但它似乎忽略了 onCreate 函数 我的 DatabaseHelper 看起来像这样 片段样式 public class ORMLiteHelper extends OrmL
  • 动态创建函数/子程序的 AutoHotkey 热键

    自动热键命令Hotkey允许在运行时创建动态热键 但其语法和文档似乎将其限制为内置或现有标签 子例程 这使得much不太有用 热键 键名 标签 选项 有没有办法让它像常规的硬编码热键一样工作 例如 z MsgBox foobar Typic