首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据键盘上的位置重新映射键,而不是按下触发器的字符。

根据键盘上的位置重新映射键,而不是按下触发器的字符。
EN

Stack Overflow用户
提问于 2021-11-03 07:10:24
回答 1查看 207关注 0票数 1

我有一个英语键盘设置为德语。因此,我使用的不是qwerty,而是qwertz。当我把键盘切换回英语时,我想要默认的英语键盘,除了字母y和z,因为我非常习惯用德语输入这些字符,所以当我更改布局时,总是会把它们搞混。所以我在找这样的剧本:

代码语言:javascript
复制
If keypress is third row, 7th key:
   Change output to z
If keypress is fifth row, 2nd key:
   Change output to y

另一种选择是以英语布局为条件进行更改:

代码语言:javascript
复制
If keyboard-layout is english:
   if keypress is y:
      Change output to z
   if keypress is z:
      Change output to y 
EN

回答 1

Stack Overflow用户

发布于 2021-11-03 08:11:16

试试这个:

代码语言:javascript
复制
#If (GetKeyboardLanguage(WinActive("A")) = 0x0409) ; english (german = 0x0407)

    z::y
    y::z
    
#If
            
GetKeyboardLanguage(_hWnd=0){
    if !_hWnd
        ThreadId=0
    else
        if !ThreadId := DllCall("user32.dll\GetWindowThreadProcessId", "Ptr", _hWnd, "UInt", 0, "UInt")
            return false    
    if !KBLayout := DllCall("user32.dll\GetKeyboardLayout", "UInt", ThreadId, "UInt")
        return false    
    return KBLayout & 0xFFFF
}

https://www.autohotkey.com/board/topic/116538-detect-which-language-is-currently-on/#entry672236

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69820887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档