【问题标题】:Using a hotstring and an hotkey at the same time同时使用热字串和热键
【发布时间】:2018-07-07 04:06:23
【问题描述】:

此问题与How to set `underline` followed by a character to send another key 有关。 我希望_t 产生Tt 产生s。但是使用下面的_t 会产生_s。有什么办法可以解决吗?

t::s
:*:_t::T

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    计算机看不出 [hotstring t presses][hotkey t presses] 之间的区别,你唯一能做的就是如果 _按下 [禁用热键] 然后 [启用另一个 t 热键,如果按下 t,则发送 Shift+t=T] 你可以使用 [#if] 命令来做到这一点

    试试这个 AHK 代码。

    ; [+ = Shift] [! = Alt] [^ = Ctrl] [# = Win] 
    #SingleInstance force
    mode=1
    
    :*:_::
    send _
    mode=0
    modes=1
    return
    
    #if mode
    t::s
    #if
    
    #if modes
    t::
    send +t
    mode=1
    modes=0
    return
    #if
    

    注意 - 如果您稍微更改代码,您还可以在模式中使用热字串,例如::*:test???:: minus the Hotstring :*:_???::

    【讨论】:

      【解决方案2】:

      怎么样

      :*:_t::T
      t::SendRaw s
      

      或使用热字串

      :*:_t::T
      :*R:t::s
      

      Oleg 下面的评论很有道理,添加 ?到热字串的选项

      添加其他键

      :*:_t::T
      :*R:t::s
      
      :*:a::a
      :*:b::b
      :*:c::c
      :*:d::d
      :*:e::e
      :*:f::f
      :*:g::g
      :*:h::h
      :*:i::i
      :*:j::j
      :*:k::k
      :*:l::l
      :*:m::m
      :*:n::n
      :*:o::o
      :*:p::p
      :*:q::q
      :*:r::r
      :*:u::u
      :*:v::v
      :*:w::w
      :*:x::x
      :*:y::y
      :*:z::z
      

      【讨论】:

      • 如果我输入t,然后输入_t,那么这个_t 不会输入T。有可能解决这个问题吗?
      • 谢谢。我会检查你的解决方案,稍后再回来。
      • 不幸的是,如果在输入 t 之前我输入了另一个字符(比如 g),它就不起作用了。
      • 在上面添加更多键,唯一的问题仍然是您无法键入 s t 或 _t 因为它(尚未)包含在列表中。你到底在做什么?
      • @Name 如果你想让热字串在任何地方触发,只需添加? 即可。 :?*:_t::T
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-04
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      • 2020-02-09
      • 2013-09-28
      • 2010-12-26
      相关资源
      最近更新 更多