DECLARE LONG FindWindow IN Win32API STRING, STRING nHWND = FindWindow(NULL,_SCREEN.CAPTION) IF nHWND >0 =ForceForegroundWindow(nHWND) ENDIF PROCEDURE ForceForegroundWindow(lnHWND) LOCAL nForeThread, nAppThread DECLARE LONG BringWindowToTop IN Win32API LONG DECLARE INTEGER GetCurrentThreadId IN kernel32 DECLARE INTEGER GetWindowThreadProcessId IN user32; INTEGER HWND,; INTEGER @ lpdwProcId DECLARE INTEGER AttachThreadInput IN user32 ; INTEGER idAttach, ; INTEGER idAttachTo, ; INTEGER fAttach DECLARE INTEGER GetForegroundWindow IN user32 DECLARE INTEGER "ShowWindow" IN win32api AS ShowWindowAPI ; INTEGER HWND,; INTEGER nCmdShow nForeThread = GetWindowThreadProcessId(GetForegroundWindow(), 0) nAppThread = GetCurrentThreadId() IF nForeThread != nAppThread AttachThreadInput(nForeThread, nAppThread, .T.) BringWindowToTop(lnHWND) ShowWindowAPI(lnHWND,1) AttachThreadInput(nForeThread, nAppThread, .F.) ELSE BringWindowToTop(lnHWND) ShowWindowAPI(lnHWND,1) ENDIF