declare long ShellExecute in "shell32.dll" ; long hwnd, string lpszOp, ; string lpszFile, string lpszParams, ; string lpszDir, long nShowCmd declare long GetDesktopWindow in "win32api" LaunchApp("myPicture.jpg","Open","","",.T.) function LaunchApp lparameters lcDocApp, lcOperation, lcParameters, lcDefaultDir, llShowCommand local hDCScreen hDCScreen = GetDesktopWindow() m.lcDocApp = alltrim(m.lcDocApp) m.lcOperation = iif(!empty(m.lcOperation),m.lcOperation,"Open") m.lcParameters = iif(!empty( m.lcParameters) and ".EXE" $ upper(m.lcDocApp),m.lcParameters,"") m.lcDefaultDir = iif(!empty(m.lcDefaultDir),m.lcDefaultDir,"") m.lnShowCommand = iif(m.llShowCommand,1,0) llRetVal = ShellExecute( hDCScreen, ; m.lcOperation, ; m.lcDocApp, ; m.lcParameters, ; m.lcDefaultDir, ; m.lnShowCommand )This code is in also in class form from David Frankenbach. You can find it on files\classes section or form his site.