无忧启动论坛

标题: 能用bat检测当前输入法是不是ENG吗?谢谢 [打印本页]

作者: yyz2191958    时间: 2024-9-10 12:07
标题: 能用bat检测当前输入法是不是ENG吗?谢谢
能用bat检测当前输入法是不是ENG吗?谢谢

作者: 窄口牛    时间: 2024-9-10 14:26
估计不能,能检测默认是哪一个。
作者: 423dn    时间: 2024-9-10 14:42
应该不可以。。除非
作者: 孟仁飞    时间: 2024-9-10 14:44
学习
作者: ppll2030    时间: 2024-9-10 14:53
用这个,实时跟踪提示
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=440168
作者: wn168cn@163.com    时间: 2024-9-10 15:25
ppll2030 发表于 2024-9-10 14:53
用这个,实时跟踪提示
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=440168

感谢分享
作者: zy8428    时间: 2024-9-10 17:20
应该不行吧
作者: yyz2191958    时间: 2024-9-10 18:05
ppll2030 发表于 2024-9-10 14:53
用这个,实时跟踪提示
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=440168

不是我需要的也谢谢
作者: asky800    时间: 2024-9-11 07:06
epic的商店好像启动游戏前就会检测默认是不是ENG输入法,不是的话就添加一个英文键盘,退出后又删掉。

当然怎么实现我是不懂。
作者: yyz2191958    时间: 2024-9-11 07:09
asky800 发表于 2024-9-11 07:06
epic的商店好像启动游戏前就会检测默认是不是ENG输入法,不是的话就添加一个英文键盘,退出后又删掉。

...

谢谢
作者: 门口    时间: 2024-9-11 08:47
读取注册表应该获取相应设置选项吧,不过不懂为什么要检测这个,难道要在批处理里提示和切换吗?或者就是个输入法设置相关的批处理?
而且,输入法是也可以分应用的(按应用单独设置)。

作者: yyz2191958    时间: 2024-9-11 10:15
门口 发表于 2024-9-11 08:47
读取注册表应该获取相应设置选项吧,不过不懂为什么要检测这个,难道要在批处理里提示和切换吗?或者就是个 ...

目的就是希望根据批处理里的提示进行切换。比如,有一些软件需要中文输入法环境,如果能够用批处理检查和切换就非常方便
作者: yzqmxh    时间: 2024-9-11 15:23
学习了
作者: 门口    时间: 2024-9-11 17:16
标题: RE: 能用bat检测当前输入法是不是ENG吗?谢谢
本帖最后由 门口 于 2024-9-11 17:19 编辑
yyz2191958 发表于 2024-9-11 10:15
目的就是希望根据批处理里的提示进行切换。比如,有一些软件需要中文输入法环境,如果能够用批处理检查和 ...

搜索了下,总的来说,要在命令行或批处理里实现这个很困难,因为首先检测语言和输入法的状态就很复杂,涉及多个注册表项目,在批处理里解析这个,很难,也没有什么命令能直接解析返回。
然后说切换输入法吧,微软基本也没有直接方法或命令,Powershell能部分实现,但应该仅能调整全局的情况。
而且,这个需求并不很明确,同时目标电脑可能千差万别(系统、软件、输入法设置),恐怕很难最终准确的实现你的需求。
这种,应该还是要编程实现才行,应该没有现成工具吧,以前虽然看到过输入法的一些工具,应该也不适用。
-------------
相关注册表键:
  1. HKEY_CURRENT_USER\Keyboard Layout
  2. HKEY_CURRENT_USER\Control Panel\International\User Profile
  3. HKEY_CURRENT_USER\Software\Microsoft\CTF
  4. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP
  5.   \{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411F-A5AC-CA038EC515D7}=Microsoft Pinyin,微软拼音
  6.   \{6a498709-e00b-4c45-a018-8f9e4081ae40}{82590C13-F4DD-44f4-BA1D-8667246FDF8E}=Microsoft Wubi,微软五笔
  7.   \{AE51F1C0-807F-4A64-AC55-F2ADF92E2603}{96EC4774-55A1-498B-827F-E95D5445B6C1}=中文 - QQ拼音输入法
