| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2722 人关注过本帖
标题:EXE运行时如何关闭中文输入法
只看楼主 加入收藏
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用laowan001在2023-1-12 09:15:56的发言:

https://bbs.bccn.net/viewthread.php?tid=485814&highlight=%CA%E4%C8%EB%B7%A8
VFP的IMESTATUS()适用XP,之后的windows版本可能不适用。
可以试试用WinAPI切换输入法,如:
DECLARE LONG GetKeyboardLayout IN User32 LONG
DECLARE LONG LoadKeyboardLayout IN User32 STRING@, LONG
DECLARE LONG ActivateKeyboardLayout IN User32 LONG,LONG
hLayout = GetKeyboardLayout(0)
?"切换为En输入法"
LoadKeyboardLayout("0x0409", 1) && KLF_ACTIVATE
?"按一键恢复原输入法"
INKEY(0)
ActivateKeyboardLayout(hLayout, 0)
上面是2018年的帖子,吹版提供的方法,试过了,可以达到目的
有一点不知能否实现,用了上面的方法,第一次右下角键盘位置显示为 ENG ,再点就没有了,等于输入法当前状态看不到了,能否只切换“中”“英”状态?

由于不同的输入法键盘布局不同,输入法切换“中”“英”状态模式也有可能不同。
IME提供的一套状态模式标志只适用于windows系统的输入法,对于第三方输入法要确保兼容就很难说。
要完全适用第三方输入法,也只能按目前版本逐个测试,从而获取状态模式标志,看看有无搞头了。

在win10环境测试用“多多”输入法设计软件创建的五笔输入法,用Shift切换中英状态,IME的状态模式有变化(但不符合原标志含意),但用Ctrl+Space切换中英状态,IME的状态模式没有变化,IME的可靠性有待进一步测试。

话又说回来,既然有得中英切换,程序自动切换后,用户还是有可能无意手动Shift或Ctrl+Space。
2023-01-23 13:04
快速回复:EXE运行时如何关闭中文输入法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020902 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved