我将AutoHotkey用于我经常使用的各种文本,因此在签名或经常使用的邮件文本中,我还存储了一些代码片段以便快速使用。
其中一些热字串在wordpad或ultraedit等编辑器中运行良好,但在eclipse(我的版本是3.6.1)中,它们没有正确删除热字符串。
很简单的例子:
如上所述,这在许多编辑器中都能很好地工作,但不会在eclipse中工作,而在eclipse中,部分热点 - 例如#ec - 保留在输出前面,hotstring不会被完全删除。奇怪的是,有时它会留下1个字母,有时是3个字母,没有任何明显的逻辑。
在我的AutoHotkey文件中foo.ahk我有一些这样的代码:
::#echo::
InputBox, VAR, User input, Please enter the variable VAR., , 320, 130
SendInput,
(
<?php echo(%VAR%); ?>
)
Return
作为AutoHotkey的新手,我之前遇到过其他问题,我可以解决,所以它们不应该是所述问题的根源。
我不知道日食问题的原因是什么,任何提示都会受到赞赏。
答案 0 :(得分:1)
我刚刚尝试了这一点并看到了同样的行为。对我来说,切换到SendPlay模式而不是SendInput固定使事情完美。
添加以下行:
#Hotstring SP
在您发布的代码之前,看看是否能解决问题。
请查看文档中的“#Hotstring”命令以获取更多信息以及“Hotstrings and Auto-replace”的“选项”部分。
<强>更新强>
好的,试试这个:
#Hotstring B0
::#echo::
SendInput, {Control Down}{Shift Down}{Left 2}{Control Up}{Shift Up}
InputBox, VAR, User input, Please enter the variable VAR., , 320, 130
SendInput,
(
<?php echo(%VAR%); ?>
)
Return
'#Hotstring B0'行将阻止AutoHotkey自行执行退格。第一个SendInput行将发送两次Ctrl-Shift-Left以选择键入的'#echo'文本,然后将其替换为InputBox之后的第二个SendInput。
这有点像hacky,你可能需要根据你的使用方式将'{Left 2}'中的数字更改为其他内容,但这对我来说也很合适。
答案 1 :(得分:0)
为什么坚持热弦? 您可以使用奇怪的热键(例如 Alt + Windows + V )
!#v::
InputBox, VAR, User input, Please enter the variable VAR., , 320, 130
SendInput,
(
<?php echo(%VAR%); ?>
)
Return