.版本 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消息。