0
我需要在Windows中替換預定義的窗口類之一。例如,我想替換「EDIT」類,以便在任何Windows程序調用CreateWindowEx
並將「EDIT」用作類名稱參數時使用我自己的自定義編輯框。在Windows中替換窗口類
我該如何做到這一點?消息鉤會有幫助嗎?我認爲在這種情況下,消息鉤子會帶來太多的開銷。我有什麼選擇?
我需要在Windows中替換預定義的窗口類之一。例如,我想替換「EDIT」類,以便在任何Windows程序調用CreateWindowEx
並將「EDIT」用作類名稱參數時使用我自己的自定義編輯框。在Windows中替換窗口類
我該如何做到這一點?消息鉤會有幫助嗎?我認爲在這種情況下,消息鉤子會帶來太多的開銷。我有什麼選擇?
你所要求的,即改變其他進程看到的「EDIT」類的行爲是一種安全風險,並且不易實現:例如,http://msdn.microsoft.com/en-us/library/ms997565.aspx說,「子類只允許在一個應用程序不能對一個屬於另一個進程的窗口或類進行子類化「
爲什麼不可能的架構原因是代碼與窗口類相關聯,您的代碼與您的子類關聯,你的代碼不容易被其他進程使用(不能從其他進程運行)(除了通過諸如DLL注入之類的黑客技術之外)。
可能SetWindowsHookEx
API給你你需要什麼,而不是子類?
是否有可能使用我自己的方法替換定義EDIT的DLL,在將所有其他調用轉發給原始DLL時提供自己的編輯定義? – 2009-01-14 08:39:39