复制代码


Powershell命令:
  1. ::当前用户语言列表
  2. powershell -C Get-WinUserLanguageList
  3. ::首选(第一位)语言名字
  4. Powershell -C (Get-WinUserLanguageList)[0].autonym
  5. ::首选(第一位)语言键盘输入法编码
  6. Powershell -C (Get-WinUserLanguageList)[0].InputMethodTips

  7. ::在首选(第一位)语言下添加英文键盘
  8. Powershell -C "$Lang = Get-WinUserLanguageList;$Lang[0].InputMethodTips.Add('0804:00000409');Set-WinUserLanguageList -LanguageList $Lang -Force"
  9. Powershell -C "$Lang = Get-WinUserLanguageList;$Lang[0].InputMethodTips.Remove('0804:00000409');Set-WinUserLanguageList -LanguageList $Lang -Force"
  10. ::在首选(第一位)语言下添加、删除微软拼音---注意:如果是中文语言下最后一个中文输入法是无法删除的,返回false
  11. Powershell -C "$Lang = Get-WinUserLanguageList;;$Lang[0].InputMethodTips.Add('0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411F-A5AC-CA038EC515D7}');Set-WinUserLanguageList -LanguageList $Lang -Force"
  12. Powershell -C "$Lang = Get-WinUserLanguageList;;$Lang[0].InputMethodTips.Remove('0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411F-A5AC-CA038EC515D7}');Set-WinUserLanguageList -LanguageList $Lang -Force"
  13. ::在首选(第一位)语言下添加、删除微软五笔
  14. Powershell -C "$Lang = Get-WinUserLanguageList;;$Lang[0].InputMethodTips.Add('0804:{6a498709-e00b-4c45-a018-8f9e4081ae40}{82590C13-F4DD-44f4-BA1D-8667246FDF8E}');Set-WinUserLanguageList -LanguageList $Lang -Force"
  15. Powershell -C "$Lang = Get-WinUserLanguageList;;$Lang[0].InputMethodTips.Remove('0804:{6a498709-e00b-4c45-a018-8f9e4081ae40}{82590C13-F4DD-44f4-BA1D-8667246FDF8E}');Set-WinUserLanguageList -LanguageList $Lang -Force"
  16. ::新建/替换简体中文语言并添加、删除英文键盘:
  17. Powershell -C "$Lang = New-WinUserLanguageList -Language zh-CN;$Lang[0].InputMethodTips.Add('0804:00000409');Set-WinUserLanguageList -LanguageList $Lang -Force"
  18. Powershell -C "$Lang = New-WinUserLanguageList -Language zh-CN;$Lang[0].InputMethodTips.Remove('0804:00000409');Set-WinUserLanguageList -LanguageList $Lang -Force"
复制代码



参考资料:
cloud.tencent.com/developer/ask/sof/108267770
computerhope.com/forum/index.php?topic=176756.0
community.spiceworks.com/t/current-keyboard-layout-via-cmd-or-powershell/736931


作者: yyz2191958    时间: 2024-9-11 18:12
门口 发表于 2024-9-11 17:16
搜索了下,总的来说,要在命令行或批处理里实现这个很困难,因为首先检测语言和输入法的状态就很复杂,涉 ...

非常感谢
作者: 68799785    时间: 2024-9-26 10:26
asky800 发表于 2024-9-11 07:06
epic的商店好像启动游戏前就会检测默认是不是ENG输入法,不是的话就添加一个英文键盘,退出后又删掉。

...

steam的gta和大表哥也是会自动添加,但是不会自动删掉,挺烦人的
作者: asky800    时间: 2024-9-26 11:16
68799785 发表于 2024-9-26 10:26
steam的gta和大表哥也是会自动添加,但是不会自动删掉,挺烦人的

保留个英文键盘挺好的啊,我都专门弄个注册表调出个英文键盘玩游戏的。

像这些平台添加英文键盘的主要原因就是有些游戏在操控时,如果触发到打中文字会突然卡顿或者闪退。







欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3