微软拼音输入法的中英文输入模式能只固定成一个吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aragakiyuii
V2EX    Windows

微软拼音输入法的中英文输入模式能只固定成一个吗?

  •  
  •   aragakiyuii 2022-05-04 21:45:15 +08:00 4551 次点击
    这是一个创建于 1264 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我用的 win10 pro 英文版:

    • Version: 21H2
    • OS build: 19044.1645

    现在语言里默认装了英语,我手动添加了简体中文并使用微软拼音输入法,关闭了 Chinese/English mode switch 快捷键


    期望:

    输入英文使用默认输入法,输入中文使用微软拼音输入法(简单来说就是关闭微软拼音的英文输入模式)

    问题:

    现在有时候切换到微软拼音就默认变成 English mode,我没开启快捷键切换导致我每次只能手动点图标切换。但是玩非窗口化游戏时就一直没法切换成 Chinese mode,输入中文只能切窗口输入复制粘贴

    13 条回复    2022-05-07 07:35:53 +08:00
    placeholder
        1
    placeholder  
       2022-05-04 22:33:12 +08:00
    你的需求似乎在现阶段是无法实现的。除非你能够让你使用的应用程序在输入框成为焦点时强制要求输入中文,这样也许是能让输入法在切换的时候默认是输入中文的,然而这种解决方案目前也是不稳定的,有一定概率依然是输入英文的状态。

    微软在这方面并没有规定一个明确的切换逻辑,甚至连微软都搞不明白为什么相同的环境下切换状态会出现不同的结果。

    2333
    forgottencoast
        2
    forgottencoast  
       2022-05-04 22:52:58 +08:00
    我感觉是 bug ,这个时候就算你不“关闭了 Chinese/English mode switch 快捷键”,也没用,它就切换不了。我还遇到过手动点图片也切换不了的。
    lisongeee
        3
    lisongeee  
       2022-05-04 22:58:25 +08:00
    开启 “使用以前版本的微软拼音输入法”,即可
    sona
        4
    sona  
       2022-05-05 03:26:58 +08:00   2
    用 ahk 强制每次切换的时候检测输入法状态,检测是输入法而且是英文就切换到中文。
    A_IsImeCnState() {
    detecthiddenwindows,on
    hWnd:=winexist("A")
    id:=DllCall("imm32\ImmGetDefaultIMEWnd", "Uint", hWnd, "Uint")
    sendmessage,0x283,0x001,0,,ahk_id %id%
    detecthiddenwindows,off

    ; 微软拼音(英-中,新 /旧,新旧 /新旧) 0/1024-1/1025
    ; 搜狗五笔 0-1025
    ; 手心 1024-1025
    ; 搜狗拼音中英都是 1025 (无效)
    if (errorlevel == 1 || errorlevel== 1025) {
    return true
    }
    return false
    }
    mgrddsj
        5
    mgrddsj  
       2022-05-05 05:03:39 +08:00 via Android
    我的观察是,在文件资源管理器重命名文件的时候,微软拼音会默认为 English mode
    pengtdyd
        6
    pengtdyd  
       2022-05-05 09:13:28 +08:00
    你有没有想过,如果只用英文是不需要输入法的。
    aragakiyuii
        7
    aragakiyuii  
    OP
       2022-05-05 09:14:21 +08:00
    @placeholder #1
    @forgottencoast #2
    microsoft sucks !

    @lisongeee #3
    @sona #4
    谢谢,下班回家试试
    aragakiyuii
        8
    aragakiyuii  
    OP
       2022-05-05 09:24:25 +08:00
    @pengtdyd #6 我提到的 "输入法" 描述的不太准确,应该是对应语言设置中的 keyboards
    wudicgi
        9
    wudicgi  
       2022-05-05 16:55:10 +08:00
    可以看我这篇《修改 Windows 10 的中文输入法配置,使其像 Win7, XP 一样易于使用》
    https://blog.wudilabs.org/entry/932e7229/

    不过是 2019 年发的了,现在具体操作时可能有些细微差别
    QNLvw5fLfr7c
        10
    QNLvw5fLfr7c  
       2022-05-07 05:14:24 +08:00   1
    受 @sona #4 的启发,这是我的方案,用 Autohotkey 2 将微软拼音输入法锁在中文模式。这样唯一的快捷键就只剩下 Win + Space 了。

    ```
    #Include %A_ScriptDir%

    timeInterval := 500

    GetImeState(id) {
    return SendMessage(0x283, ; WM_IME_CONTROL
    ; 0x005, ; IMC_GETOPENSTATUS
    0x001, ; wParam IMC_SETCONVERSIONMODE
    0, ; lParam (NoArgs)
    , ; Control (Window)
    id)
    }

    SwitchImeState(id) {
    SendMessage(0x283, ; WM_IME_CONTROL
    ; 0x006, ; IMC_GETOPENSTATUS
    0x002, ; wParam IMC_SETCONVERSIONMODE
    1025, ; lParam (Chinese)
    , ; Control (Window)
    id)
    }

    DetectHiddenWindows True

    outer:
    Loop {
    try {
    hWnd := WinGetID("A")
    } catch as e {
    ; ^Esc 开始菜单弹窗,会卡死在找不到当前窗口
    continue("outer")
    }
    id := DllCall("imm32\ImmGetDefaultIMEWnd", "Uint", hWnd, "Uint")

    if (GetImeState(id) == 0) {
    SwitchImeState(id)
    }
    }
    ```
    aragakiyuii
        12
    aragakiyuii  
    OP
       2022-05-07 07:34:18 +08:00 via iPhone
    @maokwen thanks !
    aragakiyuii
        13
    aragakiyuii  
    OP
       2022-05-07 07:35:53 +08:00 via iPhone   1
    @wudicgi 谢谢,不过我实在不想装别的输入法
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6045 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 02:33 PVG 10:33 LAX 19:33 JFK 22:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86