һز޸뷨ģ飨Դ룩 
ز޸뷨˵ABC뷨뷨ǡһȷȷǡӣ˼ſ뷨Ҹ֮İɡ 

ģһDLLVC++дģѹDLLԴ롣ԭʹAPI HOOK뷨غImmGetCompositionStringӦóͨȡ뷨룩Դﵽػ޸ϢĿġ 
VBҲʹDLLDLLͨԶϢWM_HXWDLLWX_QQBTXͨšҪVBﴦԶϢҪõ໯ 
DLLº 
Public Declare Function DLLstartHOOK Lib "hxwdllwx.dll" (ByVal hwnd As Long) As Long 
Public Declare Function DLLstopHOOK Lib "hxwdllwx.dll" () As Long 
Public Declare Function DLLsetHOOKState Lib "hxwdllwx.dll" (ByVal myState As Boolean) As Long 
Public Declare Function DLLGetPubString Lib "hxwdllwx.dll" () As String 
Public Declare Function DLLSetPubString Lib "hxwdllwx.dll" (ByVal tmpstr As String) As Long 

򵥵˵ôã 
ڴLoad¼УҪעԶϢWM_HXWDLLWX_QQBTXȻDLLstartHOOKʼģ飬Ҫ򴰿ڵľݸDLLstartHOOKû¼ʱDLLᷢWM_HXWDLLWX_QQBTXϢþĴڡôΪܴԶϢҪ໯ʾ 
Private Sub Form_Load() 
WM_HXWDLLWX_QQBTX = RegisterWindowMessage("WM_HXWDLLWX_QQBTX")  'עԶϢ 
DLLstartHOOK Me.hwnd  'ʼ뷨ģ 
PrevWndProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf SubWndProc) '໯ 
End Sub 

ȻͿԵDLLsetHOOKStateģ״̬DLLsetHOOKState TrueأDLLsetHOOKState Falseرء 
ڴص£һû¼DLLᷢԶϢWM_HXWDLLWX_QQBTXڣڴWM_HXWDLLWX_QQBTXϢĺУԵDLLGetPubStringõû롣Ҫ޸û룬ԵDLLSetPubStringû룬Ϳ޸뷨ˡʾĴ뽫ûÿһ붼ԶַENDû롰áǡEND 
Public Function SubWndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 
Dim myConStr As String, tmpStr1 As String, tmpStr2 As String 
If Msg = WM_HXWDLLWX_QQBTX Then 
   myConStr = DLLGetPubString() 
   tmpStr1 = Replace(myConStr, Chr(0), "") 
   tmpStr2 = myconver(tmpStr1) 
   DLLSetPubString tmpStr2 
End If 
SubWndProc = CallWindowProc(PrevWndProc, hwnd, Msg, wParam, lParam) 
End Function 

Function myconver(ByVal s As String) As String 
myconver = s & "END" 
End Function 

󣬳ʱ˵DLLstopHOOKжAPI HOOK 
Ͼˣѹиʾ룬һһӦõӡʲô⣬Ҳϵ qq511795070 