The SetActiveWindow function activates a window. The window must be attached to the calling thread's message queue.
HWND SetActiveWindow( HWND hWnd )
If successful, the return value is the handle to the window that was previously active. Otherwise NULL.
The SetActiveWindow function activates a window, but not if the application is in the background. The window will be brought into the foreground (top of Z-Order) if its application is in the foreground when the system activates the window.
If the window identified by the hWnd parameter was created by the calling thread, the active window status of the calling thread is set to hWnd. Otherwise, the active window status of the calling thread is set to NULL.