>RELEASE goExcel >Public goExcel >goExcel=CREATEOBJECT('excel.application') >goExcel.Visible=.t. >ForceForegroundWindow(goExcel.Hwnd) > >FUNCTION ForceForegroundWindow(lnHWND) > > LOCAL nForeThread, nAppThread > > DECLARE Long BringWindowToTop In Win32API Long > > DECLARE Long ShowWindow In Win32API Long, Long > > DECLARE INTEGER GetCurrentThreadId; > IN kernel32 > > DECLARE INTEGER GetWindowThreadProcessId IN user32; > INTEGER hWnd,; > INTEGER @ lpdwProcId > > DECLARE INTEGER GetCurrentThreadId; > IN kernel32 > > DECLARE INTEGER AttachThreadInput IN user32 ; > INTEGER idAttach, ; > INTEGER idAttachTo, ; > INTEGER fAttach > > DECLARE INTEGER GetForegroundWindow IN user32 > > nForeThread = GetWindowThreadProcessId(GetForegroundWindow(), 0) > nAppThread = GetCurrentThreadId() > > IF nForeThread != nAppThread > AttachThreadInput(nForeThread, nAppThread, .T.) > BringWindowToTop(lnHWND) > ShowWindow(lnHWND,3) > AttachThreadInput(nForeThread, nAppThread, .F.) > ELSE > BringWindowToTop(lnHWND) > ShowWindow(lnHWND,3) > ENDIF > >ENDFUNC >