如何能够得到其他程序的输入法状态!

Monking 2000-07-19 11:17:00
我想完了解别人程序所出的输入法状态,然后对每个输入框中用户使用的状态进行纪录,从而在下一次用户使用这个程序的时候我能够为他自动转换输入法!
我应该如何得到他们的输入法呢?
...全文
104 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Larky 2000-07-21
  • 打赏
  • 举报
回复
只有在其他程序的进程空间中才能得到具体的状态,所以你可以挂接一个消息hook,然后在其他进程的空间内用
ImmGetConversionStatus(ImmGetContext(GetForegroundWindow),a,b);
得到具体的数据
Monking 2000-07-20
  • 打赏
  • 举报
回复
如果我希望得到全角半角等具体的状态怎么办?
Larky 2000-07-19
  • 打赏
  • 举报
回复
如果你只是想要得到其他程序是什么输入法,那很容易只要你调用
TID := GetWindowThreadProcessID(GetForegroundWindow,@PID);
MyHkl := GetKeyBoardLayout(TID);
就可以得到当前窗口的输入法,如果MyHkl mod 65536 <>1033 (可能记错了,你查帮助吧!)就是中文输入法。

5,385

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