用DELPHI做输入法的全部资料(100分)

  • 主题发起人 主题发起人 asd712
  • 开始时间 开始时间
输入法源码出售 !
--
一版 delphi 5 类似 万能五笔 ! 我的叫友梅五笔拼音英文 6.0 以前发布过! 现在
都要注册码!
二版 delphi 5 + c++b IME 结构的! 友梅五笔拼音7.0
http://delphibbs.com/delphibbs/dispq.asp?lid=2333143
联系QQ 261447111 Email liu-deng@sohu.com
 
IME方式的Delphi可以做。我已经做出来了。
我觉得用Hook方式不正规。
 
IME方式也很简单,IME不过是一个有着固定输出函数的DLL文件而已。
下面是我的输入法的部分代码
DLL中的固定的输出函数:
//初始化输入法函数
function ImeInquire(var lpImeInfo: IMEINFO; lpszUIClass: PChar; lpszOptions:
PChar): Bool; stdcall;
//设置输入法状态函数,如光标跟随等
function ImeConfigure(cfghKL: HKL; AhWnd: HWND; dwMode: DWord; lpData: Pointer):
Bool; stdcall;
//自定义汉字编码格式
function ImeConversionList(hIMC: HIMC; lpSource: PChar;
lpCandList: PCANDIDATELIST; dwBufLen: DWord; uFlag: Word): DWord;
stdcall;
//退出
function ImeDestroy(uForce: Word): Bool; stdcall;
//应用接口函数
function ImeEscape(hIMC: HIMC; uSubFunc: Word; lpData: Pointer): LRESULT;
stdcall;
//用户按键处理函数,例如中英文状态,返回 FALSE 为英文状态,按键不作处理。
function ImeProcessKey(hIMC: HIMC; vKey: Word; lKeyData: LPARAM;
const lpbKeyState: PBYTE): Bool; stdcall;
//启动输入法设置功能
function ImeSelect(hImc: HIMC; fSelect: Bool): Bool; stdcall;
//设置输入活动状态
function ImeSetActiveContext(hImc: HIMC; fFlag: Bool): Bool; stdcall;
//将用户按键转换为汉字编码
function ImeToAsciiEx(uVirtKey: Word; uScaCode: Word; const lpbKeyState: PBYTE;
lpdwTransBuf: PDWord; fuState: Word; hImc: HIMC): Word; stdcall;
//处理IME消息函数
function NotifyIME(hIMC: HIMC; dwAction: DWord; dwIndex: DWord;
dwValue: DWord): Bool; stdcall;
//自定义汉字编码格式,未作处理。
function ImeRegisterWord(lpRead: PChar; dw: DWord;
lpStr: PChar): Bool; stdcall;
//自定义汉字编码格式,未作处理。
function ImeUnregisterWord(lpRead: PChar; dw: DWord;
lpStr: PChar): Bool; stdcall;
//自定义汉字编码格式,未作处理。
function ImeGetRegisterWordStyle(nItem: Word; lp: PSTYLEBUF): Word; stdcall;
//自定义汉字编码格式,未作处理。
function ImeEnumRegisterWord(lpfn: REGISTERWORDENUMPROC; lpRead: PChar;
dw: DWord; lpStr: PChar; lpData: Pointer): Word; stdcall;
//输入法编码字符处理。
function ImeSetCompositionString(hIMC: HIMC; dwIndex: DWord;
lpComp: Pointer; dwComp: DWord; lpRead: Pointer;
dwRead: DWord): Bool; stdcall;

//UI窗口过程
function UIWndProc(hUIwnd: HWND; uMsg: Word; wParam: WPARAM;
lParam: LPARAM): LRESULT; stdcall;
//状态窗口过程
function StatusWndProc(AhWnd: HWND; uMsg: Word; wParam: WPARAM;
lParam: LPARAM): LRESULT; stdcall;
//侯选汉字窗口过程
function CandWndProc(AhWnd: HWND; uMsg: Word; wParam: WPARAM;
lParam: LPARAM): LRESULT; stdcall;
//编码窗口过程
function CompWndProc(AhWnd: HWND; uMsg: Word; wParam: WPARAM;
lParam: LPARAM): LRESULT; stdcall;
 
特殊注意的是资源文件部分。必须自己写一个RC文件,然后用Delphi的Brcc32.exe编译成RES文件。
 
我想如果花太多时间,研究! 不如买一套源码! 将更多的时间花在做有自己个性的输入法! 让自己更早用上自己的方便的输入法!
--------
我还有一版 , 完全用delphi 做的 输入法! 以前发布过! 但是以收免的形式发布的!
类似万能输入法也是五笔+拼音+英文! 源码也可以出售!
---------------------------------------------------------------------------
http://delphibbs.com/delphibbs/dispq.asp?lid=2333143
liu-deng@sohu.com QQ 261447111
 
email_1998_21@163.com

给我留一份!!
 
给兄弟一份,谢谢
sgxz2000@hotmail.com
 
给兄弟一份,谢谢
cnzhw007@126.com
 
http://www.2ccc.com/article.asp?articleid=942
 
IME类型的输入法的原理我也研究过,由于要用SDK方式编程,并且只能用C语言
--------------------------------------------
嘿嘿,我当初倒是就不富这件事情。我早就搞出来了C和PASCAL写得SDK代码没什么分别。
倒是当时把C的IME接口声明翻译到PASCAL形式浪费了我不少数时间。
 
发现imm32.dll很多函数delphi没有引出,很多相关结构也没有定义。。自己弄了以下,没效果,可能是什么地方不对。

wr960204大哥!快救我吧?? 您把您翻译的给我看看吗? 我的

还有,请看看我这个问题(能不做成真正输入法最好不做)
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2570322
 
谢了!
hongya6088@sina100.com
 
后退
顶部