通过消息函数sendmessage实现输入法

.版本 2

当前窗口jb = 取前台窗口_ ()
本程序线程id = 当前线程标志符_ ()
当前窗口线程id = 取进程线程标识符_ (当前窗口jb, 0)
共享输入队列_ (当前窗口线程id, 本程序线程id, 1)
jb = 取获取焦点窗口_ ()
标签2.标题 = 到文本 (jb)
发送消息_ (jb, 646, 45217, 1)
' 发送消息_ (jb, 258, 176, 0)
' 发送消息_ (jb, 258, 161, 0)
int dqjubin=GetForegroundWindow();//取当前焦点窗口句柄
int xcid=GetCurrentThreadId();//取本程序线程id
int xcid2=GetWindowThreadProcessId(dqjubin,0);//取当前焦点窗口线程id
AttachThreadInput(xcid2,xcid,1);//共享线程,不然取不到光标输入位置处的句柄。
int jb=GetFocus();//获取焦点位置句柄
SendMessageA(jb, 646, 45217, 1);发送WM_IME_CHAR消息,wparam为B0A1,lparam为1
//或者发送两条WM_CHAR消息 wparam参数分别为B0和A1
//SendMessageA(jb, 258, 176, 0);
//SendMessageA(jb, 258, 161, 0);

上图为SPY++抓取到的搜狗输入法发送的WM_IME消息和WM_CHAR消息,一般系统会先发送一条WM_IME_CHAR消息然后如果传输字符为中文,系统会自动发送两条WM_CHAR消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值