Autohotkey 自动热键将美元符号替换为百分比

Autohotkey 自动热键将美元符号替换为百分比,autohotkey,Autohotkey,我正在尝试使用自动热键将$替换为%。我还将用$替换& 我的问题是,当我按下&键(现在重新映射为$)时,它认为我实际上按下了$,因此它触发代码并键入% 代码如下: ~::@ @::? %::^ ^::~ $::Sendraw `% &::$ ?::+ /::_ +::& =::/ _::= 我的键盘布局没有这些键作为实际键,所以我不能真正为您测试,但我仍然可以告诉您什么可能会解决问题,然后是另一个版本肯定会解决问题 因此,可能解决问题的方法是使用$修饰符。您应该只在$::S

我正在尝试使用自动热键将$替换为%。我还将用$替换&

我的问题是,当我按下&键(现在重新映射为$)时,它认为我实际上按下了$,因此它触发代码并键入%

代码如下:

~::@
@::?
%::^
^::~
$::Sendraw `%
&::$

?::+
/::_

+::&
=::/

_::=

我的键盘布局没有这些键作为实际键,所以我不能真正为您测试,但我仍然可以告诉您什么可能会解决问题,然后是另一个版本肯定会解决问题

因此,可能解决问题的方法是使用
$
修饰符。您应该只在
$::Sendraw`%
热键中需要它,因为其他热键使用并将自动执行添加
$
所做的操作

因此,您的脚本将如下所示:

~::@
@::?
%::^
^::~
$$::SendInput, `%
&::$

?::+
/::_

+::&
=::/

_::=
(我也改用了SendRaw,因为那里没有任何意义)

如果所有热键都是键盘布局上的实际键(而不是像在我的键盘布局上一样,可以通过修改键组合(例如CTRL+ALT+2)访问),则应该可以使用此功能。
为什么它在处理修改器关键点时不起作用要复杂一点。若你们真的感兴趣的话,我可以详细解释,但现在我只想说这是因为使用了重新映射语法

因此,不使用像这样的重新映射语法应该可以确保它在任何键盘布局上都能工作,无论:

*~::SendInput, @
*@::SendInput, ?
*%::SendInput, {^}
*^::SendInput, ~
*$::SendInput, `%
*&::SendInput, $

*?::SendInput, {+}
*/::SendInput, _

*+::SendInput, &
*=::SendInput, /

*_::SendInput, =
这里我们使用
*
修饰符来处理必须按住修饰符键才能访问热键的问题。我们没有使用
$
修饰符,因为使用
*
已经做了
$
所做的事情。因此,两者兼而有之是多余的

+4::SendInput, `%

这应该行得通。

谢谢,这行得通。我还有一个问题(我应该写一个新帖子吗?)。我的AHK脚本在WSL中无法正常工作。你知道为什么吗?键盘右侧的按键无法正确重新映射(例如,而不是绑定/it类型z)