Autohotkey 使用自动热键在OneNote中自动执行操作

Autohotkey 使用自动热键在OneNote中自动执行操作,autohotkey,Autohotkey,我想为Microsoft OneNote中的各种操作指定键盘快捷键。(OneNote的快捷键与Word和Excel的快捷键不同,这让人恼火)。此外,OneNote不支持宏。所以我正在尝试自动热键 当我点击Ctrl+Alt+Shift+r时,我想使所选文本变为红色。我编写了简单的脚本文件: #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. ; #Warn ; Enabl

我想为Microsoft OneNote中的各种操作指定键盘快捷键。(OneNote的快捷键与Word和Excel的快捷键不同,这让人恼火)。此外,OneNote不支持宏。所以我正在尝试自动热键

当我点击
Ctrl+Alt+Shift+r
时,我想使所选文本变为红色。我编写了简单的脚本文件:

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

#IfWinActive - OneNote$ ; ------ only in windows with title ending with "- OneNote"

^!+r::
Send, !hfcm^{PgDn}!r255{Tab}5{Tab}0{Enter} ; red (255, 0, 0)
return

#IfWinActive ; ------ end of section restricted to specific windows

但当我按这些键时,它什么也不起作用。当我删除
#IfWinActive
行时,它开始工作。如何使它只在一个音符内工作?

我想您可能正在尝试使用正则表达式。要使用它,首先需要在脚本顶部指定它,如下所示:

SetTitleMatchMode, RegEx

#IfWinActive, - OneNote$
^!+r::Send, !hfcm^{PgDn}!r255{Tab}5{Tab}0{Enter} ; red (255, 0, 0)
#IfWinActive
还将热键压缩为一行,因为它就是这样的。
这应该是可行的(假设它与正确的标题匹配,我无法测试它,我不使用OneNote)


但就个人而言,我还是建议与之匹配。这在实践中可能不会有什么不同,但在我看来这是非常方便的

因此,假设运行OneNote的可执行文件名为
OneNote.exe
(请从任务管理器或WindowSpy*等处检查其实际名称),您可以这样做(不要使用正则表达式标题匹配模式):



*WindowSpy是一个整洁的小脚本,可以在您的AHK安装文件夹中找到

我尝试过,如图所示。我可以把文字涂成红色和紫色后,再把它涂成任何颜色。但一旦我把它涂成绿色,它就不会再变成红色或紫色。那就是选择文本,点击
^+g
将其变为绿色,但随后点击
^+r
只播放笔记本电脑扬声器发出的错误音,不会将颜色更改为红色。还想知道
后面是什么?他们有评论吗?我还可以删除前四行吗?它们是自动生成的。是的,前四行可以删除,
表示注释的开头,我无法为您测试密钥组合,因为我没有/使用OneNote。
#IfWinActive, ahk_exe OneNote.exe
^!+r::Send, !hfcm^{PgDn}!r255{Tab}5{Tab}0{Enter} ; red (255, 0, 0)
#IfWinActive