标签: autohotkey

AHK:阻止一个热键触发另一个热键

我正在尝试制作一个简单的脚本,当我使用诸如 ^B 或 ^T 之类的热键时,它会为我编写简短的语句。问题是当它自己打字时,它会激活另一个热键,然后在它之后直接开始,所以我留下了一个双句。

^b::
hello, I am AutoHotKey.

^t::
What can I do for you?
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,“AutoHotKey”将触发第二个脚本,因为其中包含“t”并且它比不再按住控制键的输入速度更快。

有没有办法让一个功能独占,这样它就不能触发其他功能,或者我必须有完全不同的热键?

autohotkey function

2
推荐指数
1
解决办法
3126
查看次数

使用 AutoHotkey 一次发送和释放多个键

我正在尝试使用此脚本同时发送三个键(Alt、Shift、Q):

:*:pk::   ;
Send, {AltDown}{ShiftDown}{qDown}
return
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它不会释放按键,似乎 Alt 按钮保持按下状态。按下上述键后,我想再次按下“q”字符(单独,不同时)。

如何修改上面的脚本以实现此目的?

autohotkey

2
推荐指数
1
解决办法
5304
查看次数

如何使用像 Vim 这样的 AutoHotKey 脚本映射箭头键?

参考问题Windows 7 Map CTRL + j to the Down Arrow Key

如何像vim一样使用AutoHotKey映射箭头键?

Ctrl+h = Move left 
Ctrl+j = Move down 
Ctrl+k = Move up 
Ctrl+l = Move right
Run Code Online (Sandbox Code Playgroud)

vim autohotkey keyboard-shortcuts

2
推荐指数
1
解决办法
1128
查看次数

Autohotkey 用一个替换 2 个特定字符

我是自动热键的初学者。
我想要制作脚本来检查我是否写了“:)”,然后它替换为这个“”(web.whatsapp 中的表情符号)我不知道是否可以使用 GetKeyState 因为在我的键盘中我需要 Shift+dot 来表示“: " 和 ")" 的 Shift+9。

我很抱歉我的英语不好。希望你能理解。:)

谢谢你。

有效的代码(感谢 Forivin)

:::)::
    clipSave := ClipboardAll
    Clipboard := "" ;
    Send, ^v
    Clipboard := clipSave
Return

:::D::
    clipSave := ClipboardAll
    Clipboard := "" ;
    Send, ^v
    Clipboard := clipSave
Return
Run Code Online (Sandbox Code Playgroud)

autohotkey

2
推荐指数
1
解决办法
837
查看次数

如何将百分号传递给消息框?

使用^w::MsgBox, 100%返回值:

该参数缺少变量名。

但没有标志的同一条线也%有效。如何修复它?

autohotkey variable-names percentage

2
推荐指数
1
解决办法
2169
查看次数

以下变量名称包含非法字符...但我不知道它可能是什么

我在运行我的脚本时遇到问题。我终生无法弄清楚非法字符是什么。

我试过将字符串连接放在不同的行上,但我得到了同样的错误。我试过用OneDateandTwoDate代替Date_1and Date_2,也无济于事。我已经更新了 AHK,但没有解决。

我应该注意,我同时使用MonthCalDateTime Gui控制来获取这些日期,然后使用FormatTime. 我注意到的另一个错误可能提供了一个线索,即无论我在日期控件中选择什么日期,我都会得到2017-Sep-01输出。可能没有来自控件的值,并且 FormatTime 函数使用今天的日期,因为它尝试处理的变量为空/不存在。

除此之外,通常我喜欢在我的问题中更具描述性,但在这种情况下,我想我只能说:“帮助?”

在此处输入图片说明 在此处输入图片说明

variables autohotkey illegal-characters

2
推荐指数
1
解决办法
6358
查看次数

如何从 AutoHotkey 数组中删除重复项?

我在 AutoHotkey 中有一个字符串数组,其中包含重复的条目。

nameArray := ["Chris","Joe","Marcy","Chris","Elina","Timothy","Joe"]
Run Code Online (Sandbox Code Playgroud)

我想删除所有重复项,以便仅保留唯一值。

trimmedArray := ["Chris","Joe","Marcy","Elina","Timothy"]
Run Code Online (Sandbox Code Playgroud)

理想情况下,我正在寻找一个类似于Trim()的函数,它将返回修剪后的数组,同时保持原始数组完好无损。(IE trimmedArray := RemoveDuplicates(nameArray)

如何从 AutoHotkey 数组中删除重复项?

arrays autohotkey duplicates

2
推荐指数
1
解决办法
2210
查看次数

如何将 AutoHotKey 的代码设置为仅在 chrome 中运行?

当我在 Chrome 中双击一个单词时,我想模拟一个“查找”操作。

我设法做到了这一点:

~LButton::
SetTitleMatchMode, 2  
#IfWinActive, ahk_class Chrome
If (A_TimeSincePriorHotkey<400) and (A_TimeSincePriorHotkey<>-1)
{
 SendInput ^c
 Sleep, 10
 SendInput ^f
 Sleep, 10
 SendInput ^v
}

Return
Run Code Online (Sandbox Code Playgroud)

但它甚至可以在非 Chrome 进程中运行(当双击一个单词时)

题:

如何仅在 chrome 中双击时才能运行此脚本?

autohotkey

2
推荐指数
1
解决办法
2045
查看次数

我想用自动热键从午夜开始以毫秒为单位获取当前时间

我想从午夜开始以毫秒为单位获取当前时间。

我不知道这是否可能?

我知道A_TickCount给出了计算机重新启动后的毫秒数。

autohotkey

2
推荐指数
1
解决办法
1794
查看次数

如何重新映射;(分号)在 AutoHotkey 中?

我的目标是重新映射;(分号)到 Control + k。但是,这不起作用,因为;开始评论而不是被识别为键。

这是我的代码:

^k::;
Run Code Online (Sandbox Code Playgroud)

我确实有一种解决方法,但它导致花括号乱七八糟:

{ ;Semicolon
    ^k::
    send, {; down}
    send, {; up}
    return  
}
Run Code Online (Sandbox Code Playgroud)

“down”和“up”之后的花括号不被识别为括号,而是作为注释的一部分。

autohotkey

2
推荐指数
1
解决办法
467
查看次数