delphi 程序如何禁止切换输入法?


本文整理自网络,侵删。

 碰到这样的问题,我首先想到有什么窗体属性,结果发现和输入有关的就是ImeMode和ImeName
看了看帮助没发现其他相关属性
又找了找API,也没发现什么相关函数
得,只好拿出杀手锏:
加一个消息日志,分析切换输入法的时候会有什么消息出现
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if Memo1.Lines.IndexOf(IntToStr(Msg.message)) < 0 then
Memo1.Lines.Add(IntToStr(Msg.message));
end;

日志打出:
80
49836
49340

80=$50到messages.pas中搜索 "50"
找到WM_INPUTLANGCHANGEREQUEST = $0050

正好找到线索
其他两个消息不知道是啥

将这些消息截获,问题解决!参考代码如下:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
case Msg.message of
WM_INPUTLANGCHANGEREQUEST, 49836, 49340: Handled := True;
end;
end;

相关阅读 >>

Delphi 检查屏幕是否处于锁屏或关闭状态

Delphi xe5 安卓设置屏幕横屏竖屏

Delphi winapi: getfocus - 获取当前拥有焦点的窗口的句柄

Delphi 字节数转换为kb或mb字符串

webbrowser里网页根据文字判断来点击链接

Delphi comparedatetime、comparedate、comparetime、samedatetime、samedate、sametime �c 对比时间的函数

Delphi idhttp post request

Delphi屏蔽指定热键

如何在 Delphi 中静态链接 sqlite

Delphi format格式化函数

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...