| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2567 人关注过本帖
标题:EXE运行时如何关闭中文输入法
只看楼主 加入收藏
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1076
专家分:2628
注 册:2015-12-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:40 
EXE运行时如何关闭中文输入法
执行编译后的exe时,一启动程序,系统就自动切换到中文输入法,手动关闭可以,但在程序中关闭不起作用,不知是何原因,请高手指教
尝试方法:
text.gotfocus里 IMESTATUS(0)或this.imemode=2 均试过,无效

而且,在开发环境中的命令窗口输入IMESTATUS(0)也不起作用

环境VFP9 SP2 WIN10

搜索过坛子里的相关帖子,方法试过无效,不知是哪里的原因
搜索更多相关主题的帖子: 中文 运行 输入法 EXE 关闭 
2023-01-11 11:14
kangss
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:14
帖 子:262
专家分:544
注 册:2014-6-12
收藏
得分:4 
1、IMESTATUS() 在win7中已经失效了
2、win10的输入法控制方案又发生了变化
目前怎么在win10中控制改变输入法状态,还不清楚
2023-01-11 14:31
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1076
专家分:2628
注 册:2015-12-30
收藏
得分:0 
回复 2楼 kangss
感谢回复,看来还需要等高人出手解决一下了
2023-01-11 15:40
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10587
专家分:43128
注 册:2014-5-20
收藏
得分:4 
关闭输入法就无必要吧
可以不要时切换到EN,再要时恢复中文输入法
2023-01-11 17:36
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10587
专家分:43128
注 册:2014-5-20
收藏
得分:0 
IME架构XP后好象就废了,后用的是TSF架构。
2023-01-11 17:44
kangss
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:14
帖 子:262
专家分:544
注 册:2014-6-12
收藏
得分:0 
折腾半天,做了“废品”,因为状态一直获取不到。
模拟鼠标点击输入法切换“中”“英”状态。高手再想办法获取到“中”“英”状态就能用了

这个办法只适合反人类设计的win10输入法。xp、win7没必要这么麻烦

DECLARE INTEGER FindWindow IN user32 STRING,STRING
DECLARE INTEGER FindWindowEx IN user32 INTEGER,INTEGER,STRING,STRING

lnHwnd1=FindWindow("Shell_TrayWnd",0)
lnHwnd2=FindWindowEx(lnHwnd1,0,"TrayNotifyWnd",NULL)
lnHwnd3=FindWindowEx(lnHwnd2,0,"TrayInputIndicatorWClass",NULL)
lnHwnd4=FindWindowEx(lnHwnd3,0,"IMEModeButton",NULL)

#DEFINE WM_MOUSEMOVE             0x0200
#DEFINE WM_NCLBUTTONDOWN        0x00A1
WM_LBUTTONDOWN = 0x0201
WM_LBUTTONUP = 0x0202
MK_LBUTTON = 0x0001
WM_GETTEXT = 0x000D

DECLARE INTEGER PostMessage IN user32 INTEGER,INTEGER,INTEGER,INTEGER
PostMessage (lnHwnd4,WM_LBUTTONDOWN,MK_LBUTTON ,1)      && 按下左键
PostMessage (lnHwnd4,WM_LBUTTONUP,MK_LBUTTON ,1)        && 放开左键


[此贴子已经被作者于2023-1-11 18:47编辑过]

2023-01-11 18:44
kangss
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:14
帖 子:262
专家分:544
注 册:2014-6-12
收藏
得分:0 
回复 4楼 吹水佬
这种方案 api 能实现,也不好用:一旦切换到ENG键盘布局,键盘快捷键切换就失效了。
2023-01-11 18:49
kangss
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:14
帖 子:262
专家分:544
注 册:2014-6-12
收藏
得分:0 
获取“中”“英”状态的垃圾办法:根据 lnHwnd4 获取窗口大小,屏幕截图,根据截图可以判断
垃圾办法不适合应用
2023-01-11 18:57
kangss
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:14
帖 子:262
专家分:544
注 册:2014-6-12
收藏
得分:0 
C# TSF 输入法的获取
https://blog.
2023-01-11 19:02
iswith
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:378
专家分:500
注 册:2013-5-14
收藏
得分:4 
以下是引用kangss在2023-1-11 14:31:54的发言:

1、IMESTATUS() 在win7中已经失效了
2、win10的输入法控制方案又发生了变化
目前怎么在win10中控制改变输入法状态,还不清楚


确定win7是失效还是你理解这个功能上有误?
2023-01-11 19:11
快速回复:EXE运行时如何关闭中文输入法
数据加载中...
 
   



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

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