>LPARAMETERS cApplication, cStartFolder, cParamString > > LOCAL iRetVal > > IF EMPTY(cParamString) > cParamString = "" > ELSE > cParamString = '"' + cParamString + '"' > ENDIF > > IF EMPTY(cStartFolder) > cStartFolder = "" > ENDIF > > DECLARE INTEGER GetDesktopWindow IN WIN32API > > DECLARE INTEGER ShellExecute IN shell32; > INTEGER hwnd,; > STRING lpOperation,; > STRING lpFile,; > STRING lpParameters,; > STRING lpDirectory,; > INTEGER nShowCmd > > hWnd = GetDesktopWindow() > > iRetVal = ShellExecute(hWnd, "open", cApplication, cParamString , cStartFolder, 5) > >RETURN > >Here the code I use for ShellExecute
DECLARE INTEGER ShellExecute IN SHELL32.DLL INTEGER nWinHandle,; STRING cOperation,; STRING cFileName,; STRING cParameters,; STRING cDirectory,; INTEGER nShowWindow result = ShellExecute(hWnd, "open", cExtention, cParams, cFolder, 5) DO CASE CASE result == 0 && The system is out of memory or resources. msg = "The system is out of memory or resources." CASE result == 2 && Bad Association (for example, invalid URL) msg = "invalid URL" CASE result == 29 && Failure to load application msg = "Fail to load application" CASE result == 30 && Application is busy msg = "Application is busy" CASE result == 31 && No application association msg = "No application association" ENDCASE IF INLIST(result, 0, 2, 29, 30, 31) MessageBox(msg, 0 + 64, "Error") ENDIF