如何做一个外挂输入法?请提出实现框架 ( 积分: 200 )

  • 主题发起人 主题发起人 mr.hl
  • 开始时间 开始时间
M

mr.hl

Unregistered / Unconfirmed
GUEST, unregistred user!
我想做一个外挂输入法
目的:类似一个字典,在我用fortran的时候,可以自动帮我补全代码,或者弹出窗口,列出待选的代码.
比如我输入 en,出现窗口列出 end ,enddo , end do 等待选项.
方法:想用 hook 的方法,但是不知道弹出窗口和客户输入区的关系.关键就是这里.在输入区里弹出的 词条列表待选项窗口 应该怎么弄?
希望给出代码...谢谢!!!
 
弹出 词条列表待选项窗口 后,焦点应该在 客户输入区 还是 词条列表待选项窗口?如果还是 客户输入区, 词条列表待选项窗口 会不会跑到客户输入区后面去?
切换 客户输入区 所在窗口的时候, 词条列表待选项窗口 应该怎么办?
 
怎么没一个人回答啊???
目前我是让 词条列表待选项窗口 在最上层,
设置
procedure Createparams(var params: TCreateParams); override;
..

procedure TfmNotify.Createparams(var params: TCreateParams);
begin
inherited CreateParams(Params);
with params do
begin
Style:=WS_POPUP or WS_BORDER;//可以不要
ExStyle := WS_EX_TOOLWINDOW or WS_EX_TOPMOST or WS_EX_NOACTIVATE or WS_EX_WINDOWEDGE;
//WndParent:=getDeskTopWindow;//可以不要
end;
end;
就不会跑到 客户输入区 后面,并且 词条列表待选项窗口 是无焦点的.不过问题又来了.我打开WH_JOURNALRECORD的钩子后, 词条列表待选项窗口 就可以得到焦点了...
如何再次把 词条列表待选项窗口 设置为不能夺取 客户输入区 的焦点?
 
我也想个,也是不会.
你可以看看: 外挂式输入法初步实现演示程序
http://www.2ccc.com/article.asp?articleid=942
可能有用.
 
还有一叫:鼠标打字中文输入法
是用:SetParent.
 
外挂式输入法初步实现演示程序 这个只演示了hook,并没有说明窗体是怎么样的.
现在我又有点进展了.楼上可以加我qq聊聊吗?
我的qq是50159049.SetParent 我也试了.好像会弄得看不见我的窗体了.
 
后退
顶部