无忧启动论坛

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

[已解决] 【已解决】求输入法切换到ENG的代码(bat、vbs、wcs、ahk)都行。谢谢

[复制链接]
跳转到指定楼层
1#
发表于 昨天 14:13 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 yyz2191958 于 2025-2-22 12:38 编辑

完美解决了:
输入法切换ENG(英文).ahk:
; AHK 切换输入法为 ENG(英文)
PostMessage, 0x50, 0, 0x0409, , A ; 0x0409 是 ENG 的语言 ID

======================================
输入法切换到中文(简体).ahk:
; 切换为中文(简体)
PostMessage, 0x50, 0, 0x0804, , A ; 0x0804 是 中文(简体) ID

==========================================================
原来的问题:
输入法切换到ENG的代码(bat、vbs、wcs、ahk)都行。谢谢
【需求(PE 环境中 使用)无论当前是输入法是什么,运行代码以后,都切换到ENG(英文)

(强迫症哦,哈哈)

谢谢






切换英文.exe.rar

197.23 KB, 下载次数: 46, 下载积分: 无忧币 -2

切换到中文.exe.rar

197.24 KB, 下载次数: 9, 下载积分: 无忧币 -2

点评

PE 环境中 使用   发表于 昨天 16:39
PE 环境中 使用  发表于 昨天 16:39
31#
发表于 5 小时前 | 只看该作者
学习学习
回复

使用道具 举报

30#
发表于 7 小时前 | 只看该作者
谢谢分享。
回复

使用道具 举报

29#
发表于 9 小时前 | 只看该作者
原来如此,感谢分享
回复

使用道具 举报

28#
发表于 9 小时前 | 只看该作者
来学习一下
回复

使用道具 举报

27#
发表于 12 小时前 来自手机 | 只看该作者
yyz2191958 发表于 2025-2-21 16:38
PE 环境 没有PowerShell  谢谢

可以有
回复

使用道具 举报

26#
 楼主| 发表于 12 小时前 | 只看该作者
martin313 发表于 2025-2-22 09:23
按下 F1 切换为英文,按下 F2 切换为中文。

; 切换为英文

确实可行  非常感谢
回复

使用道具 举报

25#
 楼主| 发表于 12 小时前 | 只看该作者
martin313 发表于 2025-2-22 09:23
按下 F1 切换为英文,按下 F2 切换为中文。

; 切换为英文

不错 谢谢
回复

使用道具 举报

24#
发表于 12 小时前 | 只看该作者
yyz2191958 发表于 2025-2-21 19:14
强迫症的问题解决了   我很满意


按下 F1 切换为英文,按下 F2 切换为中文。

; 切换为英文
F1::
    PostMessage, 0x50, 0, 0x0409, , A
    return

; 切换为中文(简体)
F2::
    PostMessage, 0x50, 0, 0x0804, , A
    return

点评

确实可行 非常感谢  详情 回复 发表于 12 小时前
不错 谢谢  详情 回复 发表于 12 小时前

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

23#
发表于 15 小时前 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

22#
发表于 20 小时前 | 只看该作者
这个值得学习一下
回复

使用道具 举报

21#
发表于 昨天 22:18 | 只看该作者
感谢分享好东东
回复

使用道具 举报

20#
发表于 昨天 22:01 | 只看该作者
以前我也遇到在软件界面输入用户名时有中文的情况,没找到办法,最终使用了粘贴大法才解决了。
回复

使用道具 举报

19#
发表于 昨天 20:59 | 只看该作者
yyz2191958 发表于 2025-2-21 19:14
强迫症的问题解决了   我很满意

呵呵,那就好
回复

使用道具 举报

18#
发表于 昨天 20:59 | 只看该作者
学习一下,谢谢楼主分享
回复

使用道具 举报

17#
 楼主| 发表于 昨天 19:14 | 只看该作者
fjun67 发表于 2025-2-21 19:08
也算是一个创意

强迫症的问题解决了   我很满意

点评

按下 F1 切换为英文,按下 F2 切换为中文。 ; 切换为英文 F1:: PostMessage, 0x50, 0, 0x0409, , A return ; 切换为中文(简体) F2:: PostMessage, 0x50, 0, 0x0804, , A return  详情 回复 发表于 12 小时前
呵呵,那就好  详情 回复 发表于 昨天 20:59
回复

使用道具 举报

16#
发表于 昨天 19:08 | 只看该作者
也算是一个创意

点评

强迫症的问题解决了 我很满意  详情 回复 发表于 昨天 19:14
回复

使用道具 举报

15#
发表于 昨天 18:16 | 只看该作者
yyz2191958 发表于 2025-2-21 17:25
你没有看明白我的意思哦
Lua 代码也无法实现

纯Lua原生环境无法直接调用Windows API(如LoadKeyboardLayout, PostMessage等),因其设计定位为轻量级脚本语言,不包含操作系统级交互功能。要实现输入法切换,必须借助依赖系统工具(如PowerShell)
回复

使用道具 举报

14#
 楼主| 发表于 昨天 17:52 | 只看该作者
本帖最后由 yyz2191958 于 2025-2-21 17:53 编辑
holley2008 发表于 2025-2-21 17:40
确认一下你的PE 中ENG的语言ID是不是0409

