无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 1058|回复: 16
打印 上一主题 下一主题

[求助] 能用bat检测当前输入法是不是ENG吗?谢谢

[复制链接]
跳转到指定楼层
1#
发表于 2024-9-10 12:07:17 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
能用bat检测当前输入法是不是ENG吗?谢谢
17#
发表于 2024-9-26 11:16:34 | 只看该作者
68799785 发表于 2024-9-26 10:26
steam的gta和大表哥也是会自动添加,但是不会自动删掉,挺烦人的

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

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


回复

使用道具 举报

16#
发表于 2024-9-26 10:26:54 | 只看该作者
asky800 发表于 2024-9-11 07:06
epic的商店好像启动游戏前就会检测默认是不是ENG输入法,不是的话就添加一个英文键盘,退出后又删掉。

...

steam的gta和大表哥也是会自动添加,但是不会自动删掉,挺烦人的
回复

使用道具 举报

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

非常感谢
回复

使用道具 举报

14#
发表于 2024-9-11 17:16:11 | 只看该作者

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

点评

非常感谢  详情 回复 发表于 2024-9-11 18:12

评分

参与人数 1无忧币 +3 收起 理由
yyz2191958 + 3 赞一个!

查看全部评分

回复

使用道具 举报

13#
发表于 2024-9-11 15:23:53 | 只看该作者
学习了
回复

使用道具 举报

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

目的就是希望根据批处理里的提示进行切换。比如,有一些软件需要中文输入法环境,如果能够用批处理检查和切换就非常方便

点评

搜索了下,总的来说,要在命令行或批处理里实现这个很困难,因为首先检测语言和输入法的状态就很复杂,涉及多个注册表项目,在批处理里解析这个,很难,也没有什么命令能直接解析返回。 然后说切换输入法吧,微软基  详情 回复 发表于 2024-9-11 17:16
回复

使用道具 举报

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

点评

目的就是希望根据批处理里的提示进行切换。比如,有一些软件需要中文输入法环境,如果能够用批处理检查和切换就非常方便  详情 回复 发表于 2024-9-11 10:15
回复

使用道具 举报

10#
 楼主| 发表于 2024-9-11 07:09:18 | 只看该作者
asky800 发表于 2024-9-11 07:06
epic的商店好像启动游戏前就会检测默认是不是ENG输入法,不是的话就添加一个英文键盘,退出后又删掉。

...

谢谢
回复

使用道具 举报

9#
发表于 2024-9-11 07:06:15 | 只看该作者
epic的商店好像启动游戏前就会检测默认是不是ENG输入法,不是的话就添加一个英文键盘,退出后又删掉。

当然怎么实现我是不懂。

点评

谢谢  详情 回复 发表于 2024-9-11 07:09
回复

使用道具 举报

8#
 楼主| 发表于 2024-9-10 18:05:38 | 只看该作者
ppll2030 发表于 2024-9-10 14:53
用这个,实时跟踪提示
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=440168

不是我需要的也谢谢
回复

使用道具 举报

7#
发表于 2024-9-10 17:20:42 来自手机 | 只看该作者
应该不行吧
回复

使用道具 举报

6#
发表于 2024-9-10 15:25:12 | 只看该作者
ppll2030 发表于 2024-9-10 14:53
用这个,实时跟踪提示
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=440168

感谢分享
回复

使用道具 举报

5#
发表于 2024-9-10 14:53:38 | 只看该作者
回复

使用道具 举报

4#
发表于 2024-9-10 14:44:37 | 只看该作者
学习
回复

使用道具 举报

3#
发表于 2024-9-10 14:42:10 | 只看该作者
应该不可以。。除非
回复

使用道具 举报

2#
发表于 2024-9-10 14:26:55 来自手机 | 只看该作者
估计不能,能检测默认是哪一个。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-22 06:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表