如何使用HotString与变量&通配符?

时间:2013-09-01 19:05:02

标签: autohotkey

在Onenote中,假设我想写x ^ y(x到y的幂),我需要进入Equ模式(通过键盘快捷键),输入x ^ y,点击Space,然后退出等模式

所以,我认为它可能是这样的:

::(wild_card)^(wild_card)::  
Send, (Shortcut for equ mode)  
Send, variable1  
Send, ^
Send, variable2  
Send, space  
Send, (Shortcut for equ mode)  

我如何实现这一目标?

或者,也可以通过这样做来制定相同的目的 - 监视由结束字符分隔的单词
- 检测^是否在这些单词中 - 发送(快捷方式),然后是单词,然后是空格,然后是(快捷方式) 这更可行吗?

1 个答案:

答案 0 :(得分:1)

谢谢MCL,

以下是自动将x_y和x ^ y转换为onenote

中的数学表示的代码
#Include DynamicHotstrings.ahk
#IfWinActive, ahk_class Framework::CFrame
hotstrings("(\w+\_\w+) ","dowork")
hotstrings("(\w+\^\w+) ","dowork")

dowork:
    Send, {LAlt Down}{=}{LAlt Up}
    SendRaw, %$1%
    Send,  {Space}
    Send, {LAlt Down}{=}{LAlt Up}
    Send,  {Space}
    Return

更好的是,你可以修改DynamicHotstrings.ahk,这样当我们处于方程模式时它会忽略自动转换:

hotstrings(k, a = "")
{
    CoordMode,Pixel,Screen
    PixelGetColor, color, 455, 1
    if (color =  0xD7337F)
        return
      ....