攔截外部程式文本框的EN_CHANGE訊息,代碼寫進DLL
回呼函式CallBackHookProc中處理訊息,文本框每次en_change后都觸發訊息,在得到文本框文本后怎么回傳到主程式?
1、主程式視窗文本框的hwnd以引數的方式傳進DLL,然后在DLL中每次訊息觸發的時候WM_SETTEXT觸發主程式文本框change事件?
2、除了Timer控制元件我想不出來其他更好的辦法了。。。
uj5u.com熱心網友回復:
“視窗訊息處理函式”是通用的,引數形式、個數已經有“約定”。你可以搜索一下 CallWindowProc函式了解一下相關內容。
你這個“重點”是跨行程訊息HOOK,這個是系統不支持的。
要想“攔截”需要進行DLL遠程注入……
這就牽涉到兩個方面的東西了:
1. 當然就是“DLL遠程注入”技術;
2. 你想用VB6寫DLL,如果“對方”不是VB6撰寫的exe,
那么你需要用TLB來宣告所有的API函式 、
并且所有基于“VB6運行庫”函式(比如字串函式)都不能用!!!
否則,就算你成功注入了“遠程行程”,也會導致“對方行程”崩潰!
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/16828.html
標籤:VB基礎類
