2

我尝试事先寻找答案,但没有找到我想要的东西。如果之前已经回答过,请提前道歉。

我做了一些网络工作并在 AHK 中创建了一个宏,它将Ctrl++Shift绑定B到 HTML 等价物,相当于在文本选择周围添加粗体标签。

流程是:剪切(ctrl+ x),输入<b>,粘贴剪切文本(ctrl+ v),输入</b>

宏运行良好,但有时我想撤消它。但是,每当我按下撤消 ( ctrl+ z) 时,我都会按下命令 4 次,每次按下都会恢复上面发布的命令中的 1 个。

有没有更好的方法来编写我的 AHK 宏,以便我能够在 1 次按键中撤消整个宏?任何提示都会很棒。对于 Windows 7,如果这有所作为。

我在下面添加了宏。

^+b::
{
SendInput ^x
SendInput <b>
SendInput ^v
SendInput </b>
return
}

编辑:< 是'<'上的hmtl equiv,但我担心这篇文章会转换HTML标签而不是显示字符。固定的。

抱歉,我倾向于结合使用记事本、记事本++、Internet Explorer 来访问 CMS。——</p>

我认为通过以下方式添加延迟并重写 AHK 宏已经解决了我的问题。谢谢您的帮助!

^+b::
clipboard =
SendInput ^x
ClipWait,1
if ErrorLevel
{
MsgBox, 尝试将文本复制到剪贴板失败。
return
}
SendInput<b>%clipboard%</b>
return

4

2 回答 2

1

试试这个:

^+b::
{
Clipboard =
SendInput ^c
ClipWait, 1
Clipboard = <b>%Clipboard%</b>
SendInput ^v
return
}

因为您唯一要做的就是粘贴,撤消此操作将撤消两个粗体标记。剪贴板编辑未注册为“撤消”操作。

于 2014-06-26T15:47:07.580 回答
0

这是一些代码:

^+b::
Click, 2 ; Highlight current word
Send, ^x
ClipWait, 1 ; ADDED to wait for clipboard
SendInput, <b>^v<`/b>
Return

!b::
Send, ^{z 4}
Return

或者

!b::
Send, "command to search backwards" for </b>
Send, {Del}
Send, "command to search backwards" for <b>
Send, {Del}
Return

或者

!b::
Send, {Home}+{end}  ; [Home] then [Shift][End] to highlight current line
Send, ^h ; Or any other command to start find/replace
Send, <b>^v<`/b>{Tab}^v{Enter} ; or what is required to replace in current section only...
Return
于 2013-06-13T20:13:28.537 回答