学习学习 |
谢谢分享。 |
原来如此,感谢分享 |
来学习一下 |
yyz2191958 发表于 2025-2-21 16:38 可以有 |
martin313 发表于 2025-2-22 09:23 确实可行 非常感谢 |
martin313 发表于 2025-2-22 09:23 不错 谢谢 |
yyz2191958 发表于 2025-2-21 19:14 按下 F1 切换为英文,按下 F2 切换为中文。 ; 切换为英文 F1:: PostMessage, 0x50, 0, 0x0409, , A return ; 切换为中文(简体) F2:: PostMessage, 0x50, 0, 0x0804, , A return |
参与人数 1 | 无忧币 +5 | 收起 理由 |
---|---|---|
| + 5 |
谢谢楼主分享 |
这个值得学习一下 |
感谢分享好东东 |
以前我也遇到在软件界面输入用户名时有中文的情况,没找到办法,最终使用了粘贴大法才解决了。 |
yyz2191958 发表于 2025-2-21 19:14 呵呵,那就好 |
学习一下,谢谢楼主分享 |
也算是一个创意 |
yyz2191958 发表于 2025-2-21 17:25 纯Lua原生环境无法直接调用Windows API(如LoadKeyboardLayout, PostMessage等),因其设计定位为轻量级脚本语言,不包含操作系统级交互功能。要实现输入法切换,必须借助依赖系统工具(如PowerShell) |
本帖最后由 yyz2191958 于 2025-2-21 17:53 编辑 holley2008 发表于 2025-2-21 17:40 AHK 切换输入法为 ENG(英文)————————成功 (WCS 切换输入法为 ENG————不成功) 再次感谢 |
同示 在线蹲一个 批处理的解决方案 |
holley2008 发表于 2025-2-21 17:40 我试一试先 谢谢 |
本帖最后由 holley2008 于 2025-2-21 17:44 编辑
确认一下你的PE 中ENG的语言ID是不是0409 |
参与人数 1 | 无忧币 +5 | 收起 理由 |
---|---|---|
| + 5 |
忧心的启 发表于 2025-2-21 17:24 你没有看明白我的意思哦 |
晕就一个注册表,自己不会找找吗。 |
martin313 发表于 2025-2-21 17:21 谢谢 解答 |
纯VBScript无法完成楼主的要求 |
aceainarj 发表于 2025-2-21 14:30 没有效果也谢谢 |
martin313 发表于 2025-2-21 14:47 PE 环境 没有PowerShell 谢谢 |
本帖最后由 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 脚本,首次执行可能会有短暂延迟 切换效果对当前活动窗口立即生效 |
参与人数 1 | 无忧币 +5 | 收起 理由 |
---|---|---|
| + 5 |
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] |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.