如何在AutoHotKey中切换键盘映射

 jfgkj6454_478 发布于 2023-01-07 19:20

我想将键盘的一部分映射为数字键盘:(我的笔记本电脑键盘没有数字键盘)

j->1
k->2
l->3
u->4
i->5
o->6

我想用快捷方式切换映射,比方说Control+ Alt+ M,我的代码在下面,但是,我不知道如何重置映射:

mode = 0

^!m::
  if (mode = 1)
  {
    mode = 0
    j->1
    k->2
    l->3
    u->4
    i->5
    o->6
  }
  else
  { 
    mode = 1
    u::u ;got error here: duplicate hotkey
  }
return

我得到了重复的热键错误u::u,似乎AHK不允许在脚本中映射多个键. GetKeyState("NumLock", "P")不行,因为我没有NumLock.

我能用这段代码实现:

^!m::
Suspend
u::4
i::5
o::6
return

但这会切换整个脚本,这显然不是很好.所以我想要比这更好的解决方案.

1 个回答
  • 如果运行AKH_L(例如AutoHotkey v1.1.10.01),则可以使用#IF语句来控制热键(就像使用#IfWinActive控制应用程序级别的热键一样).

    Mode := 0
    
    ^!m::
        mode:=!mode ;not! toggle
    return
    
    #If mode ; All hotkeys below this line will only work if mode is TRUE
        j::1
        k::2
        l::3
        u::4
        i::5
        o::6
    #If
    

    2023-01-07 19:22 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有