AHK 切换输入法为 ENG(英文)————————成功
(WCS 切换输入法为 ENG————不成功)
再次感谢
回复

使用道具 举报

13#
发表于 昨天 17:50 | 只看该作者
同示 在线蹲一个 批处理的解决方案
回复

使用道具 举报

12#
 楼主| 发表于 昨天 17:48 | 只看该作者
holley2008 发表于 2025-2-21 17:40
确认一下你的PE 中ENG的语言ID是不是0409

我试一试先 谢谢
回复

使用道具 举报

11#
发表于 昨天 17:40 | 只看该作者
本帖最后由 holley2008 于 2025-2-21 17:44 编辑
  1. ; AHK 切换输入法为 ENG(英文)
  2. PostMessage, 0x50, 0, 0x0409, , A ; 0x0409 是 ENG 的语言 ID
复制代码
  1. // WCS 切换输入法为 ENG
  2. var shell = new ActiveXObject("WScript.Shell");
  3. shell.SendKeys("^{SPACE}");
复制代码

确认一下你的PE 中ENG的语言ID是不是0409

点评

就这层像话!  发表于 昨天 17:54
AHK 切换输入法为 ENG(英文)————————成功 再次感谢  详情 回复 发表于 昨天 17:52
我试一试先 谢谢  详情 回复 发表于 昨天 17:48

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

10#
 楼主| 发表于 昨天 17:25 | 只看该作者
忧心的启 发表于 2025-2-21 17:24
晕就一个注册表,自己不会找找吗。

你没有看明白我的意思哦

点评

纯Lua原生环境无法直接调用Windows API(如LoadKeyboardLayout, PostMessage等),因其设计定位为轻量级脚本语言,不包含操作系统级交互功能。要实现输入法切换,必须借助依赖系统工具(如PowerShell)  详情 回复 发表于 昨天 18:16
回复

使用道具 举报

9#
发表于 昨天 17:24 | 只看该作者
晕就一个注册表,自己不会找找吗。

点评

你没有看明白我的意思哦  详情 回复 发表于 昨天 17:25
回复

使用道具 举报

8#
 楼主| 发表于 昨天 17:24 | 只看该作者
martin313 发表于 2025-2-21 17:21
纯VBScript无法完成楼主的要求

谢谢 解答
回复

使用道具 举报

7#
发表于 昨天 17:21 | 只看该作者
纯VBScript无法完成楼主的要求

点评

谢谢 解答  详情 回复 发表于 昨天 17:24
回复

使用道具 举报

6#
 楼主| 发表于 昨天 16:44 | 只看该作者
aceainarj 发表于 2025-2-21 14:30
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Keyboard Layout\Preload]

没有效果也谢谢
回复

使用道具 举报

5#
 楼主| 发表于 昨天 16:38 | 只看该作者
martin313 发表于 2025-2-21 14:47
以下是一个通过批处理调用 PowerShell 实现切换到 ENG 输入法的解决方案:

@echo off

PE 环境 没有PowerShell  谢谢

点评

可以有  详情 回复 发表于 12 小时前
纯VBScript无法完成楼主的要求  发表于 昨天 17:22
回复

使用道具 举报

4#
发表于 昨天 14:47 | 只看该作者
本帖最后由 martin313 于 2025-2-21 15:47 编辑

以下是一个通过批处理调用 PowerShell 实现切换到 ENG 输入法的解决方案:

@echo off
powershell -Command "$sig = '[DllImport(\"user32.dll\")] public static extern IntPtr GetForegroundWindow(); [DllImport(\"user32.dll\")] public static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam); [DllImport(\"user32.dll\")] public static extern IntPtr LoadKeyboardLayout(string pwszKLID, uint flags);'; Add-Type -MemberDefinition $sig -Name Keyboard -Namespace API; $hkl = [API.Keyboard]::LoadKeyboardLayout('00000409', 1); $hWnd = [API.Keyboard]::GetForegroundWindow(); [API.Keyboard]::PostMessage($hWnd, 0x50, 1, $hkl.ToInt32()); Start-Sleep -Milliseconds 200"

代码说明:
使用 PostMessage API 向当前窗口发送 WM_INPUTLANGCHANGEREQUEST 消息(0x50)
参数 0x0409 对应美式英语键盘布局(0409:00000409)
兼容 Windows 7 及以上系统,无需管理员权限

使用方法:
将代码保存为 SwitchToENG.bat
双击运行即可立即切换至 ENG 输入法

注意事项:
需确保 PowerShell 可正常使用(默认已启用)
若系统从未运行过 PowerShell 脚本,首次执行可能会有短暂延迟
切换效果对当前活动窗口立即生效

点评

PE 环境 没有PowerShell 谢谢  详情 回复 发表于 昨天 16:38

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

3#
发表于 昨天 14:31 | 只看该作者
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Keyboard Layout]

[HKEY_CURRENT_USER\Keyboard Layout\Preload]
"1"="d0000804"
"2"="00000804"
"3"="00000804"
"4"="00000804"

[HKEY_CURRENT_USER\Keyboard Layout\Substitutes]
"d0000804"="00000409"

[HKEY_CURRENT_USER\Keyboard Layout\Toggle]

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-2-22 21:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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