Copyright Notice: You can reprint anything, please be sure to indicate the original source of the article in hyperlink. I want to give this little thing to add some special. Some times have been interested in software installation registration, some software If you don't enter the correct registration code, the dead "next" button has been disable. This time, I let Spy complete Spy, set the button used to the button, let me easily enter "Next", huh, huh ... My thoughts are that the cursor moves to the specified window, detect how much button on this window, if there is, will enable them. Here I don't want to discuss how to implement this feature, but you have to know that you want to get these handles of these DISABLE windows (buttons) are simply could not pass through the WindowFromPoint this API function. GetWindow should not think. I checked the MSDN, seeing EnumchildWindows, it is a good thing, you can enumerate all child window of a parent window: BOOL EnumchildWindows (hwnd hwndparent, // Handle to Parent Window // Parent Window Handle WndenumProc LpenumFunc, // Callback Function / / Tune function address LParam lparam // application-defined value // You have defined parameters); it's as simple, let's define a callback function, like this: Bool Callback EnumchildProc (hwnd hwnd, // handle to child Window LParam Lparam // Application-Defined Value); Note: This callback function is either a static function of a class or a global function. -------------------------------- When calling the enumchildwindows function until the one is called to the most child window Or the callback function returns a FALSE, otherwise it will be enumerated. With the top knowledge, I think you should know how to do it.